<?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>89060</bug_id>
          
          <creation_ts>2012-06-13 20:55:13 -0700</creation_ts>
          <short_desc>REGRESSION(r120268): WebCompositor::setPerTilePaintingEnabled hits an assertion in DEBUG (Requested by dominicc|work on #webkit).</short_desc>
          <delta_ts>2012-06-13 21:13:12 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>88384</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>jamesr</cc>
    
    <cc>vollick</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>648753</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 20:55:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/120268 broke the build:
WebCompositor::setPerTilePaintingEnabled hits an assertion in DEBUG (Requested by dominicc|work on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648755</commentid>
    <comment_count>1</comment_count>
      <attachid>147478</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 20:55:56 -0700</bug_when>
    <thetext>Created attachment 147478
ROLLOUT of r120268

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648773</commentid>
    <comment_count>2</comment_count>
      <attachid>147478</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 21:13:08 -0700</bug_when>
    <thetext>Comment on attachment 147478
ROLLOUT of r120268

Clearing flags on attachment: 147478

Committed r120275: &lt;http://trac.webkit.org/changeset/120275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648774</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 21:13:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147478</attachid>
            <date>2012-06-13 20:55:56 -0700</date>
            <delta_ts>2012-06-13 21:13:08 -0700</delta_ts>
            <desc>ROLLOUT of r120268</desc>
            <filename>bug-89060-20120614040040.patch</filename>
            <type>text/plain</type>
            <size>76806</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA1NzhjMWI4ODM3YWYy
M2YyZWI1NTZiODgzMjIyMzliOGJmMGQ3ODc1Li4wODJkM2FlMTllM2EwYWZmMDBjMWIyYjk1YWI2
ZDZkNGEzNzNmYTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNi0xMyAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMDI2OC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTIwMjY4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04OTA2MAorCisgICAgICAgIFdlYkNvbXBvc2l0b3I6OnNldFBlclRpbGVQ
YWludGluZ0VuYWJsZWQgaGl0cyBhbiBhc3NlcnRpb24gaW4KKyAgICAgICAgREVCVUcgKFJlcXVl
c3RlZCBieSBkb21pbmljY3x3b3JrIG9uICN3ZWJraXQpLgorCisgICAgICAgICogY2hyb21pdW0v
cHVibGljL1dlYkxheWVyVHJlZVZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAo
U2V0dGluZ3MpOgorCiAyMDEyLTA2LTEzICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQ2VydGFpbiBzZXR0aW5ncyBpbiBDQ1NldHRpbmdz
IGNvdWxkIGJlIGdsb2JhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMxZDYwYmRjMWU2MWNhM2NlYTFiMWIwYTgz
MWNhODgxMTllNTk1NWYuLmZlOTgwNTc4ZGE1OWRlNTQ3MzM5MzU4NzFjMjg0NTQ5ODA0MTcwYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAxMi0wNi0xMyAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjEyMDI2OC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
MTIwMjY4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
OTA2MAorCisgICAgICAgIFdlYkNvbXBvc2l0b3I6OnNldFBlclRpbGVQYWludGluZ0VuYWJsZWQg
aGl0cyBhbiBhc3NlcnRpb24gaW4KKyAgICAgICAgREVCVUcgKFJlcXVlc3RlZCBieSBkb21pbmlj
Y3x3b3JrIG9uICN3ZWJraXQpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdz
KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5n
czo6c2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdz
OjpwZXJUaWxlRHJhd2luZ0VuYWJsZWQpOgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAgICAo
V2ViQ29yZTo6U2V0dGluZ3M6OnNldFBhcnRpYWxTd2FwRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTZXR0aW5nczo6cGFydGlhbFN3YXBFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjpzZXRUaHJlYWRlZEFuaW1hdGlvbkVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U2V0dGluZ3M6OnRocmVhZGVkQW5pbWF0aW9uRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZVRleHR1cmVVcGRhdGVySWZOZWVkZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6YWRkQW5pbWF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjppbml0aWFsaXplKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVUaWxlU2l6
ZUFuZFRpbGluZ09wdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NEZWJ1Z1JlY3RIaXN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDRGVidWdSZWN0
SGlzdG9yeTo6ZW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0RlYnVnUmVjdEhpc3Rvcnk6
OnNhdmVEZWJ1Z1JlY3RzRm9yQ3VycmVudEZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0RlYnVnUmVjdEhpc3RvcnkuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoQ0NEZWJ1Z1JlY3RIaXN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNDSGVhZHNVcERpc3BsYXk6OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NIZWFkc1Vw
RGlzcGxheTo6c2hvd1BsYXRmb3JtTGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVh
ZHNVcERpc3BsYXk6OnNob3dEZWJ1Z1JlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVhZHNV
cERpc3BsYXk6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q0NIZWFkc1VwRGlzcGxheTo6ZHJh
d0h1ZENvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVhZHNVcERpc3BsYXk6OmRyYXdE
ZWJ1Z1JlY3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hl
YWRzVXBEaXNwbGF5Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENDSGVhZHNVcERp
c3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OkNDTGF5ZXJUcmVlSG9zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OmFuaW1hdGVMYXllcnMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NTZXR0aW5nczo6Q0NTZXR0aW5ncyk6CisgICAgICAgIChDQ1NldHRp
bmdzKToKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xh
eWVyVHJlZUhvc3Q6OnNldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5
ZXJUcmVlSG9zdEltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhv
c3RJbXBsOjpDQ0xheWVyVHJlZUhvc3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdEltcGw6OmNhbGN1bGF0ZVJlbmRlclN1cmZhY2VMYXllckxpc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6YW5pbWF0ZUxheWVycyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oOgorICAg
ICAgICAoQ0NMYXllclRyZWVIb3N0SW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NSZW5kZXJlci5oOgorICAgICAgICAoQ0NSZW5kZXJlckNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlcmVyOjpzZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTZXR0aW5ncy5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTZXR0aW5ncy5oOiBSZW1vdmVkLgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbFNldHRpbmdzOjpzZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAg
IChJbnRlcm5hbFNldHRpbmdzKToKKwogMjAxMi0wNi0xMyAgSWFuIFZvbGxpY2sgIDx2b2xsaWNr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIENlcnRhaW4gc2V0dGluZ3MgaW4g
Q0NTZXR0aW5ncyBjb3VsZCBiZSBnbG9iYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZTUyZmNlYmQ2NGE2YzQzZWQ2ZmZkYmRhMTQxZmU3ZjliOGVkMDRjYy4uMzhjNjI3MDU2ZDkyODFk
NTA3MDJjZjAxMzU3ODc1NDNmNDBhZjQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1OCBAQAorMjAxMi0wNi0xMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMDI2OC4K
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTIwMjY4CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTA2MAorCisgICAgICAg
IFdlYkNvbXBvc2l0b3I6OnNldFBlclRpbGVQYWludGluZ0VuYWJsZWQgaGl0cyBhbiBhc3NlcnRp
b24gaW4KKyAgICAgICAgREVCVUcgKFJlcXVlc3RlZCBieSBkb21pbmljY3x3b3JrIG9uICN3ZWJr
aXQpLgorCisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogcHVibGljL1dlYkNvbXBv
c2l0b3IuaDoKKyAgICAgICAgKFdlYkNvbXBvc2l0b3IpOgorICAgICAgICAqIHB1YmxpYy9XZWJT
ZXR0aW5ncy5oOgorICAgICAgICAqIHNyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3duKToKKyAgICAgICAgKiBzcmMvV2ViTGF5
ZXJUcmVlVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXc6OlNldHRp
bmdzOjpvcGVyYXRvciBDQ1NldHRpbmdzKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRQZXJUaWxlUGFpbnRp
bmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRp
bmdzSW1wbDo6c2V0UGFydGlhbFN3YXBFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0
dGluZ3NJbXBsOjpzZXRUaHJlYWRlZEFuaW1hdGlvbkVuYWJsZWQpOgorICAgICAgICAqIHNyYy9X
ZWJTZXR0aW5nc0ltcGwuaDoKKyAgICAgICAgKFdlYlNldHRpbmdzSW1wbCk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZp
ZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0FjdGl2ZSk6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRl
c3QuY3BwOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAgICAg
ICAqIHRlc3RzL0NDVGVzdENvbW1vbi5oOiBSZW1vdmVkLgorICAgICAgICAqIHRlc3RzL0NDVGhy
ZWFkZWRUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpNb2NrTGF5ZXJUcmVlSG9zdElt
cGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXRUZXN0czo6TW9ja0xheWVyVHJlZUhvc3RJbXBs
OjpNb2NrTGF5ZXJUcmVlSG9zdEltcGwpOgorICAgICAgICAoV2ViS2l0VGVzdHM6Ok1vY2tMYXll
clRyZWVIb3N0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0VGVzdHM6Ok1vY2tMYXllclRyZWVI
b3N0OjpjcmVhdGVMYXllclRyZWVIb3N0SW1wbCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6TW9j
a0xheWVyVHJlZUhvc3Q6Ok1vY2tMYXllclRyZWVIb3N0KToKKyAgICAgICAgKFdlYktpdFRlc3Rz
OjpDQ1RocmVhZGVkVGVzdDo6cnVuVGVzdCk6CisgICAgICAgICogdGVzdHMvQ0NUaHJlYWRlZFRl
c3QuaDoKKyAgICAgICAgKENDVGhyZWFkZWRUZXN0KToKKyAgICAgICAgKE1vY2tMYXllclRyZWVI
b3N0SW1wbCk6CisgICAgICAgICogdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHA6
CisgICAgICAgIChXZWJLaXRUZXN0czo6TW9ja0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJLaXRUZXN0czo6TW9ja0xheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyVHJlZUhvc3RJ
bXBsKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpNb2NrTGF5ZXJUcmVlSG9zdDo6TW9ja0xheWVy
VHJlZUhvc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bVRl
c3Q6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QpOgorICAgICAgICAqIHRlc3RzL0xheWVyQ2hy
b21pdW1UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0
LmNwcDoKKyAgICAgICAgKExheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QpOgorICAgICAgICAoVEVT
VF9GKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIHRlc3RzL1RleHR1cmVMYXllckNocm9t
aXVtVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHA6
CisgICAgICAgICogdGVzdHMvVHJlZVN5bmNocm9uaXplclRlc3QuY3BwOgorICAgICAgICAoV2Vi
S2l0VGVzdHM6OlRFU1QpOgorCiAyMDEyLTA2LTEzICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpo
dUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBMZXQgQW5kcm9pZCBhbmQgTGlu
dXggc2hhcmUgV2ViRm9udFJlbmRlcmluZyBkZWNsL2ltcGwuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaCBiL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmluZGV4IDcyYjVhYjljMmQ0
NDAzMjk1MTYyZTdjNzM4NWFiZTkyNWIwYzlhMGQuLjQ2N2Y2NWNkNTVkN2E5ZWI4MzExN2M0MGY5
Y2I4MjBjYTM5ODAyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViTGF5ZXJUcmVlVmlldy5oCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdDsKLXN0cnVjdCBDQ0xheWVyVHJlZVNldHRpbmdz
Oworc3RydWN0IENDU2V0dGluZ3M7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTUsNiAr
NTUsOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAsIHNob3dQbGF0Zm9ybUxheWVyVHJlZShmYWxz
ZSkKICAgICAgICAgICAgICwgc2hvd1BhaW50UmVjdHMoZmFsc2UpCiAgICAgICAgICAgICAsIHJl
ZnJlc2hSYXRlKDApCisgICAgICAgICAgICAsIHBlclRpbGVQYWludGluZyhmYWxzZSkKKyAgICAg
ICAgICAgICwgcGFydGlhbFN3YXBFbmFibGVkKGZhbHNlKQorICAgICAgICAgICAgLCB0aHJlYWRl
ZEFuaW1hdGlvbkVuYWJsZWQoZmFsc2UpCiAgICAgICAgICAgICAsIGRlZmF1bHRUaWxlU2l6ZShX
ZWJTaXplKDI1NiwgMjU2KSkKICAgICAgICAgICAgICwgbWF4VW50aWxlZExheWVyU2l6ZShXZWJT
aXplKDUxMiwgNTEyKSkKICAgICAgICAgICAgICwgZGV2aWNlU2NhbGVGYWN0b3IoMSkKQEAgLTY3
LDExICs3MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgc2hvd1BsYXRmb3JtTGF5ZXJUcmVl
OwogICAgICAgICBib29sIHNob3dQYWludFJlY3RzOwogICAgICAgICBkb3VibGUgcmVmcmVzaFJh
dGU7CisgICAgICAgIGJvb2wgcGVyVGlsZVBhaW50aW5nOworICAgICAgICBib29sIHBhcnRpYWxT
d2FwRW5hYmxlZDsKKyAgICAgICAgYm9vbCB0aHJlYWRlZEFuaW1hdGlvbkVuYWJsZWQ7CiAgICAg
ICAgIFdlYlNpemUgZGVmYXVsdFRpbGVTaXplOwogICAgICAgICBXZWJTaXplIG1heFVudGlsZWRM
YXllclNpemU7CiAgICAgICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yOwogI2lmIFdFQktJVF9J
TVBMRU1FTlRBVElPTgotICAgICAgICBvcGVyYXRvciBXZWJDb3JlOjpDQ0xheWVyVHJlZVNldHRp
bmdzKCkgY29uc3Q7CisgICAgICAgIG9wZXJhdG9yIFdlYkNvcmU6OkNDU2V0dGluZ3MoKSBjb25z
dDsKICNlbmRpZgogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA2MDFlMWVmM2VmZTVlMzVm
Y2Q3MmNlOWM0NDYxNTgyY2ViZjIyODgxLi44YWZjMjNmYjc2N2FkMTM4Y2YyZjI2NGVkZmFhMzQx
Y2NhZjAzOGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNzUzLDggKzM3NTMsNiBAQAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NvcGVkVGhyZWFkUHJveHku
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxi
YXJMYXllckltcGwuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1Njcm9sbGJhckxheWVySW1wbC5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NldHRpbmdzLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTZXR0aW5ncy5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NoYXJlZFF1YWRTdGF0ZS5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2hhcmVkUXVhZFN0YXRlLmgnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFk
UHJveHkuY3BwJywKQEAgLTY2NjEsNyArNjY1OSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9JbWFnZXMvc2VhcmNoU21hbGxHcmF5LnBuZycsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvc2VhcmNoU21hbGxXaGl0ZS5wbmcnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL3NlYXJjaE5leHQucG5nJywKLSAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9zZWFyY2hQcmV2LnBuZycsICAgICAgICAg
ICAgCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvc2VhcmNoUHJldi5w
bmcnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL3NlZ21lbnQucG5n
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9zZWdtZW50RW5kLnBu
ZycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvc2VnbWVudEhvdmVy
LnBuZycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IGIxZDE5MTNhZTBkZTk5NTJhMDhm
YWUxOTNjNzE0MThkM2QzNjFiOTcuLmY1ZGIyMGQyZmFhMzlkNWQ3NGFkNmMyYjliZDAxOGNmNDg5
YTVhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC0yNTcsMTIgKzI1NywxNSBAQCBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fc2hvdWxkRGlzcGxheUNhcHRp
b25zKGZhbHNlKQogICAgICwgbV9zaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyhmYWxzZSkK
ICNlbmRpZgorICAgICwgbV9wZXJUaWxlRHJhd2luZ0VuYWJsZWQoZmFsc2UpCisgICAgLCBtX3Bh
cnRpYWxTd2FwRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFi
bGVkKGZhbHNlKQogICAgICwgbV9ub3RpZmljYXRpb25zRW5hYmxlZCh0cnVlKQogICAgICwgbV9u
ZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayhmYWxzZSkKICNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQogICAgICwgbV90b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZChmYWxzZSkKICNlbmRpZgor
ICAgICwgbV90aHJlYWRlZEFuaW1hdGlvbkVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3Nob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKGZhbHNlKQogICAgICwgbV93YW50c0JhbGFuY2VkU2V0RGVm
ZXJzTG9hZGluZ0JlaGF2aW9yKGZhbHNlKQogICAgICwgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVF
bmFibGVkKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNzlhZjNhNGM5ODkyZTQ5Mzdj
ODU1ZmI5M2QzNzk2YjA2MWRhY2I2ZC4uZDMwZjRjMDQ4MmU4NjAwZjBmZDE2MjNjNWVhMzVjNzYz
NDc1MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtNTM2LDYgKzUzNiwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgc2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlv
bnMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zOyB9CiAj
ZW5kaWYKIAorICAgICAgICB2b2lkIHNldFBlclRpbGVEcmF3aW5nRW5hYmxlZChib29sIGVuYWJs
ZWQpIHsgbV9wZXJUaWxlRHJhd2luZ0VuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgICAgIGJvb2wg
cGVyVGlsZURyYXdpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wZXJUaWxlRHJhd2luZ0Vu
YWJsZWQ7IH0KKworICAgICAgICB2b2lkIHNldFBhcnRpYWxTd2FwRW5hYmxlZChib29sIGVuYWJs
ZWQpIHsgbV9wYXJ0aWFsU3dhcEVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgICAgIGJvb2wgcGFy
dGlhbFN3YXBFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wYXJ0aWFsU3dhcEVuYWJsZWQ7IH0K
KwogICAgICAgICB2b2lkIHNldFNjcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZChib29sIGVuYWJs
ZWQpIHsgbV9zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgICAg
IGJvb2wgc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zY3Jv
bGxpbmdDb29yZGluYXRvckVuYWJsZWQ7IH0KIApAQCAtNTUxLDYgKzU1Nyw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBpc1RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV90b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZDsgfQogI2VuZGlmCiAK
KyAgICAgICAgdm9pZCBzZXRUaHJlYWRlZEFuaW1hdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKSB7
IG1fdGhyZWFkZWRBbmltYXRpb25FbmFibGVkID0gZW5hYmxlZDsgfQorICAgICAgICBib29sIHRo
cmVhZGVkQW5pbWF0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkZWRBbmltYXRp
b25FbmFibGVkOyB9CisKICAgICAgICAgdm9pZCBzZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbihib29sIGVuYWJsZWQpIHsgbV9zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9IGVu
YWJsZWQ7IH0KICAgICAgICAgYm9vbCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb247IH0KIApAQCAtNzM3
LDYgKzc0Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX3Nob3VsZERp
c3BsYXlDYXB0aW9ucyA6IDE7CiAgICAgICAgIGJvb2wgbV9zaG91bGREaXNwbGF5VGV4dERlc2Ny
aXB0aW9ucyA6IDE7CiAjZW5kaWYKKyAgICAgICAgYm9vbCBtX3BlclRpbGVEcmF3aW5nRW5hYmxl
ZCA6IDE7CisgICAgICAgIGJvb2wgbV9wYXJ0aWFsU3dhcEVuYWJsZWQgOiAxOworCiAgICAgICAg
IGJvb2wgbV9zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQgOiAxOwogCiAgICAgICAgIGJvb2wg
bV9ub3RpZmljYXRpb25zRW5hYmxlZCA6IDE7CkBAIC03NDUsNiArNzU3LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgICAgIGJvb2wgbV90b3Vj
aEV2ZW50RW11bGF0aW9uRW5hYmxlZCA6IDE7CiAjZW5kaWYKKyAgICAgICAgYm9vbCBtX3RocmVh
ZGVkQW5pbWF0aW9uRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9zaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbiA6IDE7CiAgICAgICAgIGJvb2wgbV93YW50c0JhbGFuY2VkU2V0RGVmZXJz
TG9hZGluZ0JlaGF2aW9yIDogMTsKICAgICAgICAgYm9vbCBtX3JlcXVlc3RBbmltYXRpb25GcmFt
ZUVuYWJsZWQgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCmluZGV4IGI2
YTAyNTYxY2UyY2JjNGMzN2E2N2UzNWZjMjgzMDgyYzg1N2I5N2QuLmFlOGQzMjA4YmZiYWI4ZDdh
ZGU5ODJhN2Q4YTkzYTJkODNlZDdkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1
bS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlICJMYXllclJlbmRlcmVyQ2hyb21pdW0u
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJl
ZUhvc3QuaCIKLSNpbmNsdWRlICJjYy9DQ1NldHRpbmdzLmgiCiAjaW5jbHVkZSA8cHVibGljL1Bs
YXRmb3JtLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKQEAgLTEyOCw3ICsxMjcs
NyBAQCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpjcmVhdGVUZXh0dXJlVXBkYXRlcklmTmVl
ZGVkKCkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChsYXllclRyZWVIb3N0KCktPnNldHRpbmdz
KCkuYWNjZWxlcmF0ZVBhaW50aW5nKQogICAgICAgICBtX3RleHR1cmVVcGRhdGVyID0gRnJhbWVC
dWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpjcmVhdGUoQ29udGVudExh
eWVyUGFpbnRlcjo6Y3JlYXRlKG1fZGVsZWdhdGUpKTsKLSAgICBlbHNlIGlmIChDQ1NldHRpbmdz
OjpwZXJUaWxlUGFpbnRpbmdFbmFibGVkKCkpCisgICAgZWxzZSBpZiAobGF5ZXJUcmVlSG9zdCgp
LT5zZXR0aW5ncygpLnBlclRpbGVQYWludGluZykKICAgICAgICAgbV90ZXh0dXJlVXBkYXRlciA9
IEJpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0ZShDb250ZW50
TGF5ZXJQYWludGVyOjpjcmVhdGUobV9kZWxlZ2F0ZSksIGxheWVyVHJlZUhvc3QoKS0+bGF5ZXJS
ZW5kZXJlckNhcGFiaWxpdGllcygpLnVzaW5nTWFwU3ViKTsKICAgICBlbHNlCiAgICAgICAgIG1f
dGV4dHVyZVVwZGF0ZXIgPSBCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpjcmVhdGUo
Q29udGVudExheWVyUGFpbnRlcjo6Y3JlYXRlKG1fZGVsZWdhdGUpLCBsYXllclRyZWVIb3N0KCkt
PmxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS51c2luZ01hcFN1Yik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uY3BwCmluZGV4IGZjYWRmYTI5ZWYzMGUwYzFjNTUwZjFlYWMyMDVjYTVhZTcwZDA3ZDEuLmJj
ODJmZWIwZGY0M2Y3YjQ4NWYwMjE5NzZiMjI3NjFjZDYxZDE4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uY3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVkZSAiY2MvQ0NMYXllckFuaW1hdGlvbkRl
bGVnYXRlLmgiCiAjaW5jbHVkZSAiY2MvQ0NMYXllckltcGwuaCIKICNpbmNsdWRlICJjYy9DQ0xh
eWVyVHJlZUhvc3QuaCIKLSNpbmNsdWRlICJjYy9DQ1NldHRpbmdzLmgiCiAjaW5jbHVkZSAic2tp
YS9leHQvcGxhdGZvcm1fY2FudmFzLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC02MDcs
MTQgKzYwNiwxMiBAQCB2b2lkIExheWVyQ2hyb21pdW06OnNldFRyYW5zZm9ybUZyb21BbmltYXRp
b24oY29uc3QgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYQogCiBib29sIExheWVyQ2hyb21p
dW06OmFkZEFuaW1hdGlvbihQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBhbmltYXRpb24p
CiB7Ci0gICAgaWYgKCFDQ1NldHRpbmdzOjphY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoKSkK
KyAgICBpZiAoIW1fbGF5ZXJUcmVlSG9zdCB8fCAhbV9sYXllclRyZWVIb3N0LT5zZXR0aW5ncygp
LnRocmVhZGVkQW5pbWF0aW9uRW5hYmxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
bV9sYXllckFuaW1hdGlvbkNvbnRyb2xsZXItPmFkZEFuaW1hdGlvbihhbmltYXRpb24pOwotICAg
IGlmIChtX2xheWVyVHJlZUhvc3QpIHsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5kaWRBZGRB
bmltYXRpb24oKTsKLSAgICAgICAgc2V0TmVlZHNDb21taXQoKTsKLSAgICB9CisgICAgbV9sYXll
clRyZWVIb3N0LT5kaWRBZGRBbmltYXRpb24oKTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOwogICAg
IHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApp
bmRleCBjMDZhMDBjMmJkODg5MjA2MzAwZTBlODQwMTM2ZDMxMzI1YTMwOGUxLi5hYmZkYjQ0Yzc2
MjRiMzcxZjc5MTU3MWM5ZWY3YmJkMzYzOGY2ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5jcHAKQEAgLTY0LDcgKzY0LDYgQEAKICNpbmNsdWRlICJjYy9DQ1JlbmRlclBh
c3MuaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRlclBhc3NEcmF3UXVhZC5oIgogI2luY2x1ZGUgImNj
L0NDUmVuZGVyU3VyZmFjZUZpbHRlcnMuaCIKLSNpbmNsdWRlICJjYy9DQ1NldHRpbmdzLmgiCiAj
aW5jbHVkZSAiY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oIgogI2luY2x1ZGUgImNjL0NDU29saWRD
b2xvckRyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2MvQ0NTdHJlYW1WaWRlb0RyYXdRdWFkLmgiCkBA
IC0yOTMsNyArMjkyLDcgQEAgYm9vbCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmluaXRpYWxpemUo
KQogICAgIGlmIChtX2NhcGFiaWxpdGllcy5jb250ZXh0SGFzQ2FjaGVkRnJvbnRCdWZmZXIpCiAg
ICAgICAgIGV4dGVuc2lvbnMtPmVuc3VyZUVuYWJsZWQoIkdMX0NIUk9NSVVNX2Zyb250X2J1ZmZl
cl9jYWNoZWQiKTsKIAotICAgIG1fY2FwYWJpbGl0aWVzLnVzaW5nUGFydGlhbFN3YXAgPSBDQ1Nl
dHRpbmdzOjpwYXJ0aWFsU3dhcEVuYWJsZWQoKSAmJiBleHRlbnNpb25zLT5zdXBwb3J0cygiR0xf
Q0hST01JVU1fcG9zdF9zdWJfYnVmZmVyIik7CisgICAgbV9jYXBhYmlsaXRpZXMudXNpbmdQYXJ0
aWFsU3dhcCA9IHNldHRpbmdzKCkucGFydGlhbFN3YXBFbmFibGVkICYmIGV4dGVuc2lvbnMtPnN1
cHBvcnRzKCJHTF9DSFJPTUlVTV9wb3N0X3N1Yl9idWZmZXIiKTsKICAgICBpZiAobV9jYXBhYmls
aXRpZXMudXNpbmdQYXJ0aWFsU3dhcCkKICAgICAgICAgZXh0ZW5zaW9ucy0+ZW5zdXJlRW5hYmxl
ZCgiR0xfQ0hST01JVU1fcG9zdF9zdWJfYnVmZmVyIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uY3BwCmluZGV4IDc0NzRjMzFjZjhiOGRlZmVhZDRhZWQwOTA0MjI5Yzc3NGZjNDc0Zjcu
LjEyZTM3MTdjYTZkZmYxYzM4YWM5NGRiYjE3ZWU2YzY3ZmQwY2Q1MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGls
ZWRMYXllckNocm9taXVtLmNwcApAQCAtMTExLDggKzExMSw5IEBAIHZvaWQgVGlsZWRMYXllckNo
cm9taXVtOjp1cGRhdGVUaWxlU2l6ZUFuZFRpbGluZ09wdGlvbigpCiB7CiAgICAgQVNTRVJUKGxh
eWVyVHJlZUhvc3QoKSk7CiAKLSAgICBjb25zdCBJbnRTaXplJiBkZWZhdWx0VGlsZVNpemUgPSBs
YXllclRyZWVIb3N0KCktPnNldHRpbmdzKCkuZGVmYXVsdFRpbGVTaXplOwotICAgIGNvbnN0IElu
dFNpemUmIG1heFVudGlsZWRMYXllclNpemUgPSBsYXllclRyZWVIb3N0KCktPnNldHRpbmdzKCku
bWF4VW50aWxlZExheWVyU2l6ZTsKKyAgICBjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncyA9IGxh
eWVyVHJlZUhvc3QoKS0+c2V0dGluZ3MoKTsKKyAgICBjb25zdCBJbnRTaXplJiBkZWZhdWx0VGls
ZVNpemUgPSBzZXR0aW5ncy5kZWZhdWx0VGlsZVNpemU7CisgICAgY29uc3QgSW50U2l6ZSYgbWF4
VW50aWxlZExheWVyU2l6ZSA9IHNldHRpbmdzLm1heFVudGlsZWRMYXllclNpemU7CiAgICAgaW50
IGxheWVyV2lkdGggPSBjb250ZW50Qm91bmRzKCkud2lkdGgoKTsKICAgICBpbnQgbGF5ZXJIZWln
aHQgPSBjb250ZW50Qm91bmRzKCkuaGVpZ2h0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGVidWdSZWN0SGlzdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlYnVnUmVj
dEhpc3RvcnkuY3BwCmluZGV4IDE3ZDU5NDZlYzJlY2NkZWJhY2JhZjAzNDhmZjgxMDYyZjk4N2E0
NTIuLjNjODhkY2M0MDAzYTY2OTE4OTNmNzViNTQ1ZmYwZDY0OTVkODg4MTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGVidWdSZWN0
SGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NEZWJ1Z1JlY3RIaXN0b3J5LmNwcApAQCAtMzgsMTIgKzM4LDEyIEBAIENDRGVidWdS
ZWN0SGlzdG9yeTo6Q0NEZWJ1Z1JlY3RIaXN0b3J5KCkKIHsKIH0KIAotYm9vbCBDQ0RlYnVnUmVj
dEhpc3Rvcnk6OmVuYWJsZWQoY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYgc2V0dGluZ3MpCiti
b29sIENDRGVidWdSZWN0SGlzdG9yeTo6ZW5hYmxlZChjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5n
cykKIHsKICAgICByZXR1cm4gc2V0dGluZ3Muc2hvd1BhaW50UmVjdHMgfHwgc2V0dGluZ3Muc2hv
d1Byb3BlcnR5Q2hhbmdlZFJlY3RzIHx8IHNldHRpbmdzLnNob3dTdXJmYWNlRGFtYWdlUmVjdHM7
CiB9CiAKLXZvaWQgQ0NEZWJ1Z1JlY3RIaXN0b3J5OjpzYXZlRGVidWdSZWN0c0ZvckN1cnJlbnRG
cmFtZShDQ0xheWVySW1wbCogcm9vdExheWVyLCBjb25zdCBWZWN0b3I8Q0NMYXllckltcGwqPiYg
cmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYgc2V0dGlu
Z3MpCit2b2lkIENDRGVidWdSZWN0SGlzdG9yeTo6c2F2ZURlYnVnUmVjdHNGb3JDdXJyZW50RnJh
bWUoQ0NMYXllckltcGwqIHJvb3RMYXllciwgY29uc3QgVmVjdG9yPENDTGF5ZXJJbXBsKj4mIHJl
bmRlclN1cmZhY2VMYXllckxpc3QsIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAg
IC8vIEZvciBub3csIGNsZWFyIGFsbCByZWN0cyBmcm9tIHByZXZpb3VzIGZyYW1lcy4gSW4gdGhl
IGZ1dHVyZSB3ZSBtYXkgd2FudCB0byBzdG9yZQogICAgIC8vIGFsbCBkZWJ1ZyByZWN0cyBmb3Ig
YSBoaXN0b3J5IG9mIG1hbnkgZnJhbWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEZWJ1Z1JlY3RIaXN0b3J5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlYnVnUmVjdEhpc3Rvcnku
aAppbmRleCBiYjNjZGI3OWQ1NzE4NDdiMjc2ZTk3YzgwZmQ2OGMxYWMyYzQ4ZDZhLi45M2RhMTA3
YWRlNGZiNzc0OWFiMmQ1Y2U3NDc1YTIyNmNiYjBlMTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlYnVnUmVjdEhpc3RvcnkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RlYnVn
UmVjdEhpc3RvcnkuaApAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBDQ0xheWVySW1wbDsKLXN0cnVjdCBDQ0xheWVyVHJlZVNldHRpbmdzOworc3RydWN0IEND
U2V0dGluZ3M7CiAKIC8vIFRoZXJlIGFyZSBjdXJyZW50bHkgdGhyZWUgdHlwZXMgb2YgZGVidWcg
cmVjdHM6CiAvLwpAQCAtNjMsNyArNjMsNyBAQCBzdHJ1Y3QgQ0NEZWJ1Z1JlY3QgewogCiAvLyBU
aGlzIGNsYXNzIG1haW50YWlucyBhIGhpc3Rvcnkgb2YgcmVjdHMgb2YgdmFyaW91cyB0eXBlcyB0
aGF0IGNhbiBiZSB1c2VkCiAvLyBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLiBUaGUgb3ZlcmhlYWQg
b2YgY29sbGVjdGluZyByZWN0cyBpcyBwZXJmb3JtZWQgb25seSBpZgotLy8gdGhlIGFwcHJvcHJp
YXRlIENDTGF5ZXJUcmVlU2V0dGluZ3MgYXJlIGVuYWJsZWQuCisvLyB0aGUgYXBwcm9wcmlhdGUg
Q0NTZXR0aW5ncyBhcmUgZW5hYmxlZC4KIGNsYXNzIENDRGVidWdSZWN0SGlzdG9yeSB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoQ0NEZWJ1Z1JlY3RIaXN0b3J5KTsKIHB1YmxpYzoKQEAgLTcy
LDEwICs3MiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NEZWJ1
Z1JlY3RIaXN0b3J5KCkpOwogICAgIH0KIAotICAgIGJvb2wgZW5hYmxlZChjb25zdCBDQ0xheWVy
VHJlZVNldHRpbmdzJik7CisgICAgYm9vbCBlbmFibGVkKGNvbnN0IENDU2V0dGluZ3MmKTsKIAog
ICAgIC8vIE5vdGU6IFNhdmluZyBkZWJ1ZyByZWN0cyBtdXN0IGhhcHBlbiBiZWZvcmUgbGF5ZXJz
JyBjaGFuZ2UgdHJhY2tpbmcgaXMgcmVzZXQuCi0gICAgdm9pZCBzYXZlRGVidWdSZWN0c0ZvckN1
cnJlbnRGcmFtZShDQ0xheWVySW1wbCogcm9vdExheWVyLCBjb25zdCBWZWN0b3I8Q0NMYXllcklt
cGwqPiYgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYp
OworICAgIHZvaWQgc2F2ZURlYnVnUmVjdHNGb3JDdXJyZW50RnJhbWUoQ0NMYXllckltcGwqIHJv
b3RMYXllciwgY29uc3QgVmVjdG9yPENDTGF5ZXJJbXBsKj4mIHJlbmRlclN1cmZhY2VMYXllckxp
c3QsIGNvbnN0IENDU2V0dGluZ3MmKTsKIAogICAgIGNvbnN0IFZlY3RvcjxDQ0RlYnVnUmVjdD4m
IGRlYnVnUmVjdHMoKSB7IHJldHVybiBtX2RlYnVnUmVjdHM7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxh
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hl
YWRzVXBEaXNwbGF5LmNwcAppbmRleCAxYmJjMDQ2ZTdhNTgyMWFiMGUwMzk5NDZiNjBjODFhMGVj
YzlhMjdmLi4zNDg1YTQ4YTRhYTQxNjhlZTBkMDQxYmU3ZDEwM2FiYmVjYTI1OTM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRz
VXBEaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5LmNwcApAQCAtNTIsMTcgKzUyLDE3IEBAIHZvaWQgQ0NI
ZWFkc1VwRGlzcGxheTo6c2V0Rm9udEF0bGFzKFBhc3NPd25QdHI8Q0NGb250QXRsYXM+IGZvbnRB
dGxhcykKICAgICBtX2ZvbnRBdGxhcyA9IGZvbnRBdGxhczsKIH0KIAotYm9vbCBDQ0hlYWRzVXBE
aXNwbGF5OjplbmFibGVkKGNvbnN0IENDTGF5ZXJUcmVlU2V0dGluZ3MmIHNldHRpbmdzKSBjb25z
dAorYm9vbCBDQ0hlYWRzVXBEaXNwbGF5OjplbmFibGVkKGNvbnN0IENDU2V0dGluZ3MmIHNldHRp
bmdzKSBjb25zdAogewogICAgIHJldHVybiBzaG93UGxhdGZvcm1MYXllclRyZWUoc2V0dGluZ3Mp
IHx8IHNldHRpbmdzLnNob3dGUFNDb3VudGVyIHx8IHNob3dEZWJ1Z1JlY3RzKHNldHRpbmdzKTsK
IH0KIAotYm9vbCBDQ0hlYWRzVXBEaXNwbGF5OjpzaG93UGxhdGZvcm1MYXllclRyZWUoY29uc3Qg
Q0NMYXllclRyZWVTZXR0aW5ncyYgc2V0dGluZ3MpIGNvbnN0Citib29sIENDSGVhZHNVcERpc3Bs
YXk6OnNob3dQbGF0Zm9ybUxheWVyVHJlZShjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncykgY29u
c3QKIHsKICAgICByZXR1cm4gc2V0dGluZ3Muc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOwogfQogCi1i
b29sIENDSGVhZHNVcERpc3BsYXk6OnNob3dEZWJ1Z1JlY3RzKGNvbnN0IENDTGF5ZXJUcmVlU2V0
dGluZ3MmIHNldHRpbmdzKSBjb25zdAorYm9vbCBDQ0hlYWRzVXBEaXNwbGF5OjpzaG93RGVidWdS
ZWN0cyhjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncykgY29uc3QKIHsKICAgICByZXR1cm4gc2V0
dGluZ3Muc2hvd1BhaW50UmVjdHMgfHwgc2V0dGluZ3Muc2hvd1Byb3BlcnR5Q2hhbmdlZFJlY3Rz
IHx8IHNldHRpbmdzLnNob3dTdXJmYWNlRGFtYWdlUmVjdHM7CiB9CkBAIC03OCw3ICs3OCw3IEBA
IHZvaWQgQ0NIZWFkc1VwRGlzcGxheTo6ZHJhdyhDQ0xheWVyVHJlZUhvc3RJbXBsKiBsYXllclRy
ZWVIb3N0SW1wbCkKICAgICBpZiAoIW1faHVkVGV4dHVyZSkKICAgICAgICAgbV9odWRUZXh0dXJl
ID0gTWFuYWdlZFRleHR1cmU6OmNyZWF0ZShsYXllclJlbmRlcmVyLT5pbXBsVGV4dHVyZU1hbmFn
ZXIoKSk7CiAKLSAgICBjb25zdCBDQ0xheWVyVHJlZVNldHRpbmdzJiBzZXR0aW5ncyA9IGxheWVy
VHJlZUhvc3RJbXBsLT5zZXR0aW5ncygpOworICAgIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdz
ID0gbGF5ZXJUcmVlSG9zdEltcGwtPnNldHRpbmdzKCk7CiAgICAgLy8gVXNlIGEgZnVsbHNjcmVl
biB0ZXh0dXJlIG9ubHkgaWYgd2UgbmVlZCB0by4uLgogICAgIEludFNpemUgaHVkU2l6ZTsKICAg
ICBpZiAoc2hvd1BsYXRmb3JtTGF5ZXJUcmVlKHNldHRpbmdzKSB8fCBzaG93RGVidWdSZWN0cyhz
ZXR0aW5ncykpIHsKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIENDSGVhZHNVcERpc3BsYXk6OmRy
YXcoQ0NMYXllclRyZWVIb3N0SW1wbCogbGF5ZXJUcmVlSG9zdEltcGwpCiAgICAgbV9odWRUZXh0
dXJlLT51bnJlc2VydmUoKTsKIH0KIAotdm9pZCBDQ0hlYWRzVXBEaXNwbGF5OjpkcmF3SHVkQ29u
dGVudHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBDQ0xheWVyVHJlZUhvc3RJbXBsKiBsYXll
clRyZWVIb3N0SW1wbCwgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0
IEludFNpemUmIGh1ZFNpemUpCit2b2lkIENDSGVhZHNVcERpc3BsYXk6OmRyYXdIdWRDb250ZW50
cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIENDTGF5ZXJUcmVlSG9zdEltcGwqIGxheWVyVHJl
ZUhvc3RJbXBsLCBjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgSW50U2l6ZSYgaHVk
U2l6ZSkKIHsKICAgICBpZiAoc2hvd1BsYXRmb3JtTGF5ZXJUcmVlKHNldHRpbmdzKSkgewogICAg
ICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3IoMCwgMCwgMCwgMTkyKSwgQ29sb3JTcGFj
ZURldmljZVJHQik7CkBAIC0yMjEsNyArMjIxLDcgQEAgdm9pZCBDQ0hlYWRzVXBEaXNwbGF5Ojpk
cmF3RlBTQ291bnRlclRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBDQ0ZyYW1lUmF0ZUMK
ICAgICAgICAgbV9mb250QXRsYXMtPmRyYXdUZXh0KGNvbnRleHQsIFN0cmluZzo6Zm9ybWF0KCJG
UFM6ICU0LjFmICsvLSAlMy4xZiIsIGF2ZXJhZ2VGUFMsIHN0ZERldmlhdGlvbiksIEludFBvaW50
KDEwLCBoZWlnaHQgLyAzKSwgSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CiB9CiAKLXZvaWQgQ0NI
ZWFkc1VwRGlzcGxheTo6ZHJhd0RlYnVnUmVjdHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBD
Q0RlYnVnUmVjdEhpc3RvcnkqIGRlYnVnUmVjdEhpc3RvcnksIGNvbnN0IENDTGF5ZXJUcmVlU2V0
dGluZ3MmIHNldHRpbmdzKQordm9pZCBDQ0hlYWRzVXBEaXNwbGF5OjpkcmF3RGVidWdSZWN0cyhH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIENDRGVidWdSZWN0SGlzdG9yeSogZGVidWdSZWN0SGlz
dG9yeSwgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgY29uc3QgVmVjdG9yPEND
RGVidWdSZWN0PiYgZGVidWdSZWN0cyA9IGRlYnVnUmVjdEhpc3RvcnktPmRlYnVnUmVjdHMoKTsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRlYnVnUmVjdHMuc2l6ZSgpOyArK2kpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
SGVhZHNVcERpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDSGVhZHNVcERpc3BsYXkuaAppbmRleCBlMWNlOTNhNmMzZTkwY2IzNDQ1ZWI5N2Qy
ZjYwZWUwNDQwZjRjNTlmLi40ODMxZTVkZDE4YzNlMTEyMWExOTJiOTlhNzRhZjFiYWNjZDJjZmFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0hlYWRzVXBEaXNwbGF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheS5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNz
IENDRnJhbWVSYXRlQ291bnRlcjsKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdEltcGw7CiBjbGFzcyBH
cmFwaGljc0NvbnRleHQ7CiBjbGFzcyBNYW5hZ2VkVGV4dHVyZTsKLXN0cnVjdCBDQ0xheWVyVHJl
ZVNldHRpbmdzOworc3RydWN0IENDU2V0dGluZ3M7CiAKIC8vIENsYXNzIHRoYXQgaGFuZGxlcyBk
cmF3aW5nIG9mIGNvbXBvc2l0ZWQgcmVuZGVyIGxheWVycyB1c2luZyBHTC4KIGNsYXNzIENDSGVh
ZHNVcERpc3BsYXkgewpAQCAtNTEsMTkgKzUxLDE5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0
Rm9udEF0bGFzKFBhc3NPd25QdHI8Q0NGb250QXRsYXM+KTsKIAotICAgIGJvb2wgZW5hYmxlZChj
b25zdCBDQ0xheWVyVHJlZVNldHRpbmdzJikgY29uc3Q7CisgICAgYm9vbCBlbmFibGVkKGNvbnN0
IENDU2V0dGluZ3MmKSBjb25zdDsKICAgICB2b2lkIGRyYXcoQ0NMYXllclRyZWVIb3N0SW1wbCop
OwogCiBwcml2YXRlOgogICAgIENDSGVhZHNVcERpc3BsYXkoKSB7IH07CiAKLSAgICB2b2lkIGRy
YXdIdWRDb250ZW50cyhHcmFwaGljc0NvbnRleHQqLCBDQ0xheWVyVHJlZUhvc3RJbXBsKiwgY29u
c3QgQ0NMYXllclRyZWVTZXR0aW5ncyYsIGNvbnN0IEludFNpemUmIGh1ZFNpemUpOworICAgIHZv
aWQgZHJhd0h1ZENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCosIENDTGF5ZXJUcmVlSG9zdEltcGwq
LCBjb25zdCBDQ1NldHRpbmdzJiwgY29uc3QgSW50U2l6ZSYgaHVkU2l6ZSk7CiAgICAgdm9pZCBk
cmF3RlBTQ291bnRlcihHcmFwaGljc0NvbnRleHQqLCBDQ0ZyYW1lUmF0ZUNvdW50ZXIqLCBpbnQg
dG9wLCBpbnQgaGVpZ2h0KTsKICAgICB2b2lkIGRyYXdGUFNDb3VudGVyVGV4dChHcmFwaGljc0Nv
bnRleHQqLCBDQ0ZyYW1lUmF0ZUNvdW50ZXIqLCBpbnQgdG9wLCBpbnQgd2lkdGgsIGludCBoZWln
aHQpOwotICAgIHZvaWQgZHJhd0RlYnVnUmVjdHMoR3JhcGhpY3NDb250ZXh0KiwgQ0NEZWJ1Z1Jl
Y3RIaXN0b3J5KiwgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYpOworICAgIHZvaWQgZHJhd0Rl
YnVnUmVjdHMoR3JhcGhpY3NDb250ZXh0KiwgQ0NEZWJ1Z1JlY3RIaXN0b3J5KiwgY29uc3QgQ0NT
ZXR0aW5ncyYpOwogCi0gICAgYm9vbCBzaG93UGxhdGZvcm1MYXllclRyZWUoY29uc3QgQ0NMYXll
clRyZWVTZXR0aW5ncyYpIGNvbnN0OwotICAgIGJvb2wgc2hvd0RlYnVnUmVjdHMoY29uc3QgQ0NM
YXllclRyZWVTZXR0aW5ncyYpIGNvbnN0OworICAgIGJvb2wgc2hvd1BsYXRmb3JtTGF5ZXJUcmVl
KGNvbnN0IENDU2V0dGluZ3MmKSBjb25zdDsKKyAgICBib29sIHNob3dEZWJ1Z1JlY3RzKGNvbnN0
IENDU2V0dGluZ3MmKSBjb25zdDsKIAogICAgIE93blB0cjxNYW5hZ2VkVGV4dHVyZT4gbV9odWRU
ZXh0dXJlOwogICAgIE93blB0cjxDQ0ZvbnRBdGxhcz4gbV9mb250QXRsYXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0LmNwcAppbmRleCBlZWM4NDQ3MmJiYTY1NmI1NmY5YmU1NzkxZmY0Mjk5
NGI3ZTA5NzEzLi5hYmE0NTQ0Nzk1NTFiN2QxMGJmYTFiNWRhNmIxYjQyODQxZWZlMjFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRl
ICJjYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhv
c3RJbXBsLmgiCiAjaW5jbHVkZSAiY2MvQ0NPY2NsdXNpb25UcmFja2VyLmgiCi0jaW5jbHVkZSAi
Y2MvQ0NTZXR0aW5ncy5oIgogI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFkUHJveHkuaCIKICNp
bmNsdWRlICJjYy9DQ1RocmVhZC5oIgogI2luY2x1ZGUgImNjL0NDVGhyZWFkUHJveHkuaCIKQEAg
LTU5LDcgKzU4LDcgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3Q6OmFueUxheWVyVHJlZUhvc3RJbnN0
YW5jZUV4aXN0cygpCiAgICAgcmV0dXJuIG51bUxheWVyVHJlZUluc3RhbmNlcyA+IDA7CiB9CiAK
LVBhc3NPd25QdHI8Q0NMYXllclRyZWVIb3N0PiBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZShDQ0xh
eWVyVHJlZUhvc3RDbGllbnQqIGNsaWVudCwgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYgc2V0
dGluZ3MpCitQYXNzT3duUHRyPENDTGF5ZXJUcmVlSG9zdD4gQ0NMYXllclRyZWVIb3N0OjpjcmVh
dGUoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQsIGNvbnN0IENDU2V0dGluZ3MmIHNldHRp
bmdzKQogewogICAgIE93blB0cjxDQ0xheWVyVHJlZUhvc3Q+IGxheWVyVHJlZUhvc3QgPSBhZG9w
dFB0cihuZXcgQ0NMYXllclRyZWVIb3N0KGNsaWVudCwgc2V0dGluZ3MpKTsKICAgICBpZiAoIWxh
eWVyVHJlZUhvc3QtPmluaXRpYWxpemUoKSkKQEAgLTY3LDcgKzY2LDcgQEAgUGFzc093blB0cjxD
Q0xheWVyVHJlZUhvc3Q+IENDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKENDTGF5ZXJUcmVlSG9zdENs
aWVudCogY2xpZW4KICAgICByZXR1cm4gbGF5ZXJUcmVlSG9zdC5yZWxlYXNlKCk7CiB9CiAKLUND
TGF5ZXJUcmVlSG9zdDo6Q0NMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9zdENsaWVudCogY2xp
ZW50LCBjb25zdCBDQ0xheWVyVHJlZVNldHRpbmdzJiBzZXR0aW5ncykKK0NDTGF5ZXJUcmVlSG9z
dDo6Q0NMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9zdENsaWVudCogY2xpZW50LCBjb25zdCBD
Q1NldHRpbmdzJiBzZXR0aW5ncykKICAgICA6IG1fY29tcG9zaXRvcklkZW50aWZpZXIoLTEpCiAg
ICAgLCBtX2FuaW1hdGluZyhmYWxzZSkKICAgICAsIG1fbmVlZHNBbmltYXRlTGF5ZXJzKGZhbHNl
KQpAQCAtNjgzLDcgKzY4Miw3IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpkZWxldGVUZXh0dXJl
QWZ0ZXJDb21taXQoUGFzc093blB0cjxNYW5hZ2VkVGV4dHVyZT4gdGV4dHVyCiAKIHZvaWQgQ0NM
YXllclRyZWVIb3N0OjphbmltYXRlTGF5ZXJzKGRvdWJsZSBtb25vdG9uaWNUaW1lKQogewotICAg
IGlmICghQ0NTZXR0aW5nczo6YWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkKCkgfHwgIW1fbmVl
ZHNBbmltYXRlTGF5ZXJzKQorICAgIGlmICghbV9zZXR0aW5ncy50aHJlYWRlZEFuaW1hdGlvbkVu
YWJsZWQgfHwgIW1fbmVlZHNBbmltYXRlTGF5ZXJzKQogICAgICAgICByZXR1cm47CiAKICAgICBU
UkFDRV9FVkVOVCgiQ0NMYXllclRyZWVIb3N0SW1wbDo6YW5pbWF0ZUxheWVycyIsIHRoaXMsIDAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAppbmRleCBlNDAyMzY4ZTk1MTFmNzc1YzU3MzM1
MTRhZjNlZGYxOWQzNGY0NDc0Li4zYzNhZTAzZjY2YzhlZjQ1N2E4MzFjZTYyZGMxZDg0ZmNmYzM0
MWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaApAQCAtNzQsOCArNzQsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q0NMYXllclRyZWVIb3N0Q2xpZW50KCkgeyB9CiB9OwogCi1z
dHJ1Y3QgQ0NMYXllclRyZWVTZXR0aW5ncyB7Ci0gICAgQ0NMYXllclRyZWVTZXR0aW5ncygpCitz
dHJ1Y3QgQ0NTZXR0aW5ncyB7CisgICAgQ0NTZXR0aW5ncygpCiAgICAgICAgICAgICA6IGFjY2Vs
ZXJhdGVQYWludGluZyhmYWxzZSkKICAgICAgICAgICAgICwgZm9yY2VTb2Z0d2FyZUNvbXBvc2l0
aW5nKGZhbHNlKQogICAgICAgICAgICAgLCBzaG93RlBTQ291bnRlcihmYWxzZSkKQEAgLTg0LDYg
Kzg0LDkgQEAgc3RydWN0IENDTGF5ZXJUcmVlU2V0dGluZ3MgewogICAgICAgICAgICAgLCBzaG93
UHJvcGVydHlDaGFuZ2VkUmVjdHMoZmFsc2UpCiAgICAgICAgICAgICAsIHNob3dTdXJmYWNlRGFt
YWdlUmVjdHMoZmFsc2UpCiAgICAgICAgICAgICAsIHJlZnJlc2hSYXRlKDApCisgICAgICAgICAg
ICAsIHBlclRpbGVQYWludGluZyhmYWxzZSkKKyAgICAgICAgICAgICwgcGFydGlhbFN3YXBFbmFi
bGVkKGZhbHNlKQorICAgICAgICAgICAgLCB0aHJlYWRlZEFuaW1hdGlvbkVuYWJsZWQoZmFsc2Up
CiAgICAgICAgICAgICAsIG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcyhzdGQ6Om51bWVyaWNfbGlt
aXRzPHNpemVfdD46Om1heCgpKQogICAgICAgICAgICAgLCBkZWZhdWx0VGlsZVNpemUoSW50U2l6
ZSgyNTYsIDI1NikpCiAgICAgICAgICAgICAsIG1heFVudGlsZWRMYXllclNpemUoSW50U2l6ZSg1
MTIsIDUxMikpCkBAIC05OCw2ICsxMDEsOSBAQCBzdHJ1Y3QgQ0NMYXllclRyZWVTZXR0aW5ncyB7
CiAgICAgYm9vbCBzaG93UHJvcGVydHlDaGFuZ2VkUmVjdHM7CiAgICAgYm9vbCBzaG93U3VyZmFj
ZURhbWFnZVJlY3RzOwogICAgIGRvdWJsZSByZWZyZXNoUmF0ZTsKKyAgICBib29sIHBlclRpbGVQ
YWludGluZzsKKyAgICBib29sIHBhcnRpYWxTd2FwRW5hYmxlZDsKKyAgICBib29sIHRocmVhZGVk
QW5pbWF0aW9uRW5hYmxlZDsKICAgICBzaXplX3QgbWF4UGFydGlhbFRleHR1cmVVcGRhdGVzOwog
ICAgIEludFNpemUgZGVmYXVsdFRpbGVTaXplOwogICAgIEludFNpemUgbWF4VW50aWxlZExheWVy
U2l6ZTsKQEAgLTEzNyw3ICsxNDMsNyBAQCBzdHJ1Y3QgTGF5ZXJSZW5kZXJlckNhcGFiaWxpdGll
cyB7CiBjbGFzcyBDQ0xheWVyVHJlZUhvc3QgOiBwdWJsaWMgUmF0ZUxpbWl0ZXJDbGllbnQgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENDTGF5ZXJUcmVlSG9zdCk7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NPd25QdHI8Q0NMYXllclRyZWVIb3N0PiBjcmVhdGUoQ0NMYXllclRyZWVIb3N0
Q2xpZW50KiwgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYpOworICAgIHN0YXRpYyBQYXNzT3du
UHRyPENDTGF5ZXJUcmVlSG9zdD4gY3JlYXRlKENDTGF5ZXJUcmVlSG9zdENsaWVudCosIGNvbnN0
IENDU2V0dGluZ3MmKTsKICAgICB2aXJ0dWFsIH5DQ0xheWVyVHJlZUhvc3QoKTsKIAogICAgIHZv
aWQgc2V0U3VyZmFjZVJlYWR5KCk7CkBAIC0yMTMsNyArMjE5LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IExheWVyQ2hyb21pdW0qIHJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdExheWVy
LmdldCgpOyB9CiAgICAgdm9pZCBzZXRSb290TGF5ZXIoUGFzc1JlZlB0cjxMYXllckNocm9taXVt
Pik7CiAKLSAgICBjb25zdCBDQ0xheWVyVHJlZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IHsg
cmV0dXJuIG1fc2V0dGluZ3M7IH0KKyAgICBjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncygpIGNv
bnN0IHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KIAogICAgIHZvaWQgc2V0Vmlld3BvcnRTaXplKGNv
bnN0IEludFNpemUmKTsKIApAQCAtMjQ4LDcgKzI1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRl
bGV0ZVRleHR1cmVBZnRlckNvbW1pdChQYXNzT3duUHRyPE1hbmFnZWRUZXh0dXJlPik7CiAKIHBy
b3RlY3RlZDoKLSAgICBDQ0xheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiwgY29u
c3QgQ0NMYXllclRyZWVTZXR0aW5ncyYpOworICAgIENDTGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJl
ZUhvc3RDbGllbnQqLCBjb25zdCBDQ1NldHRpbmdzJik7CiAgICAgYm9vbCBpbml0aWFsaXplKCk7
CiAKIHByaXZhdGU6CkBAIC0yODksNyArMjk1LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TGF5
ZXJDaHJvbWl1bT4gbV9yb290TGF5ZXI7CiAgICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiBtX2Nv
bnRlbnRzVGV4dHVyZU1hbmFnZXI7CiAKLSAgICBDQ0xheWVyVHJlZVNldHRpbmdzIG1fc2V0dGlu
Z3M7CisgICAgQ0NTZXR0aW5ncyBtX3NldHRpbmdzOwogCiAgICAgSW50U2l6ZSBtX3ZpZXdwb3J0
U2l6ZTsKICAgICBJbnRTaXplIG1fZGV2aWNlVmlld3BvcnRTaXplOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCBhOTg1YzNmNjJhMjFlNzAxN2JhOGIwYTI1YmFk
MDg1ZDZkNTEyM2I4Li42NWY4NWZmZmFmNDJkNDQzNDdhNzRjZTM2N2U0M2UxYmFlMmIwM2ViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcApAQCAtNDIsNyArNDIsNiBA
QAogI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oIgogI2luY2x1ZGUgImNjL0ND
TWF0aFV0aWwuaCIKICNpbmNsdWRlICJjYy9DQ1BhZ2VTY2FsZUFuaW1hdGlvbi5oIgotI2luY2x1
ZGUgImNjL0NDU2V0dGluZ3MuaCIKICNpbmNsdWRlICJjYy9DQ1NpbmdsZVRocmVhZFByb3h5Lmgi
CiAjaW5jbHVkZSAiY2MvQ0NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CkBAIC0xMDYsMTIgKzEwNSwxMiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxDQ0RlbGF5QmFz
ZWRUaW1lU291cmNlPiBtX3RpbWVTb3VyY2U7CiB9OwogCi1QYXNzT3duUHRyPENDTGF5ZXJUcmVl
SG9zdEltcGw+IENDTGF5ZXJUcmVlSG9zdEltcGw6OmNyZWF0ZShjb25zdCBDQ0xheWVyVHJlZVNl
dHRpbmdzJiBzZXR0aW5ncywgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCogY2xpZW50KQorUGFz
c093blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjcmVhdGUo
Y29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MsIENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQqIGNs
aWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDTGF5ZXJUcmVlSG9zdEltcGwoc2V0
dGluZ3MsIGNsaWVudCkpOwogfQogCi1DQ0xheWVyVHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhv
c3RJbXBsKGNvbnN0IENDTGF5ZXJUcmVlU2V0dGluZ3MmIHNldHRpbmdzLCBDQ0xheWVyVHJlZUhv
c3RJbXBsQ2xpZW50KiBjbGllbnQpCitDQ0xheWVyVHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhv
c3RJbXBsKGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzLCBDQ0xheWVyVHJlZUhvc3RJbXBsQ2xp
ZW50KiBjbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3NvdXJjZUZyYW1l
TnVtYmVyKC0xKQogICAgICwgbV9mcmFtZU51bWJlcigwKQpAQCAtMjU4LDcgKzI1Nyw3IEBAIHZv
aWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y2FsY3VsYXRlUmVuZGVyU3VyZmFjZUxheWVyTGlzdChD
Q0xheWVyTGlzdCYgcmVuZGVyU3VyCiAKICAgICAgICAgaWYgKCFsYXllclJlbmRlcmVyQ2FwYWJp
bGl0aWVzKCkudXNpbmdQYXJ0aWFsU3dhcCkKICAgICAgICAgICAgIG1fcm9vdFNjaXNzb3JSZWN0
ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoMCwgMCksIGRldmljZVZpZXdwb3J0U2l6ZSgpKTsKLQor
ICAgIAogICAgICAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVBbmRT
Y2lzc29yUmVjdHMocmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9yb290U2Npc3NvclJlY3QpOwog
ICAgIH0KIH0KQEAgLTg1OSw3ICs4NTgsNyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmFu
aW1hdGVQYWdlU2NhbGUoZG91YmxlIG1vbm90b25pY1RpbWUpCiAKIHZvaWQgQ0NMYXllclRyZWVI
b3N0SW1wbDo6YW5pbWF0ZUxheWVycyhkb3VibGUgbW9ub3RvbmljVGltZSwgZG91YmxlIHdhbGxD
bG9ja1RpbWUpCiB7Ci0gICAgaWYgKCFDQ1NldHRpbmdzOjphY2NlbGVyYXRlZEFuaW1hdGlvbkVu
YWJsZWQoKSB8fCAhbV9uZWVkc0FuaW1hdGVMYXllcnMgfHwgIW1fcm9vdExheWVySW1wbCkKKyAg
ICBpZiAoIW1fc2V0dGluZ3MudGhyZWFkZWRBbmltYXRpb25FbmFibGVkIHx8ICFtX25lZWRzQW5p
bWF0ZUxheWVycyB8fCAhbV9yb290TGF5ZXJJbXBsKQogICAgICAgICByZXR1cm47CiAKICAgICBU
UkFDRV9FVkVOVCgiQ0NMYXllclRyZWVIb3N0SW1wbDo6YW5pbWF0ZUxheWVycyIsIHRoaXMsIDAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCmluZGV4IDRkYjkwMWY3MzcxMjkx
NDA0MWE4MjI4MTZjMGRkMmRiZWE5MTMwYzcuLjkxOTQyYmZlYmZmMTY3NWI0Mjk0ZTIxNjc5MjNh
M2FkZmQ2ZjcyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKQEAgLTY4
LDcgKzY4LDcgQEAgY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbCA6IHB1YmxpYyBDQ0lucHV0SGFu
ZGxlckNsaWVudCwgQ0NSZW5kZXJlckNsaWVudCB7CiAgICAgdHlwZWRlZiBWZWN0b3I8Q0NMYXll
ckltcGwqPiBDQ0xheWVyTGlzdDsKIAogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEND
TGF5ZXJUcmVlSG9zdEltcGw+IGNyZWF0ZShjb25zdCBDQ0xheWVyVHJlZVNldHRpbmdzJiwgQ0NM
YXllclRyZWVIb3N0SW1wbENsaWVudCopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPENDTGF5ZXJU
cmVlSG9zdEltcGw+IGNyZWF0ZShjb25zdCBDQ1NldHRpbmdzJiwgQ0NMYXllclRyZWVIb3N0SW1w
bENsaWVudCopOwogICAgIHZpcnR1YWwgfkNDTGF5ZXJUcmVlSG9zdEltcGwoKTsKIAogICAgIC8v
IENDSW5wdXRIYW5kbGVyQ2xpZW50IGltcGxlbWVudGF0aW9uCkBAIC0xMDYsNyArMTA2LDcgQEAg
cHVibGljOgogCiAgICAgLy8gQ0NSZW5kZXJlckNsaWVudCBpbXBsZW1lbnRhdGlvbgogICAgIHZp
cnR1YWwgY29uc3QgSW50U2l6ZSYgZGV2aWNlVmlld3BvcnRTaXplKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gbV9kZXZpY2VWaWV3cG9ydFNpemU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IENDTGF5
ZXJUcmVlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9zZXR0
aW5nczsgfQorICAgIHZpcnR1YWwgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZExvc2VD
b250ZXh0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG9uU3dhcEJ1ZmZlcnNDb21wbGV0
ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGdWxsUm9vdExheWVyRGFtYWdlKCkg
T1ZFUlJJREU7CkBAIC0xNzIsNyArMTcyLDcgQEAgcHVibGljOgogICAgIENDRGVidWdSZWN0SGlz
dG9yeSogZGVidWdSZWN0SGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdSZWN0SGlzdG9y
eS5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgQ0NMYXllclRyZWVIb3N0SW1wbChjb25zdCBD
Q0xheWVyVHJlZVNldHRpbmdzJiwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCopOworICAgIEND
TGF5ZXJUcmVlSG9zdEltcGwoY29uc3QgQ0NTZXR0aW5ncyYsIENDTGF5ZXJUcmVlSG9zdEltcGxD
bGllbnQqKTsKIAogICAgIHZvaWQgYW5pbWF0ZVBhZ2VTY2FsZShkb3VibGUgbW9ub3RvbmljVGlt
ZSk7CiAgICAgdm9pZCBhbmltYXRlR2VzdHVyZXMoZG91YmxlIG1vbm90b25pY1RpbWUpOwpAQCAt
MjE3LDcgKzIxNyw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPENDUmVuZGVyZXI+IG1fbGF5ZXJS
ZW5kZXJlcjsKICAgICBPd25QdHI8Q0NMYXllckltcGw+IG1fcm9vdExheWVySW1wbDsKICAgICBD
Q0xheWVySW1wbCogbV9zY3JvbGxMYXllckltcGw7Ci0gICAgQ0NMYXllclRyZWVTZXR0aW5ncyBt
X3NldHRpbmdzOworICAgIENDU2V0dGluZ3MgbV9zZXR0aW5nczsKICAgICBJbnRTaXplIG1fdmll
d3BvcnRTaXplOwogICAgIEludFNpemUgbV9kZXZpY2VWaWV3cG9ydFNpemU7CiAgICAgYm9vbCBt
X3Zpc2libGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1JlbmRlcmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlcmVyLmgKaW5kZXggMzJmODM1OGM3NDRkYzBlOGMxOGU5NGIw
NjRhOTFkNTA0ODA1ZWZhNi4uOWM5MzhhOTkwYWJjNGQ5YjU1NTQ2OGU3MDg2ZDdiNTM2MWI2MDUx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDUmVuZGVyZXIuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBUZXh0dXJlVXBs
b2FkZXI7CiBjbGFzcyBDQ1JlbmRlcmVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNv
bnN0IEludFNpemUmIGRldmljZVZpZXdwb3J0U2l6ZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IGNvbnN0IENDTGF5ZXJUcmVlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpZExvc2VDb250ZXh0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN3YXBCdWZm
ZXJzQ29tcGxldGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEZ1bGxSb290TGF5ZXJEYW1h
Z2UoKSA9IDA7CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29uc3Qg
TGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOwogCi0g
ICAgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBt
X2NsaWVudC0+c2V0dGluZ3MoKTsgfQorICAgIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKCkg
Y29uc3QgeyByZXR1cm4gbV9jbGllbnQtPnNldHRpbmdzKCk7IH0KIAogICAgIGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2l6ZSgpIHsgcmV0dXJuIG1fY2xpZW50LT5kZXZpY2VWaWV3cG9ydFNpemUo
KTsgfQogICAgIGludCB2aWV3cG9ydFdpZHRoKCkgeyByZXR1cm4gdmlld3BvcnRTaXplKCkud2lk
dGgoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1NldHRpbmdzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTZlZjU1MTdhOTNlYzhmMWZhMzU5OTAxZjUwZGQ4YWIyNDhkMzAwOC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NldHRpbmdzLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1
ZGUgImNjL0NDU2V0dGluZ3MuaCIKLQotbmFtZXNwYWNlIHsKLXN0YXRpYyBib29sIHNfcGVyVGls
ZVBhaW50aW5nRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGJvb2wgc19wYXJ0aWFsU3dhcEVuYWJs
ZWQgPSBmYWxzZTsKLXN0YXRpYyBib29sIHNfYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkID0g
ZmFsc2U7Ci19IC8vIG5hbWVzcGFjZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWJvb2wgQ0NT
ZXR0aW5nczo6cGVyVGlsZVBhaW50aW5nRW5hYmxlZCgpIHsgcmV0dXJuIHNfcGVyVGlsZVBhaW50
aW5nRW5hYmxlZDsgfQotdm9pZCBDQ1NldHRpbmdzOjpzZXRQZXJUaWxlUGFpbnRpbmdFbmFibGVk
KGJvb2wgZW5hYmxlZCkgeyBzX3BlclRpbGVQYWludGluZ0VuYWJsZWQgPSBlbmFibGVkOyB9Ci0K
LWJvb2wgQ0NTZXR0aW5nczo6cGFydGlhbFN3YXBFbmFibGVkKCkgeyByZXR1cm4gc19wYXJ0aWFs
U3dhcEVuYWJsZWQ7IH0KLXZvaWQgQ0NTZXR0aW5nczo6c2V0UGFydGlhbFN3YXBFbmFibGVkKGJv
b2wgZW5hYmxlZCkgeyBzX3BhcnRpYWxTd2FwRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLQotYm9vbCBD
Q1NldHRpbmdzOjphY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoKSB7IHJldHVybiBzX2FjY2Vs
ZXJhdGVkQW5pbWF0aW9uRW5hYmxlZDsgfQotdm9pZCBDQ1NldHRpbmdzOjpzZXRBY2NlbGVyYXRl
ZEFuaW1hdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IHNfYWNjZWxlcmF0ZWRBbmltYXRpb25F
bmFibGVkID0gZW5hYmxlZDsgfQotCi12b2lkIENDU2V0dGluZ3M6OnJlc2V0KCkKLXsKLSAgICBz
X3BlclRpbGVQYWludGluZ0VuYWJsZWQgPSBmYWxzZTsKLSAgICBzX3BhcnRpYWxTd2FwRW5hYmxl
ZCA9IGZhbHNlOwotICAgIHNfYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkID0gZmFsc2U7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2V0dGluZ3MuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggODhmOGMyZmZkMzUyZTVkYTk2NGM2ZGJlOThkZWIwMGFjZDBhOTll
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NldHRpbmdzLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENDU2V0dGlu
Z3NfaAotI2RlZmluZSBDQ1NldHRpbmdzX2gKLQotI2luY2x1ZGUgIkludFNpemUuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDQ1NldHRpbmdzIHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgYm9vbCBwZXJUaWxlUGFpbnRpbmdFbmFibGVkKCk7Ci0gICAgc3RhdGljIGJvb2wgcGFydGlh
bFN3YXBFbmFibGVkKCk7Ci0gICAgc3RhdGljIGJvb2wgYWNjZWxlcmF0ZWRBbmltYXRpb25FbmFi
bGVkKCk7Ci0KLSAgICAvLyBUaGVzZSBzZXR0ZXJzIHNob3VsZCBvbmx5IGJlIHVzZWQgb24gdGhl
IG1haW4gdGhyZWFkIGJlZm9yZSB0aGUgbGF5ZXIKLSAgICAvLyByZW5kZXJlciBpcyBpbml0aWFs
aXplZC4KLSAgICBzdGF0aWMgdm9pZCBzZXRQZXJUaWxlUGFpbnRpbmdFbmFibGVkKGJvb2wpOwot
ICAgIHN0YXRpYyB2b2lkIHNldFBhcnRpYWxTd2FwRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMg
dm9pZCBzZXRBY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoYm9vbCk7Ci0KLSAgICAvLyBUaGVz
ZSBzZXR0aW5ncyBhcmUgbWVhbnQgdG8gYmUgc2V0IG9ubHkgb25jZSwgYW5kIG9ubHkgcmVhZCB0
aGVyZWFmdGVyLgotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgb25seSBmb3IgcmVzZXR0aW5nIHNl
dHRpbmdzIGluIHRlc3RzLgotICAgIHN0YXRpYyB2b2lkIHJlc2V0KCk7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBDQ1NldHRpbmdzX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGUxZDljZGI4ZDdkYTcxNWM3MDVj
YzBkZDZkYWIyZTliNjhiMWEwODcuLmVhYmViZTA5NWY5Y2Y3N2VjZjNlZjkyNTMxNmU4MWVhMzdj
MTQ2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApA
QCAtMjM0LDYgKzIzNCwxMiBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBhZ2VTY2FsZUZh
Y3RvcihmbG9hdCBzY2FsZUZhY3RvciwgaW50IHgsIGludCB5LCBFeGNlcAogICAgIHBhZ2UoKS0+
c2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yLCBJbnRQb2ludCh4LCB5KSk7CiB9CiAKK3Zv
aWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0
dGluZ3MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoZW5hYmxl
ZCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0U2hhZG93RE9NRW5hYmxlZChib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCBjZDI4YjYzNjVk
YmZjNzQzYTUyODA4ZDVkM2Y4MjI1ZThmYjg1NjRmLi40ZmU4MjI2MzViNzViZDMyNzM0YjYyZTUw
MDY0NjZkNWQ3OGYwZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENo
ZWNraW5nRW5hYmxlZChib29sLCBFeGNlcHRpb25Db2RlJik7CiAgICAgYm9vbCB1bmlmaWVkVGV4
dENoZWNraW5nRW5hYmxlZChFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRQYWdlU2NhbGVG
YWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgc2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIHZvaWQgc2V0VG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQoYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJv
b2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNN
b3VzZShib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXBpCmluZGV4IDlmZGE4ZGM4Zjc4NTVlZmRjNDljNzM0Yzc2ZWE0NGU4YjRkN2VhZmQuLmY4
YTRiYzY1ZGQ5YzQwNzFkOGRjZWU2YmM2NWJlYTFkYjcyZmEyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwaQpAQCAtODgsNyArODgsNiBAQAogICAgICAgICAgICAgJ3Rlc3RzL0NDU2No
ZWR1bGVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDU2luZ2xlVGhyZWFkUHJveHlU
ZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NTb2xpZENvbG9yTGF5ZXJJbXBsVGVzdC5j
cHAnLAotICAgICAgICAgICAgJ3Rlc3RzL0NDVGVzdENvbW1vbi5oJywKICAgICAgICAgICAgICd0
ZXN0cy9DQ1RpbGVkTGF5ZXJJbXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDVGls
ZWRMYXllclRlc3RDb21tb24uaCcsCiAgICAgICAgICAgICAndGVzdHMvQ0NUaWxlZExheWVyVGVz
dENvbW1vbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9z
aXRvci5oCmluZGV4IDZlMGRhMmIyMjcwYWIxMTdhZjExNmNhMmRkMjQ4NTI4YmE0ZGE0OWEuLjNl
YWRlZjMyYzM3YjMxMzQ5Yjk5Mzc3YTJlMTlmOGMwNmE4ZjhkNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yLmgKQEAgLTI2LDggKzI2LDYgQEAKICNp
Zm5kZWYgV2ViQ29tcG9zaXRvcl9oCiAjZGVmaW5lIFdlYkNvbXBvc2l0b3JfaAogCi0jZGVmaW5l
IFdFQkNPTVBPU0lUT1JfT1dOU19TRVRUSU5HUyAxCi0KICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJD
b21tb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01MSwxMSArNDksNiBAQCBwdWJsaWM6
CiAgICAgLy8gYWZ0ZXIgc2h1dGRvd24uCiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBz
aHV0ZG93bigpOwogCi0gICAgLy8gVGhlc2UgbWF5IG9ubHkgYmUgY2FsbGVkIGJlZm9yZSBpbml0
aWFsaXplLgotICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgc2V0UGVyVGlsZVBhaW50aW5n
RW5hYmxlZChib29sKTsKLSAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFBhcnRpYWxT
d2FwRW5hYmxlZChib29sKTsKLSAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHNldEFjY2Vs
ZXJhdGVkQW5pbWF0aW9uRW5hYmxlZChib29sKTsKLQogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
fldlYkNvbXBvc2l0b3IoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2V0dGluZ3MuaAppbmRleCAwNTI4ZDhlZjRlYWJjNmZmOGQ3ZTI3MDgxNDIwYWZhMDZkYzky
MDVhLi44OGQ5YTAxMzhkMjE0MWExMTRiOTBiZTk1Y2QwZDM2MzJjNjA2M2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTE0Nyw2ICsxNDcsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVu
YWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXN1YWxXb3JkTW92ZW1lbnRF
bmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZWRQYWludGlu
Z0VuYWJsZWQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRQZXJUaWxlUGFpbnRpbmdF
bmFibGVkKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGFydGlhbFN3YXBFbmFibGVk
KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGhyZWFkZWRBbmltYXRpb25FbmFibGVk
KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld3BvcnRFbmFibGVkKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUo
Ym9vbCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCB2aWV3cG9ydEVuYWJsZWQoKSBjb25zdCA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAK
aW5kZXggZjRlOTZlMGJlMTkxMDZiMzlhMGJmZDI4MmNiNDljMDJkMWNkMGExNC4uOTFkOGIxYmU2
NjA0NWEzOThkMjc4ODhlY2NlMGY3ZmI2ZjIzMjkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2lu
Y2x1ZGUgIldlYklucHV0RXZlbnQuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIK
ICNpbmNsdWRlICJjYy9DQ1Byb3h5LmgiCi0jaW5jbHVkZSAiY2MvQ0NTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpAQCAtNTIsMjUgKzUxLDYgQEAgdm9pZCBXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKFdl
YlRocmVhZCogaW1wbFRocmVhZCkKIHZvaWQgV2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKQogewog
ICAgIFdlYkNvbXBvc2l0b3JJbXBsOjpzaHV0ZG93bigpOwotICAgIENDU2V0dGluZ3M6OnJlc2V0
KCk7Ci19Ci0KLXZvaWQgV2ViQ29tcG9zaXRvcjo6c2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChi
b29sIGVuYWJsZWQpCi17Ci0gICAgQVNTRVJUKCFXZWJDb21wb3NpdG9ySW1wbDo6aW5pdGlhbGl6
ZWQoKSk7Ci0gICAgQ0NTZXR0aW5nczo6c2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChlbmFibGVk
KTsKLX0KLQotdm9pZCBXZWJDb21wb3NpdG9yOjpzZXRQYXJ0aWFsU3dhcEVuYWJsZWQoYm9vbCBl
bmFibGVkKQotewotICAgIEFTU0VSVCghV2ViQ29tcG9zaXRvckltcGw6OmluaXRpYWxpemVkKCkp
OwotICAgIENDU2V0dGluZ3M6OnNldFBhcnRpYWxTd2FwRW5hYmxlZChlbmFibGVkKTsKLX0KLQot
dm9pZCBXZWJDb21wb3NpdG9yOjpzZXRBY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQoYm9vbCBl
bmFibGVkKQotewotICAgIEFTU0VSVCghV2ViQ29tcG9zaXRvckltcGw6OmluaXRpYWxpemVkKCkp
OwotICAgIENDU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQW5pbWF0aW9uRW5hYmxlZChlbmFibGVk
KTsKIH0KIAogdm9pZCBXZWJDb21wb3NpdG9ySW1wbDo6aW5pdGlhbGl6ZShXZWJUaHJlYWQqIGlt
cGxUaHJlYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXll
clRyZWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZp
ZXcuY3BwCmluZGV4IGUwNDJmMjUxNzMwZmFjOTdlYThmNjE4NDYwNGI5ODJmZmI1MDA5M2UuLmZl
ZDNkYjk3NTk4NWM3OGMzNjI5MTI4Nzg4YWM2NDFhZjAxMzdmODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwCkBAIC0zNywxNSArMzcsMTgg
QEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLQotV2Vi
TGF5ZXJUcmVlVmlldzo6U2V0dGluZ3M6Om9wZXJhdG9yIENDTGF5ZXJUcmVlU2V0dGluZ3MoKSBj
b25zdAorV2ViTGF5ZXJUcmVlVmlldzo6U2V0dGluZ3M6Om9wZXJhdG9yIENDU2V0dGluZ3MoKSBj
b25zdAogewotICAgIENDTGF5ZXJUcmVlU2V0dGluZ3Mgc2V0dGluZ3M7CisgICAgQ0NTZXR0aW5n
cyBzZXR0aW5nczsKKyAgICBzZXR0aW5ncy5hY2NlbGVyYXRlUGFpbnRpbmcgPSBhY2NlbGVyYXRl
UGFpbnRpbmc7CiAgICAgc2V0dGluZ3MuZm9yY2VTb2Z0d2FyZUNvbXBvc2l0aW5nID0gZm9yY2VT
b2Z0d2FyZUNvbXBvc2l0aW5nOwogICAgIHNldHRpbmdzLnNob3dGUFNDb3VudGVyID0gc2hvd0ZQ
U0NvdW50ZXI7CiAgICAgc2V0dGluZ3Muc2hvd1BsYXRmb3JtTGF5ZXJUcmVlID0gc2hvd1BsYXRm
b3JtTGF5ZXJUcmVlOwogICAgIHNldHRpbmdzLnNob3dQYWludFJlY3RzID0gc2hvd1BhaW50UmVj
dHM7CiAgICAgc2V0dGluZ3MucmVmcmVzaFJhdGUgPSByZWZyZXNoUmF0ZTsKKyAgICBzZXR0aW5n
cy5wZXJUaWxlUGFpbnRpbmcgPSBwZXJUaWxlUGFpbnRpbmc7CisgICAgc2V0dGluZ3MucGFydGlh
bFN3YXBFbmFibGVkID0gcGFydGlhbFN3YXBFbmFibGVkOworICAgIHNldHRpbmdzLnRocmVhZGVk
QW5pbWF0aW9uRW5hYmxlZCA9IHRocmVhZGVkQW5pbWF0aW9uRW5hYmxlZDsKICAgICBzZXR0aW5n
cy5kZWZhdWx0VGlsZVNpemUgPSBkZWZhdWx0VGlsZVNpemU7CiAgICAgc2V0dGluZ3MubWF4VW50
aWxlZExheWVyU2l6ZSA9IG1heFVudGlsZWRMYXllclNpemU7CiAgICAgc2V0dGluZ3MuZGV2aWNl
U2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IDVmODc3NmI1OGEzNTg4NWE5YWE1MjJl
NTY5NTNjNGIwZGRiYmExNmMuLjk0MjM2ODk2ODc2NmU3NmJhODQyNzYyMDczYTUzMzI5YmEwNmY3
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cApAQCAtNTkyLDYgKzU5MiwyMSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0QWNjZWxlcmF0
ZWRQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fc2V0dGluZ3MtPnNldEFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgV2ViU2V0dGluZ3NJbXBs
OjpzZXRQZXJUaWxlUGFpbnRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX3NldHRp
bmdzLT5zZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgV2ViU2V0
dGluZ3NJbXBsOjpzZXRQYXJ0aWFsU3dhcEVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1f
c2V0dGluZ3MtPnNldFBhcnRpYWxTd2FwRW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBXZWJT
ZXR0aW5nc0ltcGw6OnNldFRocmVhZGVkQW5pbWF0aW9uRW5hYmxlZChib29sIGVuYWJsZWQpCit7
CisgICAgbV9zZXR0aW5ncy0+c2V0VGhyZWFkZWRBbmltYXRpb25FbmFibGVkKGVuYWJsZWQpOwor
fQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdl
c3R1cmUoYm9vbCByZXF1aXJlZCkKIHsKICAgICBtX3NldHRpbmdzLT5zZXRNZWRpYVBsYXliYWNr
UmVxdWlyZXNVc2VyR2VzdHVyZShyZXF1aXJlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IDJiNThjMDQ0M2I5ZjEwNzdjYTI0ODdiNzAyNjdk
MDU0MWM1ZGRiODguLmVhN2NmM2ZmOTIyM2Q4NGJmNDI0ZmQyN2M1YjkzNDYwZTQ1ODdjNTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCkBAIC0xNDQs
NiArMTQ0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREaXNwbGF5Q2Fw
dGlvbnMoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZERpc3BsYXlUZXh0RGVzY3Jp
cHRpb25zKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZFBhaW50aW5nRW5h
YmxlZChib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChi
b29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGFydGlhbFN3YXBFbmFibGVkKGJvb2wpOworICAg
IHZpcnR1YWwgdm9pZCBzZXRUaHJlYWRlZEFuaW1hdGlvbkVuYWJsZWQoYm9vbCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldEZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3cG9ydEVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKGJvb2wpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGZmYTgxYjRiYzM2N2RkZjMx
NmQ3MzlkOWMwNmY4OTU2ZGNhNmNkMWYuLmFiNjc3NTFlNzM0YTU0YTVhOTQ3ZGMzMTU5OWZhOTZm
M2NkYjdlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
QEAgLTE0Nyw3ICsxNDcsNiBAQAogI2luY2x1ZGUgIldlYlZpZXdDbGllbnQuaCIKICNpbmNsdWRl
ICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiY2MvQ0NQcm94eS5oIgotI2luY2x1ZGUgImNjL0ND
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJwYWludGluZy9HcmFwaGljc0NvbnRleHRCdWlsZGVyLmgi
CiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAi
cGxhdGZvcm0vV2ViU3RyaW5nLmgiCkBAIC00NjMsNyArNDYyLDcgQEAgV2ViVmlld0ltcGw6Oldl
YlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFU
VVMpCiAgICAgcHJvdmlkZUJhdHRlcnlUbyhtX3BhZ2UuZ2V0KCksIG1fYmF0dGVyeUNsaWVudC5n
ZXQoKSk7CiAjZW5kaWYKLQorICAgIAogICAgIG1fcGFnZS0+c2V0R3JvdXBOYW1lKHBhZ2VHcm91
cE5hbWUpOwogCiAjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCkBAIC0zNDc3LDYgKzM0
NzYsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0
aXZlKGJvb2wgYWN0aXZlKQogICAgICAgICBsYXllclRyZWVWaWV3U2V0dGluZ3Muc2hvd1BhaW50
UmVjdHMgPSBzZXR0aW5nc0ltcGwoKS0+c2hvd1BhaW50UmVjdHMoKTsKICAgICAgICAgbGF5ZXJU
cmVlVmlld1NldHRpbmdzLmZvcmNlU29mdHdhcmVDb21wb3NpdGluZyA9IHNldHRpbmdzKCktPmZv
cmNlU29mdHdhcmVDb21wb3NpdGluZygpOwogCisgICAgICAgIGxheWVyVHJlZVZpZXdTZXR0aW5n
cy5wZXJUaWxlUGFpbnRpbmcgPSBwYWdlKCktPnNldHRpbmdzKCktPnBlclRpbGVEcmF3aW5nRW5h
YmxlZCgpOworICAgICAgICBsYXllclRyZWVWaWV3U2V0dGluZ3MucGFydGlhbFN3YXBFbmFibGVk
ID0gcGFnZSgpLT5zZXR0aW5ncygpLT5wYXJ0aWFsU3dhcEVuYWJsZWQoKTsKKyAgICAgICAgbGF5
ZXJUcmVlVmlld1NldHRpbmdzLnRocmVhZGVkQW5pbWF0aW9uRW5hYmxlZCA9IHBhZ2UoKS0+c2V0
dGluZ3MoKS0+dGhyZWFkZWRBbmltYXRpb25FbmFibGVkKCk7CisKICAgICAgICAgbGF5ZXJUcmVl
Vmlld1NldHRpbmdzLmRlZmF1bHRUaWxlU2l6ZSA9IHNldHRpbmdzSW1wbCgpLT5kZWZhdWx0VGls
ZVNpemUoKTsKICAgICAgICAgbGF5ZXJUcmVlVmlld1NldHRpbmdzLm1heFVudGlsZWRMYXllclNp
emUgPSBzZXR0aW5nc0ltcGwoKS0+bWF4VW50aWxlZExheWVyU2l6ZSgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3Qu
Y3BwCmluZGV4IDdkNmRjZjc5ZWU0ZmMwMWU0Y2E3ZjBlZDBiZjI5YTllY2E4ZjUzZDEuLmE2MWRk
ODEyZDM4NzZmNDc3MzVkNjk1ZDNmY2UwN2ZlZjQ5YmI0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCkBA
IC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJDQ0FuaW1hdGlvblRlc3RDb21tb24uaCIKICNp
bmNsdWRlICJDQ0xheWVyVGVzdENvbW1vbi5oIgotI2luY2x1ZGUgIkNDVGVzdENvbW1vbi5oIgog
I2luY2x1ZGUgIkZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5oIgpA
QCAtMzcsNyArMzYsNiBAQAogI2luY2x1ZGUgImNjL0NDTGF5ZXJUaWxpbmdEYXRhLmgiCiAjaW5j
bHVkZSAiY2MvQ0NRdWFkQ3VsbGVyLmgiCiAjaW5jbHVkZSAiY2MvQ0NTY3JvbGxiYXJMYXllcklt
cGwuaCIKLSNpbmNsdWRlICJjYy9DQ1NldHRpbmdzLmgiCiAjaW5jbHVkZSAiY2MvQ0NTaW5nbGVU
aHJlYWRQcm94eS5oIgogI2luY2x1ZGUgImNjL0NDU29saWRDb2xvckRyYXdRdWFkLmgiCiAjaW5j
bHVkZSAiY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmgiCkBAIC02OCw3ICs2Niw3IEBAIHB1YmxpYzoK
ICAgICAgICAgOiBtX2RpZFJlcXVlc3RDb21taXQoZmFsc2UpCiAgICAgICAgICwgbV9kaWRSZXF1
ZXN0UmVkcmF3KGZhbHNlKQogICAgIHsKLSAgICAgICAgQ0NMYXllclRyZWVTZXR0aW5ncyBzZXR0
aW5nczsKKyAgICAgICAgQ0NTZXR0aW5ncyBzZXR0aW5nczsKICAgICAgICAgbV9ob3N0SW1wbCA9
IENDTGF5ZXJUcmVlSG9zdEltcGw6OmNyZWF0ZShzZXR0aW5ncywgdGhpcyk7CiAgICAgICAgIG1f
aG9zdEltcGwtPmluaXRpYWxpemVMYXllclJlbmRlcmVyKGNyZWF0ZUNvbnRleHQoKSwgVW50aHJv
dHRsZWRVcGxvYWRlcik7CiAgICAgICAgIG1faG9zdEltcGwtPnNldFZpZXdwb3J0U2l6ZShJbnRT
aXplKDEwLCAxMCkpOwpAQCAtODMsOSArODEsMTAgQEAgcHVibGljOgogCiAgICAgUGFzc093blB0
cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBjcmVhdGVMYXllclRyZWVIb3N0KGJvb2wgcGFydGlhbFN3
YXAsIFBhc3NSZWZQdHI8Q0NHcmFwaGljc0NvbnRleHQ+IGdyYXBoaWNzQ29udGV4dCwgUGFzc093
blB0cjxDQ0xheWVySW1wbD4gcm9vdFB0cikKICAgICB7Ci0gICAgICAgIENDU2V0dGluZ3M6OnNl
dFBhcnRpYWxTd2FwRW5hYmxlZChwYXJ0aWFsU3dhcCk7CisgICAgICAgIENDU2V0dGluZ3Mgc2V0
dGluZ3M7CisKKyAgICAgICAgc2V0dGluZ3MucGFydGlhbFN3YXBFbmFibGVkID0gcGFydGlhbFN3
YXA7CiAKLSAgICAgICAgQ0NMYXllclRyZWVTZXR0aW5ncyBzZXR0aW5nczsKICAgICAgICAgT3du
UHRyPENDTGF5ZXJUcmVlSG9zdEltcGw+IG15SG9zdEltcGwgPSBDQ0xheWVyVHJlZUhvc3RJbXBs
OjpjcmVhdGUoc2V0dGluZ3MsIHRoaXMpOwogCiAgICAgICAgIG15SG9zdEltcGwtPmluaXRpYWxp
emVMYXllclJlbmRlcmVyKGdyYXBoaWNzQ29udGV4dCwgVW50aHJvdHRsZWRVcGxvYWRlcik7CkBA
IC0xNTEsNyArMTUwLDYgQEAgcHJvdGVjdGVkOgogICAgIE93blB0cjxDQ0xheWVyVHJlZUhvc3RJ
bXBsPiBtX2hvc3RJbXBsOwogICAgIGJvb2wgbV9kaWRSZXF1ZXN0Q29tbWl0OwogICAgIGJvb2wg
bV9kaWRSZXF1ZXN0UmVkcmF3OwotICAgIENDU2NvcGVkU2V0dGluZ3MgbV9zY29wZWRTZXR0aW5n
czsKIH07CiAKIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFOb0xh
eWVycykKQEAgLTExMTcsOCArMTExNSw4IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVz
dCwgcGFydGlhbFN3YXBSZWNlaXZlc0RhbWFnZVJlY3QpCiAKICAgICAvLyBUaGlzIHRlc3QgY3Jl
YXRlcyBpdHMgb3duIENDTGF5ZXJUcmVlSG9zdEltcGwsIHNvCiAgICAgLy8gdGhhdCB3ZSBjYW4g
Zm9yY2UgcGFydGlhbCBzd2FwIGVuYWJsZWQuCi0gICAgQ0NMYXllclRyZWVTZXR0aW5ncyBzZXR0
aW5nczsKLSAgICBDQ1NldHRpbmdzOjpzZXRQYXJ0aWFsU3dhcEVuYWJsZWQodHJ1ZSk7CisgICAg
Q0NTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBzZXR0aW5ncy5wYXJ0aWFsU3dhcEVuYWJsZWQgPSB0
cnVlOwogICAgIE93blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBsYXllclRyZWVIb3N0SW1wbCA9
IENDTGF5ZXJUcmVlSG9zdEltcGw6OmNyZWF0ZShzZXR0aW5ncywgdGhpcyk7CiAgICAgbGF5ZXJU
cmVlSG9zdEltcGwtPmluaXRpYWxpemVMYXllclJlbmRlcmVyKGNjQ29udGV4dCwgVW50aHJvdHRs
ZWRVcGxvYWRlcik7CiAgICAgbGF5ZXJUcmVlSG9zdEltcGwtPnNldFZpZXdwb3J0U2l6ZShJbnRT
aXplKDUwMCwgNTAwKSk7CkBAIC0xMzI0LDcgKzEzMjIsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVI
b3N0SW1wbFRlc3QsIHBhcnRpYWxTd2FwTm9VcGRhdGUpCiAgICAgaGFybmVzcy5tdXN0U2V0U2Np
c3NvcigwLCAwLCAxMCwgMTApOwogCiAgICAgT3duUHRyPENDTGF5ZXJUcmVlSG9zdEltcGw+IG15
SG9zdEltcGwgPSBjcmVhdGVMYXllclRyZWVIb3N0KHRydWUsIGNvbnRleHQsIEZha2VMYXllcldp
dGhRdWFkczo6Y3JlYXRlKDEpKTsKLQorICAgIAogICAgIC8vIERyYXcgb25jZSB0byBtYWtlIHN1
cmUgbGF5ZXIgaXMgbm90IG5ldwogICAgIENDTGF5ZXJUcmVlSG9zdEltcGw6OkZyYW1lRGF0YSBm
cmFtZTsKICAgICBFWFBFQ1RfVFJVRShteUhvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7
CkBAIC0xMzUxLDcgKzEzNDksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gV2ViU3Ry
aW5nKCJHTF9DSFJPTUlVTV9wb3N0X3N1Yl9idWZmZXIiKTsKICAgICAgICAgcmV0dXJuIFdlYlN0
cmluZygpOwogICAgIH0KLQorICAgIAogICAgIFdlYlN0cmluZyBnZXRSZXF1ZXN0YWJsZUV4dGVu
c2lvbnNDSFJPTUlVTSgpCiAgICAgewogICAgICAgICByZXR1cm4gV2ViU3RyaW5nKCJHTF9DSFJP
TUlVTV9wb3N0X3N1Yl9idWZmZXIiKTsKQEAgLTEzNjAsMTEgKzEzNTgsMTAgQEAgcHVibGljOgog
CiBzdGF0aWMgUGFzc093blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBzZXR1cExheWVyc0Zvck9w
YWNpdHkoYm9vbCBwYXJ0aWFsU3dhcCwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCogY2xpZW50
KQogewotICAgIENDU2V0dGluZ3M6OnNldFBhcnRpYWxTd2FwRW5hYmxlZChwYXJ0aWFsU3dhcCk7
CisgICAgQ0NTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBzZXR0aW5ncy5wYXJ0aWFsU3dhcEVuYWJs
ZWQgPSBwYXJ0aWFsU3dhcDsKIAogICAgIFJlZlB0cjxDQ0dyYXBoaWNzQ29udGV4dD4gY29udGV4
dCA9IENDR3JhcGhpY3NDb250ZXh0OjpjcmVhdGUzRChHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6
OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRyKG5ldyBQYXJ0aWFs
U3dhcENvbnRleHQoKSksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdp
bmRvdykpOwotCi0gICAgQ0NMYXllclRyZWVTZXR0aW5ncyBzZXR0aW5nczsKICAgICBPd25QdHI8
Q0NMYXllclRyZWVIb3N0SW1wbD4gbXlIb3N0SW1wbCA9IENDTGF5ZXJUcmVlSG9zdEltcGw6OmNy
ZWF0ZShzZXR0aW5ncywgY2xpZW50KTsKICAgICBteUhvc3RJbXBsLT5pbml0aWFsaXplTGF5ZXJS
ZW5kZXJlcihjb250ZXh0LnJlbGVhc2UoKSwgVW50aHJvdHRsZWRVcGxvYWRlcik7CiAgICAgbXlI
b3N0SW1wbC0+c2V0Vmlld3BvcnRTaXplKEludFNpemUoMTAwLCAxMDApKTsKQEAgLTE0NzAsOCAr
MTQ2Nyw4IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgY29udHJpYnV0aW5nTGF5
ZXJFbXB0eVNjaXNzb3JOb1BhcnRpYWxTd2FwKQogCiBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1w
bFRlc3QsIGRpZERyYXdOb3RDYWxsZWRPblNjaXNzb3JlZExheWVyKQogewotICAgIENDTGF5ZXJU
cmVlU2V0dGluZ3Mgc2V0dGluZ3M7Ci0gICAgQ0NTZXR0aW5nczo6c2V0UGFydGlhbFN3YXBFbmFi
bGVkKHRydWUpOworICAgIENDU2V0dGluZ3Mgc2V0dGluZ3M7CisgICAgc2V0dGluZ3MucGFydGlh
bFN3YXBFbmFibGVkID0gdHJ1ZTsKIAogICAgIFJlZlB0cjxDQ0dyYXBoaWNzQ29udGV4dD4gY29u
dGV4dCA9IENDR3JhcGhpY3NDb250ZXh0OjpjcmVhdGUzRChHcmFwaGljc0NvbnRleHQzRFByaXZh
dGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRyKG5ldyBQYXJ0
aWFsU3dhcENvbnRleHQoKSksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9z
dFdpbmRvdykpOwogICAgIE93blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBteUhvc3RJbXBsID0g
Q0NMYXllclRyZWVIb3N0SW1wbDo6Y3JlYXRlKHNldHRpbmdzLCB0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4
IDViYzNlNmJiZDM5OTQ3YmJlNjVlM2I0NjgwMjNkYzExZTUzNWIxYzcuLmFhY2Q5YTVkNjkwZjMy
MTc0YjFlMmU5YTJlMjFiYmM5N2VhNmQwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcApAQCAtMzIsNyArMzIsNiBAQAog
I2luY2x1ZGUgIkNvbnRlbnRMYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlLmgiCiAjaW5jbHVkZSAiY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oIgotI2lu
Y2x1ZGUgImNjL0NDU2V0dGluZ3MuaCIKICNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRhdGVyLmgi
CiAjaW5jbHVkZSAiY2MvQ0NUaW1pbmdGdW5jdGlvbi5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dl
YlRocmVhZC5oIgpAQCAtNTgsMjUgKzU3LDYgQEAgbmFtZXNwYWNlIHsKIGNsYXNzIENDTGF5ZXJU
cmVlSG9zdFRlc3QgOiBwdWJsaWMgQ0NUaHJlYWRlZFRlc3QgeyB9OwogY2xhc3MgQ0NMYXllclRy
ZWVIb3N0VGVzdFRocmVhZE9ubHkgOiBwdWJsaWMgQ0NUaHJlYWRlZFRlc3RUaHJlYWRPbmx5IHsg
fTsKIAotLy8gU2hvcnRsaXZlZCBsYXllclRyZWVIb3N0cyBzaG91bGRuJ3QgZGllLgotY2xhc3Mg
Q0NMYXllclRyZWVIb3N0VGVzdFNob3J0bGl2ZWQxIDogcHVibGljIENDTGF5ZXJUcmVlSG9zdFRl
c3QgewotcHVibGljOgotICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RTaG9ydGxpdmVkMSgpIHsgfQot
Ci0gICAgdmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpCi0gICAgewotICAgICAgICAvLyBLaWxsIHRo
ZSBsYXllclRyZWVIb3N0IGltbWVkaWF0ZWx5LgotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNl
dFJvb3RMYXllcigwKTsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LmNsZWFyKCk7Ci0KLSAgICAg
ICAgZW5kVGVzdCgpOwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKQotICAg
IHsKLSAgICB9Ci19OwotCiAvLyBTaG9ydGxpdmVkIGxheWVyVHJlZUhvc3RzIHNob3VsZG4ndCBk
aWUgd2l0aCBhIGNvbW1pdCBpbiBmbGlnaHQuCiBjbGFzcyBDQ0xheWVyVHJlZUhvc3RUZXN0U2hv
cnRsaXZlZDIgOiBwdWJsaWMgQ0NMYXllclRyZWVIb3N0VGVzdCB7CiBwdWJsaWM6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGVzdENvbW1vbi5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1Rlc3RDb21tb24uaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODlmY2U5ODE4OGNjYmQzMWJlOTgzMGMyNWY2NjA3MTMyMTMzYjdjNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDVGVzdENvbW1vbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDQ1Rlc3RDb21tb25faAotI2RlZmluZSBDQ1Rl
c3RDb21tb25faAotCi0jaW5jbHVkZSAiY2MvQ0NTZXR0aW5ncy5oIgotCi1uYW1lc3BhY2UgV2Vi
S2l0VGVzdHMgewotCi0vLyBJZiB5b3UgaGF2ZSBhIHRlc3QgdGhhdCBtb2RpZmllcyBvciB1c2Vz
IGdsb2JhbCBzZXR0aW5ncywga2VlcCBhbiBpbnN0YW5jZQotLy8gb2YgdGhpcyBjbGFzcyB0byBl
bnN1cmUgdGhhdCB5b3Ugc3RhcnQgYW5kIGVuZCB3aXRoIGEgY2xlYW4gc2xhdGUuCi1jbGFzcyBD
Q1Njb3BlZFNldHRpbmdzIHsKLXB1YmxpYzoKLSAgICBDQ1Njb3BlZFNldHRpbmdzKCkgeyBXZWJD
b3JlOjpDQ1NldHRpbmdzOjpyZXNldCgpOyB9Ci0gICAgfkNDU2NvcGVkU2V0dGluZ3MoKSB7IFdl
YkNvcmU6OkNDU2V0dGluZ3M6OnJlc2V0KCk7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dFRlc3RzCi0KLSNlbmRpZiAvLyBDQ1Rlc3RDb21tb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZGVkVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRUZXN0LmNwcAppbmRleCA3YjQ2OGFiN2M5NjJhZmNmZjAz
OGIyMDMxNTlhZWVkY2JhYTI0MjJmLi5jOWViYmExMjJmZmFlY2FiNGMwYzIwOTdlZmY3MDI4MDk0
YTU2MTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFk
ZWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRU
ZXN0LmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
IFRlc3RIb29rczo6Y3JlYXRlQ29udGV4dCgpCiAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQod2ViQ29udGV4dC5y
ZWxlYXNlKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7
CiB9CiAKLVBhc3NPd25QdHI8TW9ja0xheWVyVHJlZUhvc3RJbXBsPiBNb2NrTGF5ZXJUcmVlSG9z
dEltcGw6OmNyZWF0ZShUZXN0SG9va3MqIHRlc3RIb29rcywgY29uc3QgQ0NMYXllclRyZWVTZXR0
aW5ncyYgc2V0dGluZ3MsIENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQqIGNsaWVudCkKK1Bhc3NP
d25QdHI8TW9ja0xheWVyVHJlZUhvc3RJbXBsPiBNb2NrTGF5ZXJUcmVlSG9zdEltcGw6OmNyZWF0
ZShUZXN0SG9va3MqIHRlc3RIb29rcywgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MsIENDTGF5
ZXJUcmVlSG9zdEltcGxDbGllbnQqIGNsaWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE1vY2tMYXllclRyZWVIb3N0SW1wbCh0ZXN0SG9va3MsIHNldHRpbmdzLCBjbGllbnQpKTsKIH0K
QEAgLTE1NSw3ICsxNTUsNyBAQCBkb3VibGUgTW9ja0xheWVyVHJlZUhvc3RJbXBsOjpsb3dGcmVx
dWVuY3lBbmltYXRpb25JbnRlcnZhbCgpIGNvbnN0CiAgICAgcmV0dXJuIDEuMCAvIDYwOwogfQog
Ci1Nb2NrTGF5ZXJUcmVlSG9zdEltcGw6Ok1vY2tMYXllclRyZWVIb3N0SW1wbChUZXN0SG9va3Mq
IHRlc3RIb29rcywgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYgc2V0dGluZ3MsIENDTGF5ZXJU
cmVlSG9zdEltcGxDbGllbnQqIGNsaWVudCkKK01vY2tMYXllclRyZWVIb3N0SW1wbDo6TW9ja0xh
eWVyVHJlZUhvc3RJbXBsKFRlc3RIb29rcyogdGVzdEhvb2tzLCBjb25zdCBDQ1NldHRpbmdzJiBz
ZXR0aW5ncywgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCogY2xpZW50KQogICAgIDogQ0NMYXll
clRyZWVIb3N0SW1wbChzZXR0aW5ncywgY2xpZW50KQogICAgICwgbV90ZXN0SG9va3ModGVzdEhv
b2tzKQogewpAQCAtMTY0LDkgKzE2NCwxMyBAQCBNb2NrTGF5ZXJUcmVlSG9zdEltcGw6Ok1vY2tM
YXllclRyZWVIb3N0SW1wbChUZXN0SG9va3MqIHRlc3RIb29rcywgY29uc3QgQ0NMYXllcgogLy8g
QWRhcHRzIENDTGF5ZXJUcmVlSG9zdCBmb3IgdGVzdC4gSW5qZWN0cyBNb2NrTGF5ZXJUcmVlSG9z
dEltcGwuCiBjbGFzcyBNb2NrTGF5ZXJUcmVlSG9zdCA6IHB1YmxpYyBXZWJDb3JlOjpDQ0xheWVy
VHJlZUhvc3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1vY2tMYXllclRyZWVI
b3N0PiBjcmVhdGUoVGVzdEhvb2tzKiB0ZXN0SG9va3MsIFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dENsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPFdlYkNvcmU6OkxheWVyQ2hyb21pdW0+IHJvb3RM
YXllciwgY29uc3QgV2ViQ29yZTo6Q0NMYXllclRyZWVTZXR0aW5ncyYgc2V0dGluZ3MpCisgICAg
c3RhdGljIFBhc3NPd25QdHI8TW9ja0xheWVyVHJlZUhvc3Q+IGNyZWF0ZShUZXN0SG9va3MqIHRl
c3RIb29rcywgV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6TGF5ZXJDaHJvbWl1bT4gcm9vdExheWVyLCBjb25zdCBXZWJDb3JlOjpDQ1Nl
dHRpbmdzJiBzZXR0aW5ncykKICAgICB7Ci0gICAgICAgIE93blB0cjxNb2NrTGF5ZXJUcmVlSG9z
dD4gbGF5ZXJUcmVlSG9zdChhZG9wdFB0cihuZXcgTW9ja0xheWVyVHJlZUhvc3QodGVzdEhvb2tz
LCBjbGllbnQsIHNldHRpbmdzKSkpOworICAgICAgICAvLyBGb3IgdGhlc2UgdGVzdHMsIHdlIHdp
bGwgZW5hYmxlIHRocmVhZGVkIGFuaW1hdGlvbnMuCisgICAgICAgIENDU2V0dGluZ3Mgc2V0dGlu
Z3NDb3B5ID0gc2V0dGluZ3M7CisgICAgICAgIHNldHRpbmdzQ29weS50aHJlYWRlZEFuaW1hdGlv
bkVuYWJsZWQgPSB0cnVlOworCisgICAgICAgIE93blB0cjxNb2NrTGF5ZXJUcmVlSG9zdD4gbGF5
ZXJUcmVlSG9zdChhZG9wdFB0cihuZXcgTW9ja0xheWVyVHJlZUhvc3QodGVzdEhvb2tzLCBjbGll
bnQsIHNldHRpbmdzQ29weSkpKTsKICAgICAgICAgYm9vbCBzdWNjZXNzID0gbGF5ZXJUcmVlSG9z
dC0+aW5pdGlhbGl6ZSgpOwogICAgICAgICBFWFBFQ1RfVFJVRShzdWNjZXNzKTsKICAgICAgICAg
bGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CkBAIC0xODEsNyArMTg1LDEw
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3RJbXBsPiBjcmVhdGVMYXllclRyZWVIb3N0SW1wbChXZWJDb3JlOjpDQ0xheWVyVHJlZUhv
c3RJbXBsQ2xpZW50KiBjbGllbnQpCiAgICAgewotICAgICAgICByZXR1cm4gTW9ja0xheWVyVHJl
ZUhvc3RJbXBsOjpjcmVhdGUobV90ZXN0SG9va3MsIHNldHRpbmdzKCksIGNsaWVudCk7CisgICAg
ICAgIC8vIEZvciB0aGVzZSB0ZXN0cywgd2Ugd2lsbCBlbmFibGUgdGhyZWFkZWQgYW5pbWF0aW9u
cy4KKyAgICAgICAgQ0NTZXR0aW5ncyBjb3B5U2V0dGluZ3MgPSBzZXR0aW5ncygpOworICAgICAg
ICBjb3B5U2V0dGluZ3MudGhyZWFkZWRBbmltYXRpb25FbmFibGVkID0gdHJ1ZTsKKyAgICAgICAg
cmV0dXJuIE1vY2tMYXllclRyZWVIb3N0SW1wbDo6Y3JlYXRlKG1fdGVzdEhvb2tzLCBjb3B5U2V0
dGluZ3MsIGNsaWVudCk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZEFuaW1hdGlv
bigpIE9WRVJSSURFCkBAIC0xOTEsNyArMTk4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBNb2NrTGF5ZXJUcmVlSG9zdChUZXN0SG9va3MqIHRlc3RIb29rcywgV2ViQ29yZTo6
Q0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNDTGF5ZXJUcmVl
U2V0dGluZ3MmIHNldHRpbmdzKQorICAgIE1vY2tMYXllclRyZWVIb3N0KFRlc3RIb29rcyogdGVz
dEhvb2tzLCBXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RDbGllbnQqIGNsaWVudCwgY29uc3QgV2Vi
Q29yZTo6Q0NTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgICAgIDogQ0NMYXllclRyZWVIb3N0KGNs
aWVudCwgc2V0dGluZ3MpCiAgICAgICAgICwgbV90ZXN0SG9va3ModGVzdEhvb2tzKQogICAgIHsK
QEAgLTYwOCw5ICs2MTUsNiBAQCB2b2lkIENDVGhyZWFkZWRUZXN0OjpkaXNwYXRjaERpZEFkZEFu
aW1hdGlvbih2b2lkKiBzZWxmKQogCiB2b2lkIENDVGhyZWFkZWRUZXN0OjpydW5UZXN0KGJvb2wg
dGhyZWFkZWQpCiB7Ci0gICAgLy8gRm9yIHRoZXNlIHRlc3RzLCB3ZSB3aWxsIGVuYWJsZSB0aHJl
YWRlZCBhbmltYXRpb25zLgotICAgIFdlYkNvbXBvc2l0b3I6OnNldEFjY2VsZXJhdGVkQW5pbWF0
aW9uRW5hYmxlZCh0cnVlKTsKLQogICAgIGlmICh0aHJlYWRlZCkgewogICAgICAgICBtX3dlYlRo
cmVhZCA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y3JlYXRlVGhyZWFk
KCJDQ1RocmVhZGVkVGVzdCIpKTsKICAgICAgICAgV2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSht
X3dlYlRocmVhZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDVGhyZWFkZWRUZXN0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhy
ZWFkZWRUZXN0LmgKaW5kZXggNGVkYzRlNTIxNjgxZjgxOWVmOGNkMDk2NWU4ZDZmYzM5NWFjNjli
NS4uN2YzNTgxNjBhNmQ2NWI1OTI1MDFmMzdlOGQwOGFiMjg4MzYxZThmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZGVkVGVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaHJlYWRlZFRlc3QuaApAQCAtMTM1LDcgKzEzNSw3
IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgdm9pZCBydW5UZXN0KGJvb2wgdGhyZWFkZWQp
OwogCi0gICAgV2ViQ29yZTo6Q0NMYXllclRyZWVTZXR0aW5ncyBtX3NldHRpbmdzOworICAgIFdl
YkNvcmU6OkNDU2V0dGluZ3MgbV9zZXR0aW5nczsKICAgICBPd25QdHI8TW9ja0NDTGF5ZXJUcmVl
SG9zdENsaWVudD4gbV9jbGllbnQ7CiAgICAgT3duUHRyPFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dD4gbV9sYXllclRyZWVIb3N0OwogCkBAIC0xNjUsNyArMTY1LDcgQEAgcHVibGljOgogLy8gQWRh
cHRzIENDTGF5ZXJUcmVlSG9zdEltcGwgZm9yIHRlc3QuIFJ1bnMgcmVhbCBjb2RlLCB0aGVuIGlu
dm9rZXMgdGVzdCBob29rcy4KIGNsYXNzIE1vY2tMYXllclRyZWVIb3N0SW1wbCA6IHB1YmxpYyBX
ZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNb2NrTGF5ZXJUcmVlSG9zdEltcGw+IGNyZWF0ZShUZXN0SG9va3MqLCBjb25zdCBXZWJD
b3JlOjpDQ0xheWVyVHJlZVNldHRpbmdzJiwgV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbENs
aWVudCopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPE1vY2tMYXllclRyZWVIb3N0SW1wbD4gY3Jl
YXRlKFRlc3RIb29rcyosIGNvbnN0IFdlYkNvcmU6OkNDU2V0dGluZ3MmLCBXZWJDb3JlOjpDQ0xh
eWVyVHJlZUhvc3RJbXBsQ2xpZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5Db21taXQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q29tcGxldGUoKTsKQEAgLTE4MSw3ICsxODEsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBkb3VibGUgbG93RnJlcXVlbmN5QW5pbWF0aW9uSW50
ZXJ2YWwoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBNb2NrTGF5ZXJUcmVlSG9zdEltcGwoVGVz
dEhvb2tzKiwgY29uc3QgV2ViQ29yZTo6Q0NMYXllclRyZWVTZXR0aW5ncyYsIFdlYkNvcmU6OkND
TGF5ZXJUcmVlSG9zdEltcGxDbGllbnQqKTsKKyAgICBNb2NrTGF5ZXJUcmVlSG9zdEltcGwoVGVz
dEhvb2tzKiwgY29uc3QgV2ViQ29yZTo6Q0NTZXR0aW5ncyYsIFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdEltcGxDbGllbnQqKTsKIAogICAgIFRlc3RIb29rcyogbV90ZXN0SG9va3M7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21p
dW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvR3JhcGhpY3NMYXllckNo
cm9taXVtVGVzdC5jcHAKaW5kZXggNGZkY2Y0ZjQxZTE5MTdjZjcxY2NjNzRiMTM5NzM1N2NmNjNm
YmYzZC4uYjgzODA0OTVhZjkwMDJlNmM2OWYwNDdjZWRhYWY5NzIyZGYyYjM2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bVRlc3QuY3BwCkBAIC04Myw3ICs4Myw5IEBAIGNsYXNzIE1vY2tMYXllclRyZWVIb3N0IDog
cHVibGljIENDTGF5ZXJUcmVlSG9zdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8
TW9ja0xheWVyVHJlZUhvc3Q+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICBDQ0xheWVyVHJlZVNl
dHRpbmdzIHNldHRpbmdzOworICAgICAgICAvLyBGb3IgdGhlc2UgdGVzdHMsIHdlIHdpbGwgZW5h
YmxlIHRocmVhZGVkIGFuaW1hdGlvbnMuCisgICAgICAgIENDU2V0dGluZ3Mgc2V0dGluZ3M7Cisg
ICAgICAgIHNldHRpbmdzLnRocmVhZGVkQW5pbWF0aW9uRW5hYmxlZCA9IHRydWU7CiAgICAgICAg
IE93blB0cjxNb2NrTGF5ZXJUcmVlSG9zdD4gbGF5ZXJUcmVlSG9zdChhZG9wdFB0cihuZXcgTW9j
a0xheWVyVHJlZUhvc3QobmV3IE1vY2tMYXllclRyZWVIb3N0Q2xpZW50KCksIHNldHRpbmdzKSkp
OwogICAgICAgICBib29sIHN1Y2Nlc3MgPSBsYXllclRyZWVIb3N0LT5pbml0aWFsaXplKCk7CiAg
ICAgICAgIEVYUEVDVF9UUlVFKHN1Y2Nlc3MpOwpAQCAtOTQsMTEgKzk2LDE0IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgUGFzc093blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBjcmVhdGVMYXll
clRyZWVIb3N0SW1wbChDQ0xheWVyVHJlZUhvc3RJbXBsQ2xpZW50KiBjbGllbnQpCiAgICAgewot
ICAgICAgICByZXR1cm4gQ0NMYXllclRyZWVIb3N0SW1wbDo6Y3JlYXRlKHNldHRpbmdzKCksIGNs
aWVudCk7CisgICAgICAgIC8vIEZvciB0aGVzZSB0ZXN0cywgd2Ugd2lsbCBlbmFibGUgdGhyZWFk
ZWQgYW5pbWF0aW9ucy4KKyAgICAgICAgQ0NTZXR0aW5ncyBjb3B5U2V0dGluZ3MgPSBzZXR0aW5n
cygpOworICAgICAgICBjb3B5U2V0dGluZ3MudGhyZWFkZWRBbmltYXRpb25FbmFibGVkID0gdHJ1
ZTsKKyAgICAgICAgcmV0dXJuIENDTGF5ZXJUcmVlSG9zdEltcGw6OmNyZWF0ZShjb3B5U2V0dGlu
Z3MsIGNsaWVudCk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1vY2tMYXllclRyZWVIb3N0KEND
TGF5ZXJUcmVlSG9zdENsaWVudCogY2xpZW50LCBjb25zdCBDQ0xheWVyVHJlZVNldHRpbmdzJiBz
ZXR0aW5ncykKKyAgICBNb2NrTGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3RDbGllbnQqIGNs
aWVudCwgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgICAgIDogQ0NMYXllclRyZWVI
b3N0KGNsaWVudCwgc2V0dGluZ3MpCiAgICAgewogICAgIH0KQEAgLTEwOCw4ICsxMTMsNiBAQCBj
bGFzcyBHcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qgewog
cHVibGljOgogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QoKQogICAgIHsKLSAgICAgICAg
Ly8gRm9yIHRoZXNlIHRlc3RzLCB3ZSB3aWxsIGVuYWJsZSB0aHJlYWRlZCBhbmltYXRpb25zLgot
ICAgICAgICBXZWJDb21wb3NpdG9yOjpzZXRBY2NlbGVyYXRlZEFuaW1hdGlvbkVuYWJsZWQodHJ1
ZSk7CiAgICAgICAgIFdlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7CiAgICAgICAgIG1fZ3Jh
cGhpY3NMYXllciA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8R3JhcGhpY3NMYXllckNocm9taXVtPihH
cmFwaGljc0xheWVyOjpjcmVhdGUoJm1fY2xpZW50KSk7CiAgICAgICAgIG1fcGxhdGZvcm1MYXll
ciA9IHN0YXRpY19jYXN0PExheWVyQ2hyb21pdW0qPihtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3Jt
TGF5ZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVy
Q2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJv
bWl1bVRlc3QuY3BwCmluZGV4IDFiZWY5MmJjZWZmNGU2NjUxMGRmNzgxODczOGNhMmFlZGI4Njli
YzcuLjk1NDE3NGFiNzYzNTdhNzEzMjQwMWExZDBhM2NjODM4YzhlZDkxYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC01
Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSB7CiBjbGFzcyBNb2NrQ0NMYXllclRyZWVIb3N0IDogcHVi
bGljIENDTGF5ZXJUcmVlSG9zdCB7CiBwdWJsaWM6CiAgICAgTW9ja0NDTGF5ZXJUcmVlSG9zdCgp
Ci0gICAgICAgIDogQ0NMYXllclRyZWVIb3N0KCZtX2Zha2VDbGllbnQsIENDTGF5ZXJUcmVlU2V0
dGluZ3MoKSkKKyAgICAgICAgOiBDQ0xheWVyVHJlZUhvc3QoJm1fZmFrZUNsaWVudCwgQ0NTZXR0
aW5ncygpKQogICAgIHsKICAgICAgICAgaW5pdGlhbGl6ZSgpOwogICAgIH0KQEAgLTYxNiw3ICs2
MTYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRmFrZUNDTGF5ZXJUcmVlSG9zdCgpCi0g
ICAgICAgIDogQ0NMYXllclRyZWVIb3N0KCZtX2NsaWVudCwgQ0NMYXllclRyZWVTZXR0aW5ncygp
KQorICAgICAgICA6IENDTGF5ZXJUcmVlSG9zdCgmbV9jbGllbnQsIENDU2V0dGluZ3MoKSkKICAg
ICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCA5MjY5MjE3YzNiMDRhNWU4ZTg2
MWE5ZTM2MzEzMzlkMWNhN2M4MjMwLi43NmQ1OTY4MzJhMDE3OTVmZDEzNjk1ZmRlYzA4MjdkYmEx
NGI2MzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVu
ZGVyZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
TGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdC5jcHAKQEAgLTI1LDEyICsyNSwxMCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5oIgogCi0jaW5j
bHVkZSAiQ0NUZXN0Q29tbW9uLmgiCiAjaW5jbHVkZSAiRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNE
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCi0jaW5jbHVkZSAi
Y2MvQ0NTZXR0aW5ncy5oIgogI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFkUHJveHkuaCIKIAog
I2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CkBAIC0zOCw3ICszNiw2IEBACiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXRUZXN0czsKIAogY2xhc3MgRnJhbWVDb3VudGluZ01lbW9yeUFsbG9jYXRpb25TZXR0aW5n
Q29udGV4dCA6IHB1YmxpYyBGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QgewogcHVibGljOgpAQCAt
ODQsNyArODEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDQ1JlbmRlcmVyQ2xpZW50IG1ldGhvZHMu
CiAgICAgdmlydHVhbCBjb25zdCBJbnRTaXplJiBkZXZpY2VWaWV3cG9ydFNpemUoKSBjb25zdCBP
VkVSUklERSB7IHN0YXRpYyBJbnRTaXplIGZha2VTaXplOyByZXR1cm4gZmFrZVNpemU7IH0KLSAg
ICB2aXJ0dWFsIGNvbnN0IENDTGF5ZXJUcmVlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgT1ZF
UlJJREUgeyBzdGF0aWMgQ0NMYXllclRyZWVTZXR0aW5ncyBmYWtlU2V0dGluZ3M7IHJldHVybiBm
YWtlU2V0dGluZ3M7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKCkg
Y29uc3QgT1ZFUlJJREUgeyBzdGF0aWMgQ0NTZXR0aW5ncyBmYWtlU2V0dGluZ3M7IHJldHVybiBm
YWtlU2V0dGluZ3M7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZUNvbnRleHQoKSBPVkVSUklE
RSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25Td2FwQnVmZmVyc0NvbXBsZXRlKCkgT1ZFUlJJREUg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEZ1bGxSb290TGF5ZXJEYW1hZ2UoKSBPVkVSUklERSB7
IG1fc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50Kys7IH0KQEAgLTE1MCw3ICsxNDcsNiBAQCBw
cm90ZWN0ZWQ6CiAgICAgRnJhbWVDb3VudGluZ01lbW9yeUFsbG9jYXRpb25TZXR0aW5nQ29udGV4
dCYgbV9tb2NrQ29udGV4dDsKICAgICBGYWtlQ0NSZW5kZXJlckNsaWVudCBtX21vY2tDbGllbnQ7
CiAgICAgRmFrZUxheWVyUmVuZGVyZXJDaHJvbWl1bSBtX2xheWVyUmVuZGVyZXJDaHJvbWl1bTsK
LSAgICBDQ1Njb3BlZFNldHRpbmdzIG1fc2NvcGVkU2V0dGluZ3M7CiB9OwogCiAvLyBUZXN0IExh
eWVyUmVuZGVyZXJDaHJvbWl1bSBkaXNjYXJkRnJhbWVidWZmZXIgZnVuY3Rpb25hbGl0eToKQEAg
LTIwMiw3ICsxOTgsNyBAQCBURVNUX0YoTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdCwgU3dhcEJ1
ZmZlcnNXaGlsZUJhY2tidWZmZXJEaXNjYXJkZWRTaG91bGRJZ25vcgogICAgIHN3YXBCdWZmZXJz
KCk7CiAgICAgRVhQRUNUX0VRKDAsIG1fbW9ja0NvbnRleHQuZnJhbWVDb3VudCgpKTsKICAgICBF
WFBFQ1RfRVEoMiwgbV9tb2NrQ2xpZW50LnNldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3VudCgpKTsK
LQorICAgIAogICAgIHN3YXBCdWZmZXJzKCk7CiAgICAgRVhQRUNUX0VRKDAsIG1fbW9ja0NvbnRl
eHQuZnJhbWVDb3VudCgpKTsKICAgICBFWFBFQ1RfRVEoMywgbV9tb2NrQ2xpZW50LnNldEZ1bGxS
b290TGF5ZXJEYW1hZ2VDb3VudCgpKTsKQEAgLTI5Myw3ICsyODksNiBAQCBwdWJsaWM6CiAvLyBU
aGlzIHRlc3QgaXNuJ3QgdXNpbmcgdGhlIHNhbWUgZml4dHVyZSBhcyBMYXllclJlbmRlcmVyQ2hy
b21pdW1UZXN0LCBhbmQgeW91IGNhbid0IG1peCBURVNUKCkgYW5kIFRFU1RfRigpIHdpdGggdGhl
IHNhbWUgbmFtZSwgaGVuY2UgTFJDMi4KIFRFU1QoTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdDIs
IGluaXRpYWxpemF0aW9uRG9lc05vdE1ha2VTeW5jaHJvbm91c0NhbGxzKQogewotICAgIENDU2Nv
cGVkU2V0dGluZ3Mgc2NvcGVkU2V0dGluZ3M7CiAgICAgRmFrZUNDUmVuZGVyZXJDbGllbnQgbW9j
a0NsaWVudDsKICAgICBGYWtlTGF5ZXJSZW5kZXJlckNocm9taXVtIGxheWVyUmVuZGVyZXJDaHJv
bWl1bSgmbW9ja0NsaWVudCwgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGlj
c0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgRm9yYmlkU3luY2hyb25vdXNDYWxs
Q29udGV4dCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykp
OwogCkBAIC0zMzUsNyArMzMwLDYgQEAgcHJpdmF0ZToKIAogVEVTVChMYXllclJlbmRlcmVyQ2hy
b21pdW1UZXN0MiwgaW5pdGlhbGl6YXRpb25XaXRoUXVpY2tseUxvc3RDb250ZXh0RG9lc05vdEFz
c2VydCkKIHsKLSAgICBDQ1Njb3BlZFNldHRpbmdzIHNjb3BlZFNldHRpbmdzOwogICAgIEZha2VD
Q1JlbmRlcmVyQ2xpZW50IG1vY2tDbGllbnQ7CiAgICAgRmFrZUxheWVyUmVuZGVyZXJDaHJvbWl1
bSBsYXllclJlbmRlcmVyQ2hyb21pdW0oJm1vY2tDbGllbnQsIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRvcHRQdHIobmV3IExv
c2VDb250ZXh0T25GaXJzdEdldENvbnRleHQpLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGly
ZWN0bHlUb0hvc3RXaW5kb3cpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9UZXh0dXJlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9UZXh0dXJlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGQwY2MzZDk2ZjE0
ZWJjZmU4ZDNjOThiM2RmNjI3YzBkNjNhNDhjZWQuLmI2MDAxN2ZkOWFhMDgwYjRmZDdmNjlmOWEw
ZmVlMGMyNjhiNDQ5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
VGV4dHVyZUxheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1RleHR1cmVMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFt
ZXNwYWNlIHsKIGNsYXNzIE1vY2tDQ0xheWVyVHJlZUhvc3QgOiBwdWJsaWMgQ0NMYXllclRyZWVI
b3N0IHsKIHB1YmxpYzoKICAgICBNb2NrQ0NMYXllclRyZWVIb3N0KCkKLSAgICAgICAgOiBDQ0xh
eWVyVHJlZUhvc3QoJm1fZmFrZUNsaWVudCwgQ0NMYXllclRyZWVTZXR0aW5ncygpKQorICAgICAg
ICA6IENDTGF5ZXJUcmVlSG9zdCgmbV9mYWtlQ2xpZW50LCBDQ1NldHRpbmdzKCkpCiAgICAgewog
ICAgICAgICBpbml0aWFsaXplKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggNWUzMDFkOGVi
NDE5NDA3OTczZDA0MmUzZDkzN2JmZWZmNTgwMjU5Zi4uZjBjMTMxM2Y5MGVlNzUyZDRjMjIxNzhh
ZDM5NDQ3OGIyNTc2MTYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC03OTcsNyArNzk3LDcgQEAgVEVT
VChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBza2lwc0RyYXdHZXRzUmVzZXQpCiAgICAgLy8gSW5p
dGlhbGl6ZSB3aXRob3V0IHRocmVhZGluZyBzdXBwb3J0LgogICAgIFdlYktpdDo6V2ViQ29tcG9z
aXRvcjo6aW5pdGlhbGl6ZSgwKTsKICAgICBGYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50IGZha2VD
Q0xheWVyVHJlZUhvc3RDbGllbnQ7Ci0gICAgT3duUHRyPENDTGF5ZXJUcmVlSG9zdD4gY2NMYXll
clRyZWVIb3N0ID0gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoJmZha2VDQ0xheWVyVHJlZUhvc3RD
bGllbnQsIENDTGF5ZXJUcmVlU2V0dGluZ3MoKSk7CisgICAgT3duUHRyPENDTGF5ZXJUcmVlSG9z
dD4gY2NMYXllclRyZWVIb3N0ID0gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoJmZha2VDQ0xheWVy
VHJlZUhvc3RDbGllbnQsIENDU2V0dGluZ3MoKSk7CiAKICAgICAvLyBDcmVhdGUgdHdvIDMwMCB4
IDMwMCB0aWxlZCBsYXllcnMuCiAgICAgSW50U2l6ZSBjb250ZW50Qm91bmRzKDMwMCwgMzAwKTsK
QEAgLTg3MywxMiArODczLDEwIEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaHVnZUxh
eWVyVXBkYXRlQ3Jhc2gpCiAKIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcGFydGlhbFVw
ZGF0ZXMpCiB7CisgICAgQ0NTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBzZXR0aW5ncy5tYXhQYXJ0
aWFsVGV4dHVyZVVwZGF0ZXMgPSA0OwogICAgIC8vIEluaXRpYWxpemUgd2l0aG91dCB0aHJlYWRp
bmcgc3VwcG9ydC4KICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7Ci0K
LSAgICBDQ0xheWVyVHJlZVNldHRpbmdzIHNldHRpbmdzOwotICAgIHNldHRpbmdzLm1heFBhcnRp
YWxUZXh0dXJlVXBkYXRlcyA9IDQ7Ci0KICAgICBGYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50IGZh
a2VDQ0xheWVyVHJlZUhvc3RDbGllbnQ7CiAgICAgT3duUHRyPENDTGF5ZXJUcmVlSG9zdD4gY2NM
YXllclRyZWVIb3N0ID0gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoJmZha2VDQ0xheWVyVHJlZUhv
c3RDbGllbnQsIHNldHRpbmdzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9UcmVlU3luY2hyb25pemVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1RyZWVTeW5jaHJvbml6ZXJUZXN0LmNwcAppbmRleCAwODU5N2YxZGM2MmQzMDNhMzFm
NTA1ZWIxNmE2MTYwMDU5ZWViOGIzLi5lZGRlZDVhZDJlYmQ2NzYzZGNlMWM4NGQxNDQ0YjgzYjdm
ODBhODA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RyZWVTeW5j
aHJvbml6ZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RyZWVT
eW5jaHJvbml6ZXJUZXN0LmNwcApAQCAtMTYzLDcgKzE2Myw3IEBAIFRFU1QoVHJlZVN5bmNocm9u
aXplclRlc3QsIHN5bmNTaW1wbGVUcmVlRnJvbUVtcHR5KQogewogICAgIERlYnVnU2NvcGVkU2V0
SW1wbFRocmVhZCBpbXBsOwogCi0gICAgQ0NMYXllclRyZWVTZXR0aW5ncyBzZXR0aW5nczsKKyAg
ICBDQ1NldHRpbmdzIHNldHRpbmdzOwogICAgIE93blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBo
b3N0SW1wbCA9IENDTGF5ZXJUcmVlSG9zdEltcGw6OmNyZWF0ZShzZXR0aW5ncywgMCk7CiAKICAg
ICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbGF5ZXJUcmVlUm9vdCA9IExheWVyQ2hyb21pdW06OmNy
ZWF0ZSgpOwpAQCAtMTgxLDcgKzE4MSw3IEBAIFRFU1QoVHJlZVN5bmNocm9uaXplclRlc3QsIHN5
bmNTaW1wbGVUcmVlUmV1c2luZ0xheWVycykKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQg
aW1wbDsKICAgICBWZWN0b3I8aW50PiBjY0xheWVyRGVzdHJ1Y3Rpb25MaXN0OwogCi0gICAgQ0NM
YXllclRyZWVTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBDQ1NldHRpbmdzIHNldHRpbmdzOwogICAg
IE93blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBob3N0SW1wbCA9IENDTGF5ZXJUcmVlSG9zdElt
cGw6OmNyZWF0ZShzZXR0aW5ncywgMCk7CiAKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbGF5
ZXJUcmVlUm9vdCA9IE1vY2tMYXllckNocm9taXVtOjpjcmVhdGUoJmNjTGF5ZXJEZXN0cnVjdGlv
bkxpc3QpOwpAQCAtMjExLDcgKzIxMSw3IEBAIFRFU1QoVHJlZVN5bmNocm9uaXplclRlc3QsIHN5
bmNTaW1wbGVUcmVlQW5kVHJhY2tTdGFja2luZ09yZGVyQ2hhbmdlKQogICAgIERlYnVnU2NvcGVk
U2V0SW1wbFRocmVhZCBpbXBsOwogICAgIFZlY3RvcjxpbnQ+IGNjTGF5ZXJEZXN0cnVjdGlvbkxp
c3Q7CiAKLSAgICBDQ0xheWVyVHJlZVNldHRpbmdzIHNldHRpbmdzOworICAgIENDU2V0dGluZ3Mg
c2V0dGluZ3M7CiAgICAgT3duUHRyPENDTGF5ZXJUcmVlSG9zdEltcGw+IGhvc3RJbXBsID0gQ0NM
YXllclRyZWVIb3N0SW1wbDo6Y3JlYXRlKHNldHRpbmdzLCAwKTsKIAogICAgIC8vIFNldCB1cCB0
aGUgdHJlZSBhbmQgc3luYyBvbmNlLiBjaGlsZDIgbmVlZHMgdG8gYmUgc3luY2VkIGhlcmUsIHRv
bywgZXZlbiB0aG91Z2ggd2UKQEAgLTI0MCw3ICsyNDAsNyBAQCBURVNUKFRyZWVTeW5jaHJvbml6
ZXJUZXN0LCBzeW5jU2ltcGxlVHJlZUFuZFByb3BlcnRpZXMpCiB7CiAgICAgRGVidWdTY29wZWRT
ZXRJbXBsVGhyZWFkIGltcGw7CiAKLSAgICBDQ0xheWVyVHJlZVNldHRpbmdzIHNldHRpbmdzOwor
ICAgIENDU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAgT3duUHRyPENDTGF5ZXJUcmVlSG9zdEltcGw+
IGhvc3RJbXBsID0gQ0NMYXllclRyZWVIb3N0SW1wbDo6Y3JlYXRlKHNldHRpbmdzLCAwKTsKIAog
ICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBsYXllclRyZWVSb290ID0gTGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKCk7CkBAIC0yNzcsNyArMjc3LDcgQEAgVEVTVChUcmVlU3luY2hyb25pemVyVGVzdCwg
cmV1c2VDQ0xheWVyc0FmdGVyU3RydWN0dXJhbENoYW5nZSkKICAgICBEZWJ1Z1Njb3BlZFNldElt
cGxUaHJlYWQgaW1wbDsKICAgICBWZWN0b3I8aW50PiBjY0xheWVyRGVzdHJ1Y3Rpb25MaXN0Owog
Ci0gICAgQ0NMYXllclRyZWVTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBDQ1NldHRpbmdzIHNldHRp
bmdzOwogICAgIE93blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBob3N0SW1wbCA9IENDTGF5ZXJU
cmVlSG9zdEltcGw6OmNyZWF0ZShzZXR0aW5ncywgMCk7CiAKICAgICAvLyBTZXQgdXAgYSB0cmVl
IHdpdGggdGhpcyBzb3J0IG9mIHN0cnVjdHVyZToKQEAgLTMyNyw3ICszMjcsNyBAQCBURVNUKFRy
ZWVTeW5jaHJvbml6ZXJUZXN0LCBzeW5jU2ltcGxlVHJlZVRoZW5EZXN0cm95KQogICAgIERlYnVn
U2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsOwogICAgIFZlY3RvcjxpbnQ+IGNjTGF5ZXJEZXN0cnVj
dGlvbkxpc3Q7CiAKLSAgICBDQ0xheWVyVHJlZVNldHRpbmdzIHNldHRpbmdzOworICAgIENDU2V0
dGluZ3Mgc2V0dGluZ3M7CiAgICAgT3duUHRyPENDTGF5ZXJUcmVlSG9zdEltcGw+IGhvc3RJbXBs
ID0gQ0NMYXllclRyZWVIb3N0SW1wbDo6Y3JlYXRlKHNldHRpbmdzLCAwKTsKIAogICAgIFJlZlB0
cjxMYXllckNocm9taXVtPiBvbGRMYXllclRyZWVSb290ID0gTW9ja0xheWVyQ2hyb21pdW06OmNy
ZWF0ZSgmY2NMYXllckRlc3RydWN0aW9uTGlzdCk7CkBAIC0zNjAsNyArMzYwLDcgQEAgVEVTVChU
cmVlU3luY2hyb25pemVyVGVzdCwgc3luY01hc2tSZXBsaWNhQW5kUmVwbGljYU1hc2tMYXllcnMp
CiB7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGw7CiAKLSAgICBDQ0xheWVyVHJl
ZVNldHRpbmdzIHNldHRpbmdzOworICAgIENDU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAgT3duUHRy
PENDTGF5ZXJUcmVlSG9zdEltcGw+IGhvc3RJbXBsID0gQ0NMYXllclRyZWVIb3N0SW1wbDo6Y3Jl
YXRlKHNldHRpbmdzLCAwKTsKIAogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBsYXllclRyZWVS
b290ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CkBAIC00MDYsNyArNDA2LDcgQEAgVEVTVChU
cmVlU3luY2hyb25pemVyVGVzdCwgc3luY2hyb25pemVBbmltYXRpb25zKQogewogICAgIERlYnVn
U2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsOwogCi0gICAgQ0NMYXllclRyZWVTZXR0aW5ncyBzZXR0
aW5nczsKKyAgICBDQ1NldHRpbmdzIHNldHRpbmdzOwogICAgIE93blB0cjxDQ0xheWVyVHJlZUhv
c3RJbXBsPiBob3N0SW1wbCA9IENDTGF5ZXJUcmVlSG9zdEltcGw6OmNyZWF0ZShzZXR0aW5ncywg
MCk7CiAKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbGF5ZXJUcmVlUm9vdCA9IExheWVyQ2hy
b21pdW06OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDk5NTRjZDU0MmNkNjI4MDA2YmQzZWI3YmIyODFmNDliY2U1MTkwMzUuLjM5
MjFkMTYzMzc3NWFlNGUxNjMyNjI1NDYyOTZjNzgzN2FkNmQ5ZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0w
Ni0xMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMDI2OC4KKyAgICAgICAgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTIwMjY4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04OTA2MAorCisgICAgICAgIFdlYkNvbXBvc2l0b3I6OnNldFBl
clRpbGVQYWludGluZ0VuYWJsZWQgaGl0cyBhbiBhc3NlcnRpb24gaW4KKyAgICAgICAgREVCVUcg
KFJlcXVlc3RlZCBieSBkb21pbmljY3x3b3JrIG9uICN3ZWJraXQpLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViUHJl
ZmVyZW5jZXM6OmFwcGx5VG8pOgorCiAyMDEyLTA2LTEzICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxMjAyNTIpOiBydW4td2Vi
a2l0LXRlc3RzIG9uIE1hYyBmYWlscwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IGE4ZDZhY2YxZGI0YmM1ZjRiZGU4N2I0ODI3YzUy
MjdkZmEwNjNiMWMuLjMyMjdjMDIzMTJiM2IzOTAwNjc4MmMzODc3ZDA4YjYzN2RmY2FiOTQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAK
QEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJQcmVm
ZXJlbmNlcy5oIgogCi0jaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIldlYlZp
ZXcuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTIyNyw2ICsyMjYsNyBAQCB2b2lk
IFdlYlByZWZlcmVuY2VzOjphcHBseVRvKFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgc2V0dGluZ3Mt
PnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVkMmRDYW52YXNFbmFibGVkKTsKICAg
ICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQoYWNjZWxlcmF0ZWRQYWlu
dGluZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xF
bmFibGVkKGhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQpOworICAgIHNldHRpbmdzLT5z
ZXRQZXJUaWxlUGFpbnRpbmdFbmFibGVkKHBlclRpbGVQYWludGluZ0VuYWJsZWQpOwogICAgIHNl
dHRpbmdzLT5zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQobW9ja1Njcm9sbGJhcnNFbmFibGVkKTsK
IAogICAgIC8vIEZpeGVkIHZhbHVlcy4KQEAgLTI0Niw3ICsyNDYsNCBAQCB2b2lkIFdlYlByZWZl
cmVuY2VzOjphcHBseVRvKFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgc2V0dGluZ3MtPnNldFZhbGlk
YXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKC0xKTsKICAgICBzZXR0aW5ncy0+c2V0Vmlz
dWFsV29yZE1vdmVtZW50RW5hYmxlZChmYWxzZSk7CiAgICAgc2V0dGluZ3MtPnNldFBhc3N3b3Jk
RWNob0VuYWJsZWQoZmFsc2UpOwotCi0gICAgLy8gQXBwbHkgZ2xvYmFsIFdlYkNvbXBvc2l0b3Ig
c2V0dGluZ3MuCi0gICAgV2ViQ29tcG9zaXRvcjo6c2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChw
ZXJUaWxlUGFpbnRpbmdFbmFibGVkKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>