<?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>52784</bug_id>
          
          <creation_ts>2011-01-19 22:05:49 -0800</creation_ts>
          <short_desc>REGRESSION(r76203): Broke Win compile on Chromium bots (Requested by dimich on #webkit).</short_desc>
          <delta_ts>2011-01-19 22:42:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>52471</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>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dimich</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>337127</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-19 22:05:49 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76203 broke the build:
Broke Win compile on Chromium bots (Requested by dimich 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>337128</commentid>
    <comment_count>1</comment_count>
      <attachid>79553</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-19 22:06:16 -0800</bug_when>
    <thetext>Created attachment 79553
ROLLOUT of r76203

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 --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337130</commentid>
    <comment_count>2</comment_count>
      <attachid>79553</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2011-01-19 22:09:34 -0800</bug_when>
    <thetext>Comment on attachment 79553
ROLLOUT of r76203

Clearing flags on attachment: 79553

Committed r76207: &lt;http://trac.webkit.org/changeset/76207&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337131</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2011-01-19 22:09:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337136</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-19 22:42:07 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76207 might have broken Chromium Linux Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79553</attachid>
            <date>2011-01-19 22:06:16 -0800</date>
            <delta_ts>2011-01-19 22:09:34 -0800</delta_ts>
            <desc>ROLLOUT of r76203</desc>
            <filename>bug-52784-20110120060557.patch</filename>
            <type>text/plain</type>
            <size>136195</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNDA0ZTZmODgxZjExNTAzMzNiM2M1NTMwNDI0NDliMjJlZTI0NzQ3Li5j
MjcwMmE5N2FlZTk1NjYxZDE2YzU2NjA1YTgxMmYzMjQyNTNmZDlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcwIEBACisyMDExLTAxLTE5ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzYyMDMuCisg
ICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzc2MjAzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjc4NAorCisgICAgICAgIEJy
b2tlIFdpbiBjb21waWxlIG9uIENocm9taXVtIGJvdHMgKFJlcXVlc3RlZCBieSBkaW1pY2ggb24K
KyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBv
cnRGYXRhbEVycm9ySW5WOCk6CisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUdyb3VwOjppc0xpbmtWaXNpdGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hbmRyb2lkL1BsYXRmb3JtQnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY2hy
b21pdW0vQXVkaW9CdXNDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNG
cm9tSW5NZW1vcnlBdWRpb0ZpbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9t
aXVtQnJpZGdlLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
RGF0YU9iamVjdExlZ2FjeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmpl
Y3RMZWdhY3k6OmdldERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRh
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzVVJMKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZGVsZXRlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVFbXB0eURpcmVj
dG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpnZXRGaWxlU2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpnZXRGaWxlTW9kaWZpY2F0aW9uVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpyZXZlYWxGb2xk
ZXJJbk9TKToKKyAgICAgICAgKFdlYkNvcmU6OmRpcmVjdG9yeU5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VB
bGxEaXJlY3Rvcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlRXhpc3RzKToKKyAgICAgICAg
KFdlYkNvcmU6Om9wZW5GaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlRmlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzZWVrRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjp0cnVuY2F0ZUZpbGUp
OgorICAgICAgICAoV2ViQ29yZTo6cmVhZEZyb21GaWxlKToKKyAgICAgICAgKFdlYkNvcmU6Ondy
aXRlVG9GaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9MYW5ndWFnZUNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtRGVmYXVsdExhbmd1YWdlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9MaW5rSGFzaENocm9taXVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnZpc2l0ZWRMaW5rSGFzaCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vTUlN
RVR5cGVSZWdpc3RyeUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlUmVn
aXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVU
eXBlUmVnaXN0cnk6OmdldFByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRN
SU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRl
ZE5vbkltYWdlTUlNRVR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9h
cmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVNlbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVVSTCk6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6
OmNhblNtYXJ0UmVwbGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpwbGFpblRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1CcmlkZ2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNjcmVlbkRlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkRlcHRoUGVyQ29t
cG9uZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbklzTW9ub2Nocm9tZSk6CisgICAgICAg
IChXZWJDb3JlOjpzY3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkF2YWlsYWJs
ZVJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1JlYWRhYmxlRGF0YU9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZURhdGFPYmplY3Q6OmdldERhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhZGFibGVEYXRhT2JqZWN0Ojp1cmxUaXRsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFkYWJsZURhdGFPYmplY3Q6Omh0bWxCYXNlVXJsKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWRhYmxlRGF0YU9iamVjdDo6ZmlsZW5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWRhYmxlRGF0YU9iamVjdDo6ZW5zdXJlVHlwZUNhY2hlSW5pdGlhbGl6ZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL1NTTEtleUdlbmVyYXRvckNocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyk6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bS5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6c2Nyb2xsYmFyVGhpY2tu
ZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6cGFp
bnRUcmFja1BpZWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1M
aW51eDo6cGFpbnRCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJv
bWl1bUxpbnV4OjpwYWludFRodW1iKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
Q2hyb21pdW1MaW51eDo6YnV0dG9uU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJU
aGVtZUNocm9taXVtTGludXg6Om1pbmltdW1UaHVtYkxlbmd0aCk6CisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bU1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OnNjcm9sbGJhclN0YXRlVG9UaGVtZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhclRoZW1lQ2hyb21pdW1XaW46OnNjcm9sbGJhclRoaWNrbmVzcyk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxiYXJUaGVtZUNocm9taXVtV2luOjpwYWludFRyYWNrUGllY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbjo6cGFpbnRCdXR0b24pOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbjo6cGFpbnRUaHVtYik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUNocm9taXVtV2luOjpidXR0b25TaXplKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TaGFyZWRUaW1lckNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnNldFNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRTaGFyZWRUaW1lckZpcmVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OnN0b3BT
aGFyZWRUaW1lcik6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vU3VkZGVuVGVybWluYXRp
b25DaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkaXNhYmxlU3VkZGVuVGVybWluYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6ZW5hYmxlU3VkZGVuVGVybWluYXRpb24pOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL1N5c3RlbVRpbWVDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vV3JpdGFi
bGVEYXRhT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldyaXRhYmxlRGF0YU9iamVjdDo6
c2V0RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ3Jvc3NQcm9j
ZXNzRm9udExvYWRpbmcubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udENhY2hlQ2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9udENvbnRhaW5z
Q2hhcmFjdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMb2dGb250KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2FjaGVMaW51eC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250Q2FjaGU6OmdldEZvbnREYXRhRm9yQ2hhcmFjdGVycyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250UGxhdGZvcm1EYXRhOjpzY3JpcHRGb250UHJvcGVydGllcyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnF1ZXJ5U3lzdGVtRm9yUmVuZGVyU3R5
bGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dseXBoUGFnZVRyZWVO
b2RlQ2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbEJNUEdseXBocyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlQ2hyb21pdW1NYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21pdW1XaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtSW5pdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6ZGV0ZXJtaW5lUGl0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVbmlzY3JpYmVIZWxwZXJUZXh0UnVuOjp0cnlUb1ByZWxvYWRGb250KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9Db29raWVKYXJD
aHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRDb29raWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Y29va2llc0VuYWJsZWQpOgorICAgICAgICAo
V2ViQ29yZTo6Z2V0UmF3Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVDb29raWUp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vRE5TQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cHJlZmV0Y2hETlMpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Bs
YXRmb3JtQnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZp
bGVTeXN0ZW1DaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVt
OjpkZWxldGVEYXRhYmFzZUZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRmlsZVN5c3Rl
bTo6Z2V0RGF0YWJhc2VGaWxlU2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vc3FsL2Nocm9taXVt
L1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bVBvc2l4LmNwcDoKKyAgICAgICAgKGNocm9taXVtT3Bl
bik6CisgICAgICAgIChjaHJvbWl1bURlbGV0ZSk6CisgICAgICAgIChjaHJvbWl1bUFjY2Vzcyk6
CisgICAgICAgICogcGxhdGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1
bVdpbi5jcHA6CisgICAgICAgICogcGx1Z2lucy9jaHJvbWl1bS9QbHVnaW5EYXRhQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luQ2FjaGU6OnBsdWdpbnMpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6dXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3IpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6Y2FyZXRCbGlua0ludGVydmFsKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtV2lu
OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46
OnN5c3RlbUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46
OnBhaW50QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46
OnBhaW50U2xpZGVyVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6bWVudUxpc3RCdXR0b25XaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwYWludE1lbnVM
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBhaW50VGV4
dEZpZWxkSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdp
bjo6cGFpbnRJbm5lclNwaW5CdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVD
aHJvbWl1bVdpbjo6cGFpbnRQcm9ncmVzc0Jhcik6CisgICAgICAgICogc3RvcmFnZS9jaHJvbWl1
bS9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlOjp+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UpOgorICAg
ICAgICAqIHN0b3JhZ2UvY2hyb21pdW0vSURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQktleVBhdGhCYWNrZW5kSW1wbDo6Y3JlYXRlSURCS2V5c0Zyb21TZXJp
YWxpemVkVmFsdWVzQW5kS2V5UGF0aCk6CisKIDIwMTEtMDEtMTkgIEhlbGRlciBDb3JyZWlhICA8
aGVsZGVyQHNlbmNoYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA1OTNmMGMxYzg3MGMzZTQ0YzViNTQ5YzM1MWJlYjM4ZTc2ODNl
YzA2Li5kMjkzNjE0OGRkOGQwZmQ1MTBlMGIxODNiOGU1NTIyNjgwN2ZhOTkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0yNDQwLDYgKzI0NDAsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2NmL1Nj
aGVkdWxlUGFpci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2NmL1NjaGVkdWxlUGFpci5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3RMZWdhY3kuY3BwJywKQEAgLTI0NzYs
NyArMjQ3Nyw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vTUlNRVR5cGVSZWdp
c3RyeUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUGFzdGVi
b2FyZENocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUGFzdGVi
b2FyZFByaXZhdGUuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1C
cmlkZ2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1DdXJzb3Iu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1LZXlib2FyZEV2ZW50
Q2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNj
cmVlbkNocm9taXVtLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOERPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9N
V2luZG93U2hlbGwuY3BwCmluZGV4IDlkNjY1ZGIxOTI1MzAzNThjMmQ1MDBjZWU4YmI3OWM1NDUy
N2YwYzcuLjgyMDVmZTUwMjE2MmIxOWM1MGI3YTQzZTRhY2M0ZDcyODdkZTU1YmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCkBAIC04NCw3
ICs4NCw3IEBAIHN0YXRpYyB2b2lkIHJlcG9ydEZhdGFsRXJyb3JJblY4KGNvbnN0IGNoYXIqIGxv
Y2F0aW9uLCBjb25zdCBjaGFyKiBtZXNzYWdlKQogICAgIC8vIEZJWE1FOiBjbGVhbiB1cCBWOFBy
b3h5IGFuZCBkaXNhYmxlIEphdmFTY3JpcHQuCiAgICAgaW50IG1lbW9yeVVzYWdlTUIgPSAtMTsK
ICNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBtZW1vcnlVc2FnZU1CID0gUGxhdGZvcm1Ccmlk
Z2U6OmFjdHVhbE1lbW9yeVVzYWdlTUIoKTsKKyAgICBtZW1vcnlVc2FnZU1CID0gQ2hyb21pdW1C
cmlkZ2U6OmFjdHVhbE1lbW9yeVVzYWdlTUIoKTsKICNlbmRpZgogICAgIHByaW50ZigiVjggZXJy
b3I6ICVzICglcykuICBDdXJyZW50IG1lbW9yeSB1c2FnZTogJWQgTUJcbiIsIG1lc3NhZ2UsIGxv
Y2F0aW9uLCBtZW1vcnlVc2FnZU1CKTsKICAgICBoYW5kbGVGYXRhbEVycm9ySW5WOCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IGI5YjBlMzQ5MmM1MzdjZjRhZGQyM2U5NDI3MWI1
ZTUyZGQ5ZjFlMDguLjhiOTAyYzAyNmVkMjU1ZTAxYTkwY2QwMWI3Zjc0YWMxYTUxNGFjYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlICJT
dG9yYWdlTmFtZXNwYWNlLmgiCiAKICNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJQ
bGF0Zm9ybUJyaWRnZS5oIgorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjZW5kaWYKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI4LDcgKzEyOCw3IEBAIGJvb2wgUGFnZUdyb3VwOjpp
c0xpbmtWaXNpdGVkKExpbmtIYXNoIHZpc2l0ZWRMaW5rSGFzaCkKIHsKICNpZiBQTEFURk9STShD
SFJPTUlVTSkKICAgICAvLyBVc2UgQ2hyb21pdW0ncyBidWlsdC1pbiB2aXNpdGVkIGxpbmsgZGF0
YWJhc2UuCi0gICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdlOjppc0xpbmtWaXNpdGVkKHZpc2l0ZWRM
aW5rSGFzaCk7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjppc0xpbmtWaXNpdGVkKHZpc2l0
ZWRMaW5rSGFzaCk7CiAjZWxzZQogICAgIGlmICghbV92aXNpdGVkTGlua3NQb3B1bGF0ZWQpIHsK
ICAgICAgICAgbV92aXNpdGVkTGlua3NQb3B1bGF0ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9QbGF0Zm9ybUJyaWRnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9QbGF0Zm9ybUJyaWRnZS5oCmluZGV4IDgxZDlhMWY3M2M4
ZDE0YzcxZWJhODIyZGU4MzE0YjJlMGI5YmMwOTkuLjQyNjllZjhlNDhkYmFhMjdmZTdjMWY5NjIw
YjQyMjNhOTMzODY1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJv
aWQvUGxhdGZvcm1CcmlkZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lk
L1BsYXRmb3JtQnJpZGdlLmgKQEAgLTg2LDcgKzg2LDcgQEAgY2xhc3MgV2lkZ2V0OwogCiAvLyBB
biBpbnRlcmZhY2UgdG8gdGhlIGVtYmVkZGluZyBsYXllciwgd2hpY2ggaGFzIHRoZSBhYmlsaXR5
IHRvIGFuc3dlcgogLy8gcXVlc3Rpb25zIGFib3V0IHRoZSBzeXN0ZW0gYW5kIHNvIG9uLi4uCi0v
LyBUaGlzIGlzIHZlcnkgc2ltaWxhciB0byBjaHJvbWl1bS9QbGF0Zm9ybUJyaWRnZSBhbmQgdGhl
IHR3byBhcmUgbGlrZWx5IHRvIGNvbnZlcmdlCisvLyBUaGlzIGlzIHZlcnkgc2ltaWxhciB0byBD
aHJvbWl1bUJyaWRnZSBhbmQgdGhlIHR3byBhcmUgbGlrZWx5IHRvIGNvbnZlcmdlCiAvLyBpbiB0
aGUgZnV0dXJlLgogLy8KIC8vIFRoZSBtZXRob2RzIGluIHRoaXMgY2xhc3MgYWxsIG5lZWQgdG8g
cmVhY2ggYWNyb3NzIGEgSk5JIGxheWVyIHRvIHRoZSBKYXZhIFZNCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jaHJvbWl1bS9BdWRpb0J1c0Nocm9taXVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvQnVzQ2hyb21pdW0u
Y3BwCmluZGV4IDllZWY4NGU4Y2Y2OGE1Y2NiNDU0MDA1MGQzMmI0OTUzYjUzNzUzZGMuLmE5Mzcw
M2RmNTZhZjhjMDNjN2MwZjI1ZmZiNzBhOGQ0OTQzZGRiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvQnVzQ2hyb21pdW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nocm9taXVtL0F1ZGlvQnVzQ2hyb21pdW0u
Y3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKIAogI2luY2x1ZGUg
IkF1ZGlvRmlsZVJlYWRlci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCisjaW5jbHVk
ZSAiQ2hyb21pdW1CcmlkZ2UuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0zOCwxMiArMzgsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAvLyBQYXNzT3duUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6bG9hZFBsYXRmb3JtUmVzb3VyY2Uo
Y29uc3QgY2hhciogbmFtZSwgZG91YmxlIHNhbXBsZVJhdGUpCiAvLyB7Ci0vLyAgICAgcmV0dXJu
IFBsYXRmb3JtQnJpZGdlOjpsb2FkUGxhdGZvcm1BdWRpb1Jlc291cmNlKG5hbWUsIHNhbXBsZVJh
dGUpOworLy8gICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6bG9hZFBsYXRmb3JtQXVkaW9SZXNv
dXJjZShuYW1lLCBzYW1wbGVSYXRlKTsKIC8vIH0KIAogUGFzc093blB0cjxBdWRpb0J1cz4gY3Jl
YXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRh
U2l6ZSwgYm9vbCBtaXhUb01vbm8sIGRvdWJsZSBzYW1wbGVSYXRlKQogewotICAgIE93blB0cjxB
dWRpb0J1cz4gYXVkaW9CdXMgPSBQbGF0Zm9ybUJyaWRnZTo6ZGVjb2RlQXVkaW9GaWxlRGF0YShz
dGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIGRhdGFTaXplLCBzYW1wbGVSYXRlKTsKKyAg
ICBPd25QdHI8QXVkaW9CdXM+IGF1ZGlvQnVzID0gQ2hyb21pdW1CcmlkZ2U6OmRlY29kZUF1ZGlv
RmlsZURhdGEoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBkYXRhU2l6ZSwgc2FtcGxl
UmF0ZSk7CiAgICAgaWYgKGF1ZGlvQnVzLT5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMiAmJiBtaXhU
b01vbm8pIHsKICAgICAgICAgT3duUHRyPEF1ZGlvQnVzPiBtb25vQXVkaW9CdXMgPSBhZG9wdFB0
cihuZXcgQXVkaW9CdXMoMSwgYXVkaW9CdXMtPmxlbmd0aCgpKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYx
MDRiMmM1Mzc0NGYxZTIxOTY3MjUyYTE1NmEwYjFiNGExOGIwY2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCkBAIC0w
LDAgKzEsMzUzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgQ2hyb21pdW1CcmlkZ2VfaAorI2RlZmluZSBDaHJvbWl1bUJy
aWRnZV9oCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCisj
ZW5kaWYKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJJbWFnZVNvdXJjZS5o
IgorI2luY2x1ZGUgIkxpbmtIYXNoLmgiCisjaW5jbHVkZSAiUGFzc1JlZlB0ci5oIgorI2luY2x1
ZGUgIlBhc3RlYm9hcmRQcml2YXRlLmgiCisjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgorCisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKwordHlwZWRlZiBzdHJ1Y3QgTlBPYmplY3QgTlBPYmplY3Q7Cit0eXBl
ZGVmIHN0cnVjdCBfTlBQIE5QUF90OwordHlwZWRlZiBOUFBfdCogTlBQOworCisjaWYgT1MoREFS
V0lOKQordHlwZWRlZiBzdHJ1Y3QgQ0dGb250KiBDR0ZvbnRSZWY7Cit0eXBlZGVmIHVpbnRwdHJf
dCBBVFNGb250Q29udGFpbmVyUmVmOworI2lmZGVmIF9fT0JKQ19fCitAY2xhc3MgTlNGb250Owor
I2Vsc2UKK2NsYXNzIE5TRm9udDsKKyNlbmRpZgorI2VuZGlmIC8vIE9TKERBUldJTikKKworI2lm
IE9TKFdJTkRPV1MpCit0eXBlZGVmIHN0cnVjdCBIRk9OVF9fKiBIRk9OVDsKKyNlbmRpZgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBDbGlwYm9hcmREYXRhOworICAgIGNsYXNz
IENvbG9yOworICAgIGNsYXNzIEN1cnNvcjsKKyAgICBjbGFzcyBEb2N1bWVudDsKKyAgICBjbGFz
cyBGcmFtZTsKKyAgICBjbGFzcyBHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2U7CisgICAgY2xhc3Mg
R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW07CisgICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0Owor
ICAgIGNsYXNzIEltYWdlOworICAgIGNsYXNzIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlOwor
ICAgIGNsYXNzIElEQktleTsKKyAgICBjbGFzcyBJbnRSZWN0OworICAgIGNsYXNzIEtVUkw7Cisg
ICAgY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOworICAgIGNsYXNzIFdpZGdldDsKKworICAg
IHN0cnVjdCBDb29raWU7CisgICAgc3RydWN0IEZvbnRSZW5kZXJTdHlsZTsKKworICAgIC8vIEFu
IGludGVyZmFjZSB0byB0aGUgZW1iZWRkaW5nIGxheWVyLCB3aGljaCBoYXMgdGhlIGFiaWxpdHkg
dG8gYW5zd2VyCisgICAgLy8gcXVlc3Rpb25zIGFib3V0IHRoZSBzeXN0ZW0gYW5kIHNvIG9uLi4u
CisKKyAgICBjbGFzcyBDaHJvbWl1bUJyaWRnZSB7CisgICAgcHVibGljOgorICAgICAgICAvLyBD
YWNoZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorICAgICAgICBzdGF0aWMgdm9pZCBjYWNoZU1ldGFkYXRhKGNvbnN0IEtVUkwm
IHVybCwgZG91YmxlIHJlc3BvbnNlVGltZSwgY29uc3QgVmVjdG9yPGNoYXI+Jik7CisKKyAgICAg
ICAgLy8gQ2xpcGJvYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgc3RhdGljIGJvb2wgY2xpcGJvYXJkSXNGb3JtYXRB
dmFpbGFibGUoUGFzdGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEZvcm1hdCwgUGFzdGVib2FyZFBy
aXZhdGU6OkNsaXBib2FyZEJ1ZmZlcik7CisKKyAgICAgICAgc3RhdGljIFN0cmluZyBjbGlwYm9h
cmRSZWFkUGxhaW5UZXh0KFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRCdWZmZXIpOworICAg
ICAgICBzdGF0aWMgdm9pZCBjbGlwYm9hcmRSZWFkSFRNTChQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xp
cGJvYXJkQnVmZmVyLCBTdHJpbmcqLCBLVVJMKik7CisKKyAgICAgICAgLy8gT25seSB0aGUgY2xp
cGJvYXJkUmVhZCBmdW5jdGlvbnMgdGFrZSBhIGJ1ZmZlciBhcmd1bWVudCBiZWNhdXNlCisgICAg
ICAgIC8vIENocm9taXVtIGN1cnJlbnRseSB1c2VzIGEgZGlmZmVyZW50IHRlY2huaXF1ZSB0byB3
cml0ZSB0byBhbHRlcm5hdGUKKyAgICAgICAgLy8gY2xpcGJvYXJkIGJ1ZmZlcnMuCisgICAgICAg
IHN0YXRpYyB2b2lkIGNsaXBib2FyZFdyaXRlU2VsZWN0aW9uKGNvbnN0IFN0cmluZyYsIGNvbnN0
IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBib29sKTsKKyAgICAgICAgc3RhdGljIHZvaWQgY2xpcGJv
YXJkV3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJik7CisgICAgICAgIHN0YXRpYyB2b2lkIGNs
aXBib2FyZFdyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgc3Rh
dGljIHZvaWQgY2xpcGJvYXJkV3JpdGVJbWFnZShOYXRpdmVJbWFnZVB0ciwgY29uc3QgS1VSTCYs
IGNvbnN0IFN0cmluZyYpOworICAgICAgICBzdGF0aWMgdm9pZCBjbGlwYm9hcmRXcml0ZURhdGEo
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgbWV0
YWRhdGEpOworCisgICAgICAgIC8vIEludGVyZmFjZSBmb3IgaGFuZGxpbmcgY29weSBhbmQgcGFz
dGUsIGRyYWcgYW5kIGRyb3AsIGFuZCBzZWxlY3Rpb24gY29weS4KKyAgICAgICAgc3RhdGljIEhh
c2hTZXQ8U3RyaW5nPiBjbGlwYm9hcmRSZWFkQXZhaWxhYmxlVHlwZXMoUGFzdGVib2FyZFByaXZh
dGU6OkNsaXBib2FyZEJ1ZmZlciwgYm9vbCogY29udGFpbnNGaWxlbmFtZXMpOworICAgICAgICBz
dGF0aWMgYm9vbCBjbGlwYm9hcmRSZWFkRGF0YShQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJk
QnVmZmVyLCBjb25zdCBTdHJpbmcmIHR5cGUsIFN0cmluZyYgZGF0YSwgU3RyaW5nJiBtZXRhZGF0
YSk7CisgICAgICAgIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBjbGlwYm9hcmRSZWFkRmlsZW5hbWVz
KFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRCdWZmZXIpOworCisgICAgICAgIC8vIENvb2tp
ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgIHN0YXRpYyB2b2lkIHNldENvb2tpZXMoY29uc3QgRG9jdW1lbnQqLCBj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisgICAgICAgIHN0YXRpYyBTdHJpbmcg
Y29va2llcyhjb25zdCBEb2N1bWVudCosIGNvbnN0IEtVUkwmKTsKKyAgICAgICAgc3RhdGljIFN0
cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBEb2N1bWVudCosIGNvbnN0
IEtVUkwmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgcmF3Q29va2llcyhjb25zdCBEb2N1bWVudCos
IGNvbnN0IEtVUkwmIHVybCwgVmVjdG9yPENvb2tpZT4mKTsKKyAgICAgICAgc3RhdGljIHZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50KiwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIGNvb2tpZU5hbWUpOworICAgICAgICBzdGF0aWMgYm9vbCBjb29raWVzRW5hYmxlZChjb25z
dCBEb2N1bWVudCopOworCisgICAgICAgIC8vIEROUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIHN0YXRpYyB2
b2lkIHByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpOworCisgICAgICAgIC8vIEZp
bGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgICAgIHN0YXRpYyB2b2lkIHJldmVhbEZvbGRlckluT1MoY29uc3QgU3Ry
aW5nJik7CisgICAgICAgIHN0YXRpYyBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJik7Cisg
ICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJik7CisgICAgICAgIHN0
YXRpYyBib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOworICAgICAgICBz
dGF0aWMgYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmLCBsb25nIGxvbmcmIHJlc3VsdCk7
CisgICAgICAgIHN0YXRpYyBib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmlu
ZyYsIHRpbWVfdCYgcmVzdWx0KTsKKyAgICAgICAgc3RhdGljIFN0cmluZyBkaXJlY3RvcnlOYW1l
KGNvbnN0IFN0cmluZyYgcGF0aCk7CisgICAgICAgIHN0YXRpYyBTdHJpbmcgcGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb21wb25lbnQp
OworICAgICAgICBzdGF0aWMgYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBw
YXRoKTsKKyAgICAgICAgc3RhdGljIFN0cmluZyBnZXRBYnNvbHV0ZVBhdGgoY29uc3QgU3RyaW5n
Jik7CisgICAgICAgIHN0YXRpYyBib29sIGlzRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOworICAg
ICAgICBzdGF0aWMgS1VSTCBmaWxlUGF0aFRvVVJMKGNvbnN0IFN0cmluZyYpOworICAgICAgICBz
dGF0aWMgUGxhdGZvcm1GaWxlSGFuZGxlIG9wZW5GaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgRmls
ZU9wZW5Nb2RlKTsKKyAgICAgICAgc3RhdGljIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhh
bmRsZSYpOworICAgICAgICBzdGF0aWMgbG9uZyBsb25nIHNlZWtGaWxlKFBsYXRmb3JtRmlsZUhh
bmRsZSwgbG9uZyBsb25nIG9mZnNldCwgRmlsZVNlZWtPcmlnaW4pOworICAgICAgICBzdGF0aWMg
Ym9vbCB0cnVuY2F0ZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KTsK
KyAgICAgICAgc3RhdGljIGludCByZWFkRnJvbUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoKTsKKyAgICAgICAgc3RhdGljIGludCB3cml0ZVRvRmlsZShQbGF0
Zm9ybUZpbGVIYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpOworCisgICAgICAg
IC8vIEZvbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisjaWYgT1MoV0lORE9XUykKKyAgICAgICAgc3RhdGljIGJvb2wgZW5z
dXJlRm9udExvYWRlZChIRk9OVCBmb250KTsKKyNlbmRpZgorI2lmIE9TKExJTlVYKSB8fCBPUyhG
UkVFQlNEKQorICAgICAgICBzdGF0aWMgdm9pZCBnZXRSZW5kZXJTdHlsZUZvclN0cmlrZShjb25z
dCBjaGFyKiBmYW1pbHksIGludCBzaXplQW5kU3R5bGUsIEZvbnRSZW5kZXJTdHlsZSogcmVzdWx0
KTsKKyAgICAgICAgc3RhdGljIFN0cmluZyBnZXRGb250RmFtaWx5Rm9yQ2hhcmFjdGVycyhjb25z
dCBVQ2hhciosIHNpemVfdCBudW1DaGFyYWN0ZXJzKTsKKyNlbmRpZgorI2lmIE9TKERBUldJTikK
KyAgICAgICAgc3RhdGljIGJvb2wgbG9hZEZvbnQoTlNGb250KiBzcmNGb250LCBBVFNGb250Q29u
dGFpbmVyUmVmKiBvdXQpOworI2VuZGlmCisKKyAgICAgICAgLy8gRm9ybXMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg
ICAgc3RhdGljIHZvaWQgbm90aWZ5Rm9ybVN0YXRlQ2hhbmdlZChjb25zdCBEb2N1bWVudCopOwor
CisgICAgICAgIC8vIERhdGFiYXNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vIFJldHVybnMgYSBoYW5kbGUgdG8g
dGhlIERCIGZpbGUgYW5kIG9vcHRpb25hbGx5IGEgaGFuZGxlIHRvIGl0cyBjb250YWluaW5nIGRp
cmVjdG9yeQorICAgICAgICBzdGF0aWMgUGxhdGZvcm1GaWxlSGFuZGxlIGRhdGFiYXNlT3BlbkZp
bGUoY29uc3QgU3RyaW5nJiB2ZnNGbGVOYW1lLCBpbnQgZGVzaXJlZEZsYWdzKTsKKyAgICAgICAg
Ly8gUmV0dXJucyBhIFNRTGl0ZSBjb2RlIChTUUxJVEVfT0sgPSAwLCBvbiBzdWNjZXNzKQorICAg
ICAgICBzdGF0aWMgaW50IGRhdGFiYXNlRGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIHZmc0ZpbGVO
YW1lLCBib29sIHN5bmNEaXIgPSBmYWxzZSk7CisgICAgICAgIC8vIFJldHVybnMgdGhlIGF0dHJp
YnV0ZXMgb2YgdGhlIERCIGZpbGUKKyAgICAgICAgc3RhdGljIGxvbmcgZGF0YWJhc2VHZXRGaWxl
QXR0cmlidXRlcyhjb25zdCBTdHJpbmcmIHZmc0ZpbGVOYW1lKTsKKyAgICAgICAgLy8gUmV0dXJu
cyB0aGUgc2l6ZSBvZiB0aGUgREIgZmlsZQorICAgICAgICBzdGF0aWMgbG9uZyBsb25nIGRhdGFi
YXNlR2V0RmlsZVNpemUoY29uc3QgU3RyaW5nJiB2ZnNGaWxlTmFtZSk7CisKKyAgICAgICAgLy8g
SW5kZXhlZERCIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2U+IGlkYkZhY3RvcnkoKTsKKyAgICAgICAgc3RhdGljIHZvaWQgaWRiU2h1dGRvd24o
KTsKKyAgICAgICAgLy8gRXh0cmFjdHMga2V5UGF0aCBmcm9tIHZhbHVlcyBhbmQgcmV0dXJucyB0
aGUgY29ycmVzcG9uZGluZyBrZXlzLgorICAgICAgICBzdGF0aWMgdm9pZCBjcmVhdGVJREJLZXlz
RnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiA+JiB2YWx1ZXMsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgVmVjdG9y
PFJlZlB0cjxJREJLZXk+ID4mIGtleXMpOworCisgICAgICAgIC8vIEphdmFTY3JpcHQgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg
ICAgIHN0YXRpYyB2b2lkIG5vdGlmeUpTT3V0T2ZNZW1vcnkoRnJhbWUqKTsKKyAgICAgICAgc3Rh
dGljIGJvb2wgYWxsb3dTY3JpcHREZXNwaXRlU2V0dGluZ3MoY29uc3QgS1VSTCYgZG9jdW1lbnRV
UkwpOworCisgICAgICAgIC8vIEtleWdlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIHN0YXRpYyBTdHJpbmcgc2ln
bmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNpemVJbmRleCwgY29u
c3QgU3RyaW5nJiBjaGFsbGVuZ2UsIGNvbnN0IEtVUkwmIHVybCk7CisKKyAgICAgICAgLy8gTGFu
Z3VhZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAgc3RhdGljIFN0cmluZyBjb21wdXRlZERlZmF1bHRMYW5ndWFnZSgp
OworCisgICAgICAgIC8vIExheW91dFRlc3RNb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIHN0YXRpYyBib29sIGxheW91dFRl
c3RNb2RlKCk7CisKKyAgICAgICAgLy8gTWVtb3J5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgLy8gUmV0dXJucyB0
aGUgY3VycmVudCBzcGFjZSBhbGxvY2F0ZWQgZm9yIHRoZSBwYWdlZmlsZSwgaW4gTUIuCisgICAg
ICAgIC8vIFRoYXQgaXMgY29tbWl0dGVkIHNpemUgZm9yIFdpbmRvd3MgYW5kIHZpcnR1YWwgbWVt
b3J5IHNpemUgZm9yIFBPU0lYCisgICAgICAgIHN0YXRpYyBpbnQgbWVtb3J5VXNhZ2VNQigpOwor
CisgICAgICAgIC8vIFNhbWUgYXMgYWJvdmUsIGJ1dCBhbHdheXMgcmV0dXJucyBhY3R1YWwgdmFs
dWUsIHdpdGhvdXQgYW55IGNhY2hlcy4KKyAgICAgICAgc3RhdGljIGludCBhY3R1YWxNZW1vcnlV
c2FnZU1CKCk7CisKKyAgICAgICAgLy8gTWltZVR5cGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgc3RhdGljIGJvb2wg
aXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworICAgICAg
ICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKTsKKyAgICAgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWROb25JbWFnZU1JTUVU
eXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworICAgICAgICBzdGF0aWMgU3RyaW5nIG1pbWVU
eXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZmlsZUV4dGVuc2lvbik7CisgICAgICAgIHN0
YXRpYyBTdHJpbmcgbWltZVR5cGVGcm9tRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoKTsKKyAg
ICAgICAgc3RhdGljIFN0cmluZyBwcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShjb25zdCBT
dHJpbmcmIG1pbWVUeXBlKTsKKworICAgICAgICAvLyBQbHVnaW4gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBzdGF0
aWMgYm9vbCBwbHVnaW5zKGJvb2wgcmVmcmVzaCwgVmVjdG9yPFBsdWdpbkluZm8+Kik7CisgICAg
ICAgIHN0YXRpYyBOUE9iamVjdCogcGx1Z2luU2NyaXB0YWJsZU9iamVjdChXaWRnZXQqKTsKKyAg
ICAgICAgc3RhdGljIGJvb2wgcG9wdXBzQWxsb3dlZChOUFApOworCisgICAgICAgIC8vIFJlc291
cmNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEltYWdlPiBsb2FkUGxhdGZvcm1JbWFn
ZVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUpOworCisjaWYgRU5BQkxFKFdFQl9BVURJTykKKyAg
ICAgICAgc3RhdGljIFBhc3NPd25QdHI8QXVkaW9CdXM+IGxvYWRQbGF0Zm9ybUF1ZGlvUmVzb3Vy
Y2UoY29uc3QgY2hhciogbmFtZSwgZG91YmxlIHNhbXBsZVJhdGUpOworICAgICAgICBzdGF0aWMg
UGFzc093blB0cjxBdWRpb0J1cz4gZGVjb2RlQXVkaW9GaWxlRGF0YShjb25zdCBjaGFyKiBkYXRh
LCBzaXplX3Qgc2l6ZSwgZG91YmxlIHNhbXBsZVJhdGUpOworI2VuZGlmCisKKyAgICAgICAgLy8g
U2FuZGJveCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyAgICAgICAgc3RhdGljIGJvb2wgc2FuZGJveEVuYWJsZWQoKTsKKworICAg
ICAgICAvLyBTY3JlZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBzdGF0aWMgaW50IHNjcmVlbkRlcHRoKFdpZGdl
dCopOworICAgICAgICBzdGF0aWMgaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCop
OworICAgICAgICBzdGF0aWMgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0Kik7CisgICAg
ICAgIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0Kik7CisgICAgICAgIHN0YXRpYyBJ
bnRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0Kik7CisKKyAgICAgICAgLy8gU2hhcmVk
VGltZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZv
aWQgKCpmdW5jKSgpKTsKKyAgICAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkVGltZXJGaXJlVGlt
ZShkb3VibGUgZmlyZVRpbWUpOworICAgICAgICBzdGF0aWMgdm9pZCBzdG9wU2hhcmVkVGltZXIo
KTsKKworICAgICAgICAvLyBTdGF0c0NvdW50ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBzdGF0aWMgdm9pZCBkZWNyZW1l
bnRTdGF0c0NvdW50ZXIoY29uc3QgY2hhciogbmFtZSk7CisgICAgICAgIHN0YXRpYyB2b2lkIGlu
Y3JlbWVudFN0YXRzQ291bnRlcihjb25zdCBjaGFyKiBuYW1lKTsKKyAgICAgICAgc3RhdGljIHZv
aWQgaGlzdG9ncmFtQ3VzdG9tQ291bnRzKGNvbnN0IGNoYXIqIG5hbWUsIGludCBzYW1wbGUsIGlu
dCBtaW4sIGludCBtYXgsIGludCBidWNrZXRDb3VudCk7CisgICAgICAgIHN0YXRpYyB2b2lkIGhp
c3RvZ3JhbUVudW1lcmF0aW9uKGNvbnN0IGNoYXIqIG5hbWUsIGludCBzYW1wbGUsIGludCBib3Vu
ZGFyeVZhbHVlKTsKKworICAgICAgICAvLyBTdWRkZW4gVGVybWluYXRpb24KKyAgICAgICAgc3Rh
dGljIHZvaWQgc3VkZGVuVGVybWluYXRpb25DaGFuZ2VkKGJvb2wgZW5hYmxlZCk7CisKKyAgICAg
ICAgLy8gU3lzdGVtVGltZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgc3RhdGljIGRvdWJsZSBjdXJyZW50VGltZSgpOwor
CisgICAgICAgIC8vIFRoZW1pbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjaWYgT1MoV0lORE9XUykKKyAgICAgICAgc3RhdGlj
IHZvaWQgcGFpbnRCdXR0b24oCisgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQqLCBpbnQgcGFy
dCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBjb25zdCBJbnRSZWN0Jik7CisgICAgICAg
IHN0YXRpYyB2b2lkIHBhaW50TWVudUxpc3QoCisgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQq
LCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBjb25zdCBJbnRSZWN0Jik7
CisgICAgICAgIHN0YXRpYyB2b2lkIHBhaW50U2Nyb2xsYmFyQXJyb3coCisgICAgICAgICAgICBH
cmFwaGljc0NvbnRleHQqLCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsIGNvbnN0IEludFJl
Y3QmKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcGFpbnRTY3JvbGxiYXJUaHVtYigKKyAgICAgICAg
ICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3Rh
dGUsIGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcGFpbnRTY3JvbGxiYXJU
cmFjaygKKyAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBwYXJ0LCBpbnQgc3RhdGUs
IGludCBjbGFzc2ljU3RhdGUsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JiBhbGlnblJl
Y3QpOworICAgICAgICBzdGF0aWMgdm9pZCBwYWludFNwaW5CdXR0b24oCisgICAgICAgICAgICBH
cmFwaGljc0NvbnRleHQqLCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBj
b25zdCBJbnRSZWN0Jik7CisgICAgICAgIHN0YXRpYyB2b2lkIHBhaW50VGV4dEZpZWxkKAorICAg
ICAgICAgICAgR3JhcGhpY3NDb250ZXh0KiwgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNz
aWNTdGF0ZSwgY29uc3QgSW50UmVjdCYsIGNvbnN0IENvbG9yJiwgYm9vbCBmaWxsQ29udGVudEFy
ZWEsIGJvb2wgZHJhd0VkZ2VzKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcGFpbnRUcmFja2JhcigK
KyAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBj
bGFzc2ljU3RhdGUsIGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcGFpbnRQ
cm9ncmVzc0JhcigKKyAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3Qm
IGJhclJlY3QsIGNvbnN0IEludFJlY3QmIHZhbHVlUmVjdCwgYm9vbCBkZXRlcm1pbmF0ZSwgZG91
YmxlIGFuaW1hdGVkU2Vjb25kcyk7CisjZWxpZiBPUyhMSU5VWCkKKyAgICAgICAgLy8gVGhlIFVJ
IHBhcnQgd2hpY2ggaXMgYmVpbmcgYWNjZXNzZWQuCisgICAgICAgIGVudW0gVGhlbWVQYXJ0IHsK
KyAgICAgICAgICAgIFBhcnRTY3JvbGxiYXJEb3duQXJyb3csCisgICAgICAgICAgICBQYXJ0U2Ny
b2xsYmFyTGVmdEFycm93LAorICAgICAgICAgICAgUGFydFNjcm9sbGJhclJpZ2h0QXJyb3csCisg
ICAgICAgICAgICBQYXJ0U2Nyb2xsYmFyVXBBcnJvdywKKyAgICAgICAgICAgIFBhcnRTY3JvbGxi
YXJIb3Jpem9udGFsVGh1bWIsCisgICAgICAgICAgICBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUaHVt
YiwKKyAgICAgICAgICAgIFBhcnRTY3JvbGxiYXJIb3Jpem9udGFsVHJhY2ssCisgICAgICAgICAg
ICBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUcmFjaywKKyAgICAgICAgfTsKKworICAgICAgICAvLyBU
aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXNzb2NpYXRlZCBQYXJ0LgorICAgICAgICBlbnVtIFRo
ZW1lUGFpbnRTdGF0ZSB7CisgICAgICAgICAgICBTdGF0ZURpc2FibGVkLAorICAgICAgICAgICAg
U3RhdGVIb3ZlciwKKyAgICAgICAgICAgIFN0YXRlTm9ybWFsLAorICAgICAgICAgICAgU3RhdGVQ
cmVzc2VkLAorICAgICAgICB9OworCisgICAgICAgIHN0cnVjdCBTY3JvbGxiYXJUcmFja0V4dHJh
UGFyYW1zIHsKKyAgICAgICAgICAgIC8vIFRoZSBib3VuZHMgb2YgdGhlIGVudGlyZSB0cmFjaywg
YXMgb3Bwb3NlZCB0byB0aGUgcGFydCBiZWluZyBwYWludGVkLgorICAgICAgICAgICAgaW50IHRy
YWNrWDsKKyAgICAgICAgICAgIGludCB0cmFja1k7CisgICAgICAgICAgICBpbnQgdHJhY2tXaWR0
aDsKKyAgICAgICAgICAgIGludCB0cmFja0hlaWdodDsKKyAgICAgICAgfTsKKworICAgICAgICB1
bmlvbiBUaGVtZVBhaW50RXh0cmFQYXJhbXMgeworICAgICAgICAgICAgU2Nyb2xsYmFyVHJhY2tF
eHRyYVBhcmFtcyBzY3JvbGxiYXJUcmFjazsKKyAgICAgICAgfTsKKworICAgICAgICAvLyBHZXRz
IHRoZSBzaXplIG9mIHRoZSBnaXZlbiB0aGVtZSBwYXJ0LiBGb3IgdmFyaWFibGUgc2l6ZWQgaXRl
bXMKKyAgICAgICAgLy8gbGlrZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgdGh1bWJzLCB0aGUgd2lkdGgg
d2lsbCBiZSB0aGUgcmVxdWlyZWQgd2lkdGggb2YKKyAgICAgICAgLy8gdGhlIHRyYWNrIHdoaWxl
IHRoZSBoZWlnaHQgd2lsbCBiZSB0aGUgbWluaW11bSBoZWlnaHQuCisgICAgICAgIHN0YXRpYyBJ
bnRTaXplIGdldFRoZW1lUGFydFNpemUoVGhlbWVQYXJ0KTsKKyAgICAgICAgLy8gUGFpbnQgdGhl
IGdpdmVuIHRoZSBnaXZlbiB0aGVtZSBwYXJ0LgorICAgICAgICBzdGF0aWMgdm9pZCBwYWludFRo
ZW1lUGFydChHcmFwaGljc0NvbnRleHQqLCBUaGVtZVBhcnQsIFRoZW1lUGFpbnRTdGF0ZSwgY29u
c3QgSW50UmVjdCYsIGNvbnN0IFRoZW1lUGFpbnRFeHRyYVBhcmFtcyopOworI2VsaWYgT1MoREFS
V0lOKQorICAgICAgICBlbnVtIFRoZW1lUGFpbnRTdGF0ZSB7CisgICAgICAgICAgICBTdGF0ZURp
c2FibGVkLAorICAgICAgICAgICAgU3RhdGVJbmFjdGl2ZSwKKyAgICAgICAgICAgIFN0YXRlQWN0
aXZlLAorICAgICAgICAgICAgU3RhdGVQcmVzc2VkLAorICAgICAgICB9OworCisgICAgICAgIGVu
dW0gVGhlbWVQYWludFNpemUgeworICAgICAgICAgICAgU2l6ZVJlZ3VsYXIsCisgICAgICAgICAg
ICBTaXplU21hbGwsCisgICAgICAgIH07CisKKyAgICAgICAgZW51bSBUaGVtZVBhaW50U2Nyb2xs
YmFyT3JpZW50YXRpb24geworICAgICAgICAgICAgU2Nyb2xsYmFyT3JpZW50YXRpb25Ib3Jpem9u
dGFsLAorICAgICAgICAgICAgU2Nyb2xsYmFyT3JpZW50YXRpb25WZXJ0aWNhbCwKKyAgICAgICAg
fTsKKworICAgICAgICBlbnVtIFRoZW1lUGFpbnRTY3JvbGxiYXJQYXJlbnQgeworICAgICAgICAg
ICAgU2Nyb2xsYmFyUGFyZW50U2Nyb2xsVmlldywKKyAgICAgICAgICAgIFNjcm9sbGJhclBhcmVu
dFJlbmRlckxheWVyLAorICAgICAgICB9OworCisgICAgICAgIHN0cnVjdCBUaGVtZVBhaW50U2Ny
b2xsYmFySW5mbyB7CisgICAgICAgICAgICBUaGVtZVBhaW50U2Nyb2xsYmFyT3JpZW50YXRpb24g
b3JpZW50YXRpb247CisgICAgICAgICAgICBUaGVtZVBhaW50U2Nyb2xsYmFyUGFyZW50IHBhcmVu
dDsKKyAgICAgICAgICAgIGludCBtYXhWYWx1ZTsKKyAgICAgICAgICAgIGludCBjdXJyZW50VmFs
dWU7CisgICAgICAgICAgICBpbnQgdmlzaWJsZVNpemU7CisgICAgICAgICAgICBpbnQgdG90YWxT
aXplOworICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyB2b2lkIHBhaW50U2Nyb2xsYmFyVGh1
bWIoR3JhcGhpY3NDb250ZXh0KiwgVGhlbWVQYWludFN0YXRlLCBUaGVtZVBhaW50U2l6ZSwgY29u
c3QgSW50UmVjdCYsIGNvbnN0IFRoZW1lUGFpbnRTY3JvbGxiYXJJbmZvJik7CisjZW5kaWYKKwor
ICAgICAgICAvLyBUcmFjZSBFdmVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBzdGF0aWMgdm9pZCB0cmFjZUV2ZW50QmVn
aW4oY29uc3QgY2hhciogbmFtZSwgdm9pZCogaWQsIGNvbnN0IGNoYXIqIGV4dHJhKTsKKyAgICAg
ICAgc3RhdGljIHZvaWQgdHJhY2VFdmVudEVuZChjb25zdCBjaGFyKiBuYW1lLCB2b2lkKiBpZCwg
Y29uc3QgY2hhciogZXh0cmEpOworCisgICAgICAgIC8vIFZpc2l0ZWQgbGlua3MgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIHN0
YXRpYyBMaW5rSGFzaCB2aXNpdGVkTGlua0hhc2goY29uc3QgVUNoYXIqIHVybCwgdW5zaWduZWQg
bGVuZ3RoKTsKKyAgICAgICAgc3RhdGljIExpbmtIYXNoIHZpc2l0ZWRMaW5rSGFzaChjb25zdCBL
VVJMJiBiYXNlLCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZVVSTCk7CisgICAgICAgIHN0
YXRpYyBib29sIGlzTGlua1Zpc2l0ZWQoTGlua0hhc2gpOworICAgIH07CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3RMZWdhY3kuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0TGVnYWN5LmNwcAppbmRleCA4MmU0
N2UyZTcwZDllNDYxZWI1ODIxNzkzYzk4ZTcxN2U1YTFjMWEzLi5hMjk1MmMwMWIzYTRjYzc5MDAz
MmNkNGI2OTMyNTViODAxOWZkM2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3RMZWdhY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdExlZ2FjeS5jcHAKQEAgLTMx
LDkgKzMxLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDaHJvbWl1bURhdGFP
YmplY3RMZWdhY3kuaCIKIAorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAi
Q2xpcGJvYXJkTWltZVR5cGVzLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtQnJpZGdlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTMyLDcgKzEz
Miw3IEBAIFN0cmluZyBDaHJvbWl1bURhdGFPYmplY3RMZWdhY3k6OmdldERhdGEoY29uc3QgU3Ry
aW5nJiB0eXBlLCBib29sJiBzdWNjZXNzKQogICAgICAgICAgICAgICAgIFBhc3RlYm9hcmQ6Omdl
bmVyYWxQYXN0ZWJvYXJkKCktPmlzU2VsZWN0aW9uTW9kZSgpID8KICAgICAgICAgICAgICAgICBQ
YXN0ZWJvYXJkUHJpdmF0ZTo6U2VsZWN0aW9uQnVmZmVyIDoKICAgICAgICAgICAgICAgICBQYXN0
ZWJvYXJkUHJpdmF0ZTo6U3RhbmRhcmRCdWZmZXI7Ci0gICAgICAgICAgICBTdHJpbmcgdGV4dCA9
IFBsYXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRSZWFkUGxhaW5UZXh0KGJ1ZmZlcik7CisgICAgICAg
ICAgICBTdHJpbmcgdGV4dCA9IENocm9taXVtQnJpZGdlOjpjbGlwYm9hcmRSZWFkUGxhaW5UZXh0
KGJ1ZmZlcik7CiAgICAgICAgICAgICBzdWNjZXNzID0gIXRleHQuaXNFbXB0eSgpOwogICAgICAg
ICAgICAgcmV0dXJuIHRleHQ7CiAgICAgICAgIH0KQEAgLTE1OCw3ICsxNTgsNyBAQCBTdHJpbmcg
Q2hyb21pdW1EYXRhT2JqZWN0TGVnYWN5OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9v
bCYgc3VjY2VzcykKICAgICAgICAgICAgICAgICBQYXN0ZWJvYXJkUHJpdmF0ZTo6U3RhbmRhcmRC
dWZmZXI7CiAgICAgICAgICAgICBTdHJpbmcgaHRtbFRleHQ7CiAgICAgICAgICAgICBLVVJMIHNv
dXJjZVVSTDsKLSAgICAgICAgICAgIFBsYXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRSZWFkSFRNTChi
dWZmZXIsICZodG1sVGV4dCwgJnNvdXJjZVVSTCk7CisgICAgICAgICAgICBDaHJvbWl1bUJyaWRn
ZTo6Y2xpcGJvYXJkUmVhZEhUTUwoYnVmZmVyLCAmaHRtbFRleHQsICZzb3VyY2VVUkwpOwogICAg
ICAgICAgICAgc3VjY2VzcyA9ICFodG1sVGV4dC5pc0VtcHR5KCk7CiAgICAgICAgICAgICByZXR1
cm4gaHRtbFRleHQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKaW5kZXggOTMxMjUwNTYxZWNmZDY4ZGQ1
MTczNjRkYTFhMWVhNTI5YTUxMDlhZC4uOGMyMGEwMGMwOWY5NWU4OTQyYzAzYWQyZTM4ZTAzZGMy
NmYwNjMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJh
Z0RhdGFDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RHJhZ0RhdGFDaHJvbWl1bS5jcHAKQEAgLTMwLDE2ICszMCwxNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkRyYWdEYXRhLmgiCiAKKyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5o
IgogI2luY2x1ZGUgIkNocm9taXVtRGF0YU9iamVjdC5oIgogI2luY2x1ZGUgIkNsaXBib2FyZE1p
bWVUeXBlcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJGaWxl
U3lzdGVtLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVk
ZSAibWFya3VwLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJQbGF0
Zm9ybUJyaWRnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAibWFy
a3VwLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjMsNyArNjMsNyBAQCBTdHJpbmcg
RHJhZ0RhdGE6OmFzVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYW1l
UG9saWN5LCBTdHJpbmcqCiAgICAgICAgIGlmICh0aXRsZSkKICAgICAgICAgICAgICp0aXRsZSA9
IG1fcGxhdGZvcm1EcmFnRGF0YS0+dXJsVGl0bGUoKTsKICAgICB9IGVsc2UgaWYgKGZpbGVuYW1l
UG9saWN5ID09IENvbnZlcnRGaWxlbmFtZXMgJiYgY29udGFpbnNGaWxlcygpKSB7Ci0gICAgICAg
IHVybCA9IFBsYXRmb3JtQnJpZGdlOjpmaWxlUGF0aFRvVVJMKFBsYXRmb3JtQnJpZGdlOjpnZXRB
YnNvbHV0ZVBhdGgobV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMoKVswXSkpOworICAgICAg
ICB1cmwgPSBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChDaHJvbWl1bUJyaWRnZTo6Z2V0
QWJzb2x1dGVQYXRoKG1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVzKClbMF0pKTsKICAgICB9
CiAgICAgcmV0dXJuIHVybDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9GaWxlU3lzdGVtQ2hyb21pdW0uY3BwCmluZGV4IGZhZjVlOTJhN2ZkMWY0ZGVm
YjI4ODM2MTJmZWY0Y2FmMDA4MDhiYTkuLmQ4YTFlM2YxMDYzMGY2ODM0ZGIwZTI2YTEyMGU0OWE5
ZWQyZjMxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Zp
bGVTeXN0ZW1DaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRmlsZVN5c3RlbUNocm9taXVtLmNwcApAQCAtMzEsODUgKzMxLDg1IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogCisjaW5jbHVkZSAiQ2hyb21pdW1C
cmlkZ2UuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlBsYXRmb3Jt
QnJpZGdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBib29sIGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIHJldHVy
biBQbGF0Zm9ybUJyaWRnZTo6ZGVsZXRlRmlsZShwYXRoKTsKKyAgICByZXR1cm4gQ2hyb21pdW1C
cmlkZ2U6OmRlbGV0ZUZpbGUocGF0aCk7CiB9CiAKIGJvb2wgZGVsZXRlRW1wdHlEaXJlY3Rvcnko
Y29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6ZGVsZXRl
RW1wdHlEaXJlY3RvcnkocGF0aCk7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpkZWxldGVF
bXB0eURpcmVjdG9yeShwYXRoKTsKIH0KIAogYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcm
IHBhdGgsIGxvbmcgbG9uZyYgcmVzdWx0KQogewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6
Z2V0RmlsZVNpemUocGF0aCwgcmVzdWx0KTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6Omdl
dEZpbGVTaXplKHBhdGgsIHJlc3VsdCk7CiB9CiAKIGJvb2wgZ2V0RmlsZU1vZGlmaWNhdGlvblRp
bWUoY29uc3QgU3RyaW5nJiBwYXRoLCB0aW1lX3QmIHJlc3VsdCkKIHsKLSAgICByZXR1cm4gUGxh
dGZvcm1CcmlkZ2U6OmdldEZpbGVNb2RpZmljYXRpb25UaW1lKHBhdGgsIHJlc3VsdCk7CisgICAg
cmV0dXJuIENocm9taXVtQnJpZGdlOjpnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShwYXRoLCByZXN1
bHQpOwogfQogCiB2b2lkIHJldmVhbEZvbGRlckluT1MoY29uc3QgU3RyaW5nJiBwYXRoKQogewot
ICAgIFBsYXRmb3JtQnJpZGdlOjpyZXZlYWxGb2xkZXJJbk9TKHBhdGgpOworICAgIENocm9taXVt
QnJpZGdlOjpyZXZlYWxGb2xkZXJJbk9TKHBhdGgpOwogfQogCiBTdHJpbmcgZGlyZWN0b3J5TmFt
ZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdlOjpkaXJl
Y3RvcnlOYW1lKHBhdGgpOworICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6ZGlyZWN0b3J5TmFt
ZShwYXRoKTsKIH0KIAogU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJp
bmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29tcG9uZW50KQogewotICAgIHJldHVybiBQbGF0Zm9y
bUJyaWRnZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsIGNvbXBvbmVudCk7CisgICAg
cmV0dXJuIENocm9taXVtQnJpZGdlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgY29t
cG9uZW50KTsKIH0KIAogYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRo
KQogewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6bWFrZUFsbERpcmVjdG9yaWVzKHBhdGgp
OworICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6bWFrZUFsbERpcmVjdG9yaWVzKHBhdGgpOwog
fQogCiBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIHJldHVybiBQ
bGF0Zm9ybUJyaWRnZTo6ZmlsZUV4aXN0cyhwYXRoKTsKKyAgICByZXR1cm4gQ2hyb21pdW1Ccmlk
Z2U6OmZpbGVFeGlzdHMocGF0aCk7CiB9CiAKIFBsYXRmb3JtRmlsZUhhbmRsZSBvcGVuRmlsZShj
b25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2RlKQogewotICAgIHJldHVybiBQbGF0
Zm9ybUJyaWRnZTo6b3BlbkZpbGUocGF0aCwgbW9kZSk7CisgICAgcmV0dXJuIENocm9taXVtQnJp
ZGdlOjpvcGVuRmlsZShwYXRoLCBtb2RlKTsKIH0KIAogdm9pZCBjbG9zZUZpbGUoUGxhdGZvcm1G
aWxlSGFuZGxlJiBoYW5kbGUpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdlOjpjbG9zZUZp
bGUoaGFuZGxlKTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmNsb3NlRmlsZShoYW5kbGUp
OwogfQogCiBsb25nIGxvbmcgc2Vla0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9u
ZyBsb25nIG9mZnNldCwgRmlsZVNlZWtPcmlnaW4gb3JpZ2luKQogewotICAgIHJldHVybiBQbGF0
Zm9ybUJyaWRnZTo6c2Vla0ZpbGUoaGFuZGxlLCBvZmZzZXQsIG9yaWdpbik7CisgICAgcmV0dXJu
IENocm9taXVtQnJpZGdlOjpzZWVrRmlsZShoYW5kbGUsIG9mZnNldCwgb3JpZ2luKTsKIH0KIAog
Ym9vbCB0cnVuY2F0ZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9m
ZnNldCkKIHsKLSAgICByZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OnRydW5jYXRlRmlsZShoYW5kbGUs
IG9mZnNldCk7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjp0cnVuY2F0ZUZpbGUoaGFuZGxl
LCBvZmZzZXQpOwogfQogCiBpbnQgcmVhZEZyb21GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5k
bGUsIGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdl
OjpyZWFkRnJvbUZpbGUoaGFuZGxlLCBkYXRhLCBsZW5ndGgpOworICAgIHJldHVybiBDaHJvbWl1
bUJyaWRnZTo6cmVhZEZyb21GaWxlKGhhbmRsZSwgZGF0YSwgbGVuZ3RoKTsKIH0KIAogaW50IHdy
aXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGlu
dCBsZW5ndGgpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdlOjp3cml0ZVRvRmlsZShoYW5k
bGUsIGRhdGEsIGxlbmd0aCk7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjp3cml0ZVRvRmls
ZShoYW5kbGUsIGRhdGEsIGxlbmd0aCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0xhbmd1YWdlQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vTGFuZ3VhZ2VDaHJvbWl1
bS5jcHAKaW5kZXggZmVkYzRkNTZlMDk2YWUxZWY5YjY4MTdlYjEzOTI1Njg2YWEzZDIxMS4uNjlm
ZTM3MmRlZGMzNWIxZDI4N2IxYjRiZjc1MTYwOWE5MjVjZTdjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vTGFuZ3VhZ2VDaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vTGFuZ3VhZ2VDaHJvbWl1bS5jcHAKQEAgLTMx
LDcgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMYW5ndWFnZS5oIgog
Ci0jaW5jbHVkZSAiUGxhdGZvcm1CcmlkZ2UuaCIKKyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQwLDcgKzQwLDcgQEAgU3RyaW5nIHBsYXRmb3JtRGVmYXVsdExhbmd1YWdlKCkKIHsKICAgICBz
dGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwogICAgIGlmIChjb21wdXRlZERl
ZmF1bHRMYW5ndWFnZS5pc0VtcHR5KCkpCi0gICAgICAgIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdl
ID0gUGxhdGZvcm1CcmlkZ2U6OmNvbXB1dGVkRGVmYXVsdExhbmd1YWdlKCk7CisgICAgICAgIGNv
bXB1dGVkRGVmYXVsdExhbmd1YWdlID0gQ2hyb21pdW1CcmlkZ2U6OmNvbXB1dGVkRGVmYXVsdExh
bmd1YWdlKCk7CiAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9MaW5rSGFzaENocm9taXVt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0xpbmtIYXNoQ2hyb21pdW0u
Y3BwCmluZGV4IDVlMWZmYTQ5ZWUyYjQ5YWVjMzM2MzdkMDA2NjgwMDdjZmFiNzI0ZWMuLjljYjkz
ZWE5MzRmN2Y3Mjc5MmJmMzkzZjY5NWU1YzZhYzYyMTUzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0xpbmtIYXNoQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0xpbmtIYXNoQ2hyb21pdW0uY3BwCkBAIC0zMSwx
OCArMzEsMTggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMaW5rSGFzaC5oIgog
Ci0jaW5jbHVkZSAiUGxhdGZvcm1CcmlkZ2UuaCIKKyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIExpbmtIYXNoIHZpc2l0ZWRMaW5rSGFzaChjb25z
dCBVQ2hhciogdXJsLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtQnJp
ZGdlOjp2aXNpdGVkTGlua0hhc2godXJsLCBsZW5ndGgpOworICAgIHJldHVybiBDaHJvbWl1bUJy
aWRnZTo6dmlzaXRlZExpbmtIYXNoKHVybCwgbGVuZ3RoKTsKIH0KIAogTGlua0hhc2ggdmlzaXRl
ZExpbmtIYXNoKGNvbnN0IEtVUkwmIGJhc2UsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRl
VVJMKQogewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6dmlzaXRlZExpbmtIYXNoKGJhc2Us
IGF0dHJpYnV0ZVVSTCk7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjp2aXNpdGVkTGlua0hh
c2goYmFzZSwgYXR0cmlidXRlVVJMKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vTUlNRVR5cGVSZWdpc3Ry
eUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL01JTUVUeXBl
UmVnaXN0cnlDaHJvbWl1bS5jcHAKaW5kZXggZmVjMGU5YmUxOTg2MDVmYTE2NmJmNzVhNjIwNGFk
NWMyODA3MTM2OC4uOWRmODg0N2VhYmZhNzAyNGQyZjc0N2IxYTdmNjg1ZDRjMmUwMTlkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vTUlNRVR5cGVSZWdpc3Ry
eUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9NSU1F
VHlwZVJlZ2lzdHJ5Q2hyb21pdW0uY3BwCkBAIC0zMSwyMCArMzEsMjAgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAKKyNpbmNsdWRlICJDaHJv
bWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5jbHVkZSAiUGxhdGZv
cm1CcmlkZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhQ2hyb21pdW0uaCIKICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKIC8vIE5PVEU6IFVubGlrZSBvdGhlciBwb3J0cywgd2UgZG9u
J3QgdXNlIHRoZSBzaGFyZWQgaW1wbGVtZW50YXRpb24gYml0cyBpbgogLy8gTUlNRVR5cGVSZWdp
c3RyeS5jcHAuICBJbnN0ZWFkLCB3ZSBuZWVkIHRvIHJvdXRlIG1vc3QgZnVuY3Rpb25zIHZpYSB0
aGUKLS8vIFBsYXRmb3JtQnJpZGdlIHRvIHRoZSBlbWJlZGRlci4KKy8vIENocm9taXVtQnJpZGdl
IHRvIHRoZSBlbWJlZGRlci4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHJpbmcgTUlNRVR5
cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nICZleHQpCiB7
Ci0gICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdlOjptaW1lVHlwZUZvckV4dGVuc2lvbihleHQpOwor
ICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6bWltZVR5cGVGb3JFeHRlbnNpb24oZXh0KTsKIH0K
IAogLy8gUmV0dXJucyB0aGUgZmlsZSBleHRlbnNpb24gaWYgb25lIGlzIGZvdW5kLiAgRG9lcyBu
b3QgaW5jbHVkZSB0aGUgZG90IGluIHRoZQpAQCAtNTUsNyArNTUsNyBAQCBTdHJpbmcgTUlNRVR5
cGVSZWdpc3RyeTo6Z2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5n
JiB0eXBlKQogICAgIC8vIEZJWE1FOiBJcyB0aGlzIHJlYWxseSBuZWNlc3Nhcnk/PwogICAgIFN0
cmluZyBtaW1lVHlwZSA9IHR5cGUuc3Vic3RyaW5nKDAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih0
eXBlLmZpbmQoJzsnKSkpOwogCi0gICAgU3RyaW5nIGV4dCA9IFBsYXRmb3JtQnJpZGdlOjpwcmVm
ZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSh0eXBlKTsKKyAgICBTdHJpbmcgZXh0ID0gQ2hyb21p
dW1CcmlkZ2U6OnByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKHR5cGUpOwogICAgIGlmICgh
ZXh0LmlzRW1wdHkoKSAmJiBleHRbMF0gPT0gJy4nKQogICAgICAgICBleHQgPSBleHQuc3Vic3Ry
aW5nKDEpOwogCkBAIC04MSw3ICs4MSw3IEBAIFN0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRN
SU1FVHlwZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQogCiBib29sIE1JTUVUeXBlUmVnaXN0
cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogeyAK
LSAgICByZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZShtaW1l
VHlwZSk7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjppc1N1cHBvcnRlZEltYWdlTUlNRVR5
cGUobWltZVR5cGUpOwogfQogCiBib29sIE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1h
Z2VSZXNvdXJjZU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCkBAIC05NiwxMiArOTYs
MTIgQEAgYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEltYWdlTUlNRVR5cGVGb3JF
bmNvZGluZyhjb25zdCBTdHJpbmcmIG1pbWVUeXAKIAogYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewot
ICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUo
bWltZVR5cGUpOworICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6aXNTdXBwb3J0ZWRKYXZhU2Ny
aXB0TUlNRVR5cGUobWltZVR5cGUpOwogfQogICAgIAogYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1N1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKLSAg
ICByZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OmlzU3VwcG9ydGVkTm9uSW1hZ2VNSU1FVHlwZShtaW1l
VHlwZSk7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjppc1N1cHBvcnRlZE5vbkltYWdlTUlN
RVR5cGUobWltZVR5cGUpOwogfQogCiBib29sIE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVk
TWVkaWFNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9hcmRDaHJvbWl1bS5jcHAKaW5kZXgg
NmJlYjAxN2E1NmJhYWUwOTYyZWI2ZTgwYWM4Yzc1ZTk4ZGIzMTAyZi4uOTA3YTRiOTMxNTc1YzIw
M2ViMjg0OTFjNTYzMTU5YTE2MmM4YTQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwCkBAIC0zMSwyMCArMzEs
MjAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAKKyNp
bmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIkNsaXBib2FyZFV0aWxpdGllc0No
cm9taXVtLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdt
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFy
c2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5j
bHVkZSAibWFya3VwLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCi0jaW5jbHVkZSAi
UGxhdGZvcm1CcmlkZ2UuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlcklt
YWdlLmgiCi0jaW5jbHVkZSAibWFya3VwLmgiCiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUg
IlNWR05hbWVzLmgiCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxl
Y3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsCiAj
ZW5kaWYKICAgICByZXBsYWNlTkJTUFdpdGhTcGFjZShwbGFpblRleHQpOwogCi0gICAgUGxhdGZv
cm1CcmlkZ2U6OmNsaXBib2FyZFdyaXRlU2VsZWN0aW9uKGh0bWwsIHVybCwgcGxhaW5UZXh0LCBj
YW5TbWFydENvcHlPckRlbGV0ZSk7CisgICAgQ2hyb21pdW1CcmlkZ2U6OmNsaXBib2FyZFdyaXRl
U2VsZWN0aW9uKGh0bWwsIHVybCwgcGxhaW5UZXh0LCBjYW5TbWFydENvcHlPckRlbGV0ZSk7CiB9
CiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQpA
QCAtOTksOSArOTksOSBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCkKICNpZiBPUyhXSU5ET1dTKQogICAgIFN0cmluZyBwbGFpblRleHQodGV4dCk7
CiAgICAgcmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKHBsYWluVGV4dCk7
Ci0gICAgUGxhdGZvcm1CcmlkZ2U6OmNsaXBib2FyZFdyaXRlUGxhaW5UZXh0KHBsYWluVGV4dCk7
CisgICAgQ2hyb21pdW1CcmlkZ2U6OmNsaXBib2FyZFdyaXRlUGxhaW5UZXh0KHBsYWluVGV4dCk7
CiAjZWxzZQotICAgIFBsYXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRXcml0ZVBsYWluVGV4dCh0ZXh0
KTsKKyAgICBDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkV3JpdGVQbGFpblRleHQodGV4dCk7CiAj
ZW5kaWYKIH0KIApAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlU3RyLCBGcmFtZSogZnJhbWUpCiAg
ICAgICAgICAgICB0aXRsZSA9IHVybC5ob3N0KCk7CiAgICAgfQogCi0gICAgUGxhdGZvcm1Ccmlk
Z2U6OmNsaXBib2FyZFdyaXRlVVJMKHVybCwgdGl0bGUpOworICAgIENocm9taXVtQnJpZGdlOjpj
bGlwYm9hcmRXcml0ZVVSTCh1cmwsIHRpdGxlKTsKIH0KIAogdm9pZCBQYXN0ZWJvYXJkOjp3cml0
ZUltYWdlKE5vZGUqIG5vZGUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpAQCAt
MTUwLDE3ICsxNTAsMTcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKE5vZGUqIG5vZGUs
IGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIH0KICAgICBLVVJMIHVybCA9
IHVybFN0cmluZy5pc0VtcHR5KCkgPyBLVVJMKCkgOiBub2RlLT5kb2N1bWVudCgpLT5jb21wbGV0
ZVVSTChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXModXJsU3RyaW5nKSk7CiAKLSAg
ICBQbGF0Zm9ybUJyaWRnZTo6Y2xpcGJvYXJkV3JpdGVJbWFnZShiaXRtYXAsIHVybCwgdGl0bGUp
OworICAgIENocm9taXVtQnJpZGdlOjpjbGlwYm9hcmRXcml0ZUltYWdlKGJpdG1hcCwgdXJsLCB0
aXRsZSk7CiB9CiAKIGJvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNlKCkKIHsKLSAgICBy
ZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OmNsaXBib2FyZElzRm9ybWF0QXZhaWxhYmxlKFBhc3RlYm9h
cmRQcml2YXRlOjpXZWJTbWFydFBhc3RlRm9ybWF0LCBtX3NlbGVjdGlvbk1vZGUgPyBQYXN0ZWJv
YXJkUHJpdmF0ZTo6U2VsZWN0aW9uQnVmZmVyIDogUGFzdGVib2FyZFByaXZhdGU6OlN0YW5kYXJk
QnVmZmVyKTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmNsaXBib2FyZElzRm9ybWF0QXZh
aWxhYmxlKFBhc3RlYm9hcmRQcml2YXRlOjpXZWJTbWFydFBhc3RlRm9ybWF0LCBtX3NlbGVjdGlv
bk1vZGUgPyBQYXN0ZWJvYXJkUHJpdmF0ZTo6U2VsZWN0aW9uQnVmZmVyIDogUGFzdGVib2FyZFBy
aXZhdGU6OlN0YW5kYXJkQnVmZmVyKTsKIH0KIAogU3RyaW5nIFBhc3RlYm9hcmQ6OnBsYWluVGV4
dChGcmFtZSogZnJhbWUpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRS
ZWFkUGxhaW5UZXh0KG1fc2VsZWN0aW9uTW9kZSA/IFBhc3RlYm9hcmRQcml2YXRlOjpTZWxlY3Rp
b25CdWZmZXIgOiBQYXN0ZWJvYXJkUHJpdmF0ZTo6U3RhbmRhcmRCdWZmZXIpOworICAgIHJldHVy
biBDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkUmVhZFBsYWluVGV4dChtX3NlbGVjdGlvbk1vZGUg
PyBQYXN0ZWJvYXJkUHJpdmF0ZTo6U2VsZWN0aW9uQnVmZmVyIDogUGFzdGVib2FyZFByaXZhdGU6
OlN0YW5kYXJkQnVmZmVyKTsKIH0KIAogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBQYXN0
ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxSYW5nZT4g
Y29udGV4dCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCkBAIC0x
NjgsMTAgKzE2OCwxMCBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6
OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUAogICAgIGNob3NlUGxhaW5U
ZXh0ID0gZmFsc2U7CiAgICAgUGFzdGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlciBidWZm
ZXIgPSBtX3NlbGVjdGlvbk1vZGUgPyBQYXN0ZWJvYXJkUHJpdmF0ZTo6U2VsZWN0aW9uQnVmZmVy
IDogUGFzdGVib2FyZFByaXZhdGU6OlN0YW5kYXJkQnVmZmVyOwogCi0gICAgaWYgKFBsYXRmb3Jt
QnJpZGdlOjpjbGlwYm9hcmRJc0Zvcm1hdEF2YWlsYWJsZShQYXN0ZWJvYXJkUHJpdmF0ZTo6SFRN
TEZvcm1hdCwgYnVmZmVyKSkgeworICAgIGlmIChDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkSXNG
b3JtYXRBdmFpbGFibGUoUGFzdGVib2FyZFByaXZhdGU6OkhUTUxGb3JtYXQsIGJ1ZmZlcikpIHsK
ICAgICAgICAgU3RyaW5nIG1hcmt1cDsKICAgICAgICAgS1VSTCBzcmNVUkw7Ci0gICAgICAgIFBs
YXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRSZWFkSFRNTChidWZmZXIsICZtYXJrdXAsICZzcmNVUkwp
OworICAgICAgICBDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkUmVhZEhUTUwoYnVmZmVyLCAmbWFy
a3VwLCAmc3JjVVJMKTsKIAogICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21l
bnQgPQogICAgICAgICAgICAgY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKGZyYW1lLT5kb2N1bWVu
dCgpLCBtYXJrdXAsIHNyY1VSTCwgRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkKTsKQEAgLTE4
MCw3ICsxODAsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRv
Y3VtZW50RnJhZ21lbnQoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUAogICAgIH0KIAogICAgIGlmIChh
bGxvd1BsYWluVGV4dCkgewotICAgICAgICBTdHJpbmcgbWFya3VwID0gUGxhdGZvcm1CcmlkZ2U6
OmNsaXBib2FyZFJlYWRQbGFpblRleHQoYnVmZmVyKTsKKyAgICAgICAgU3RyaW5nIG1hcmt1cCA9
IENocm9taXVtQnJpZGdlOjpjbGlwYm9hcmRSZWFkUGxhaW5UZXh0KGJ1ZmZlcik7CiAgICAgICAg
IGlmICghbWFya3VwLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0
cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0
Zm9ybUJyaWRnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1C
cmlkZ2UuaAppbmRleCBmNWMxZWQ3MDRkMmM3ZWQ4NTI4ZTYzYWJhODBmZWZlOTI4Y2E1N2IzLi5l
Y2I3YjQ1YTcyMTFkZGU1MWI1NDJiNzE3Njk2ZmU4MzJkNjJkOTBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybUJyaWRnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtQnJpZGdlLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMSwzMjMgKzMx
LDE3IEBACiAjaWZuZGVmIFBsYXRmb3JtQnJpZGdlX2gKICNkZWZpbmUgUGxhdGZvcm1CcmlkZ2Vf
aAogCi0jaWYgRU5BQkxFKFdFQl9BVURJTykKLSNpbmNsdWRlICJBdWRpb0J1cy5oIgotI2VuZGlm
Ci0KLSNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCi0jaW5jbHVkZSAiSW1hZ2VTb3VyY2UuaCIKLSNp
bmNsdWRlICJMaW5rSGFzaC5oIgotI2luY2x1ZGUgIlBhc3NSZWZQdHIuaCIKLSNpbmNsdWRlICJQ
YXN0ZWJvYXJkUHJpdmF0ZS5oIgotI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKLQotI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+Ci0KLXR5cGVkZWYgc3RydWN0IE5QT2JqZWN0IE5QT2JqZWN0OwotdHlwZWRlZiBz
dHJ1Y3QgX05QUCBOUFBfdDsKLXR5cGVkZWYgTlBQX3QqIE5QUDsKLQotI2lmIE9TKERBUldJTikK
LXR5cGVkZWYgc3RydWN0IENHRm9udCogQ0dGb250UmVmOwotdHlwZWRlZiB1aW50cHRyX3QgQVRT
Rm9udENvbnRhaW5lclJlZjsKLSNpZmRlZiBfX09CSkNfXwotQGNsYXNzIE5TRm9udDsKLSNlbHNl
Ci1jbGFzcyBOU0ZvbnQ7Ci0jZW5kaWYKLSNlbmRpZiAvLyBPUyhEQVJXSU4pCi0KLSNpZiBPUyhX
SU5ET1dTKQotdHlwZWRlZiBzdHJ1Y3QgSEZPTlRfXyogSEZPTlQ7Ci0jZW5kaWYKKyNpbmNsdWRl
ICJDaHJvbWl1bUJyaWRnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENsaXBi
b2FyZERhdGE7Ci1jbGFzcyBDb2xvcjsKLWNsYXNzIEN1cnNvcjsKLWNsYXNzIERvY3VtZW50Owot
Y2xhc3MgRnJhbWU7Ci1jbGFzcyBHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2U7Ci1jbGFzcyBHZW9s
b2NhdGlvblNlcnZpY2VDaHJvbWl1bTsKLWNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLWNsYXNzIElt
YWdlOwotY2xhc3MgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U7Ci1jbGFzcyBJREJLZXk7Ci1j
bGFzcyBJbnRSZWN0OwotY2xhc3MgS1VSTDsKLWNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsK
LWNsYXNzIFdpZGdldDsKLQotc3RydWN0IENvb2tpZTsKLXN0cnVjdCBGb250UmVuZGVyU3R5bGU7
Ci0KLS8vIEFuIGludGVyZmFjZSB0byB0aGUgZW1iZWRkaW5nIGxheWVyLCB3aGljaCBoYXMgdGhl
IGFiaWxpdHkgdG8gYW5zd2VyCi0vLyBxdWVzdGlvbnMgYWJvdXQgdGhlIHN5c3RlbSBhbmQgc28g
b24uLi4KLQotY2xhc3MgUGxhdGZvcm1CcmlkZ2UgewotcHVibGljOgotICAgIC8vIENhY2hlIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgc3RhdGljIHZvaWQgY2FjaGVNZXRhZGF0YShjb25zdCBLVVJMJiwgZG91YmxlIHJl
c3BvbnNlVGltZSwgY29uc3QgVmVjdG9yPGNoYXI+Jik7Ci0KLSAgICAvLyBDbGlwYm9hcmQgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ICAgIHN0YXRpYyBib29sIGNsaXBib2FyZElzRm9ybWF0QXZhaWxhYmxlKFBhc3RlYm9hcmRQcml2
YXRlOjpDbGlwYm9hcmRGb3JtYXQsIFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRCdWZmZXIp
OwotCi0gICAgc3RhdGljIFN0cmluZyBjbGlwYm9hcmRSZWFkUGxhaW5UZXh0KFBhc3RlYm9hcmRQ
cml2YXRlOjpDbGlwYm9hcmRCdWZmZXIpOwotICAgIHN0YXRpYyB2b2lkIGNsaXBib2FyZFJlYWRI
VE1MKFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRCdWZmZXIsIFN0cmluZyosIEtVUkwqKTsK
LQotICAgIC8vIE9ubHkgdGhlIGNsaXBib2FyZFJlYWQgZnVuY3Rpb25zIHRha2UgYSBidWZmZXIg
YXJndW1lbnQgYmVjYXVzZQotICAgIC8vIENocm9taXVtIGN1cnJlbnRseSB1c2VzIGEgZGlmZmVy
ZW50IHRlY2huaXF1ZSB0byB3cml0ZSB0byBhbHRlcm5hdGUKLSAgICAvLyBjbGlwYm9hcmQgYnVm
ZmVycy4KLSAgICBzdGF0aWMgdm9pZCBjbGlwYm9hcmRXcml0ZVNlbGVjdGlvbihjb25zdCBTdHJp
bmcmLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQg
Y2xpcGJvYXJkV3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIHZvaWQg
Y2xpcGJvYXJkV3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRp
YyB2b2lkIGNsaXBib2FyZFdyaXRlSW1hZ2UoTmF0aXZlSW1hZ2VQdHIsIGNvbnN0IEtVUkwmLCBj
b25zdCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgdm9pZCBjbGlwYm9hcmRXcml0ZURhdGEoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgbWV0YWRhdGEp
OwotCi0gICAgLy8gSW50ZXJmYWNlIGZvciBoYW5kbGluZyBjb3B5IGFuZCBwYXN0ZSwgZHJhZyBh
bmQgZHJvcCwgYW5kIHNlbGVjdGlvbiBjb3B5LgotICAgIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4g
Y2xpcGJvYXJkUmVhZEF2YWlsYWJsZVR5cGVzKFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRC
dWZmZXIsIGJvb2wqIGNvbnRhaW5zRmlsZW5hbWVzKTsKLSAgICBzdGF0aWMgYm9vbCBjbGlwYm9h
cmRSZWFkRGF0YShQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyLCBjb25zdCBTdHJp
bmcmIHR5cGUsIFN0cmluZyYgZGF0YSwgU3RyaW5nJiBtZXRhZGF0YSk7Ci0gICAgc3RhdGljIFZl
Y3RvcjxTdHJpbmc+IGNsaXBib2FyZFJlYWRGaWxlbmFtZXMoUGFzdGVib2FyZFByaXZhdGU6OkNs
aXBib2FyZEJ1ZmZlcik7Ci0KLSAgICAvLyBDb29raWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIHN0YXRpYyB2b2lkIHNl
dENvb2tpZXMoY29uc3QgRG9jdW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB2YWx1
ZSk7Ci0gICAgc3RhdGljIFN0cmluZyBjb29raWVzKGNvbnN0IERvY3VtZW50KiwgY29uc3QgS1VS
TCYpOwotICAgIHN0YXRpYyBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
c3QgRG9jdW1lbnQqLCBjb25zdCBLVVJMJik7Ci0gICAgc3RhdGljIGJvb2wgcmF3Q29va2llcyhj
b25zdCBEb2N1bWVudCosIGNvbnN0IEtVUkwmLCBWZWN0b3I8Q29va2llPiYpOwotICAgIHN0YXRp
YyB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmIGNvb2tpZU5hbWUpOwotICAgIHN0YXRpYyBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0
IERvY3VtZW50Kik7Ci0KLSAgICAvLyBETlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIHN0YXRpYyB2b2lkIHByZWZl
dGNoRE5TKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpOwotCi0gICAgLy8gRmlsZSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICBzdGF0aWMgdm9pZCByZXZlYWxGb2xkZXJJbk9TKGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRp
YyBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIGJvb2wgZGVsZXRl
RmlsZShjb25zdCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWxldGVFbXB0eURpcmVjdG9y
eShjb25zdCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJp
bmcmLCBsb25nIGxvbmcmIHJlc3VsdCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0RmlsZU1vZGlmaWNh
dGlvblRpbWUoY29uc3QgU3RyaW5nJiwgdGltZV90JiByZXN1bHQpOwotICAgIHN0YXRpYyBTdHJp
bmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpOwotICAgIHN0YXRpYyBTdHJpbmcg
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5n
JiBjb21wb25lbnQpOwotICAgIHN0YXRpYyBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBT
dHJpbmcmIHBhdGgpOwotICAgIHN0YXRpYyBTdHJpbmcgZ2V0QWJzb2x1dGVQYXRoKGNvbnN0IFN0
cmluZyYpOwotICAgIHN0YXRpYyBib29sIGlzRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOwotICAg
IHN0YXRpYyBLVVJMIGZpbGVQYXRoVG9VUkwoY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIFBs
YXRmb3JtRmlsZUhhbmRsZSBvcGVuRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9k
ZSk7Ci0gICAgc3RhdGljIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYpOwotICAg
IHN0YXRpYyBsb25nIGxvbmcgc2Vla0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25nIGxvbmcg
b2Zmc2V0LCBGaWxlU2Vla09yaWdpbik7Ci0gICAgc3RhdGljIGJvb2wgdHJ1bmNhdGVGaWxlKFBs
YXRmb3JtRmlsZUhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCk7Ci0gICAgc3RhdGljIGludCByZWFk
RnJvbUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlLCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKTsKLSAg
ICBzdGF0aWMgaW50IHdyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSwgY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCk7Ci0KLSAgICAvLyBGb250IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotI2lmIE9TKFdJTkRPV1Mp
Ci0gICAgc3RhdGljIGJvb2wgZW5zdXJlRm9udExvYWRlZChIRk9OVCk7Ci0jZW5kaWYKLSNpZiBP
UyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkKLSAgICBzdGF0aWMgdm9pZCBnZXRSZW5kZXJTdHlsZUZv
clN0cmlrZShjb25zdCBjaGFyKiBmYW1pbHksIGludCBzaXplQW5kU3R5bGUsIEZvbnRSZW5kZXJT
dHlsZSogcmVzdWx0KTsKLSAgICBzdGF0aWMgU3RyaW5nIGdldEZvbnRGYW1pbHlGb3JDaGFyYWN0
ZXJzKGNvbnN0IFVDaGFyKiwgc2l6ZV90IG51bUNoYXJhY3RlcnMpOwotI2VuZGlmCi0jaWYgT1Mo
REFSV0lOKQotICAgIHN0YXRpYyBib29sIGxvYWRGb250KE5TRm9udCogc3JjRm9udCwgQVRTRm9u
dENvbnRhaW5lclJlZiogb3V0KTsKLSNlbmRpZgotCi0gICAgLy8gRm9ybXMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBz
dGF0aWMgdm9pZCBub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKGNvbnN0IERvY3VtZW50Kik7Ci0KLSAg
ICAvLyBEYXRhYmFzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotICAgIC8vIFJldHVybnMgYSBoYW5kbGUgdG8gdGhlIERCIGZpbGUg
YW5kIG9vcHRpb25hbGx5IGEgaGFuZGxlIHRvIGl0cyBjb250YWluaW5nIGRpcmVjdG9yeQotICAg
IHN0YXRpYyBQbGF0Zm9ybUZpbGVIYW5kbGUgZGF0YWJhc2VPcGVuRmlsZShjb25zdCBTdHJpbmcm
IHZmc0ZsZU5hbWUsIGludCBkZXNpcmVkRmxhZ3MpOwotICAgIC8vIFJldHVybnMgYSBTUUxpdGUg
Y29kZSAoU1FMSVRFX09LID0gMCwgb24gc3VjY2VzcykKLSAgICBzdGF0aWMgaW50IGRhdGFiYXNl
RGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIHZmc0ZpbGVOYW1lLCBib29sIHN5bmNEaXIgPSBmYWxz
ZSk7Ci0gICAgLy8gUmV0dXJucyB0aGUgYXR0cmlidXRlcyBvZiB0aGUgREIgZmlsZQotICAgIHN0
YXRpYyBsb25nIGRhdGFiYXNlR2V0RmlsZUF0dHJpYnV0ZXMoY29uc3QgU3RyaW5nJiB2ZnNGaWxl
TmFtZSk7Ci0gICAgLy8gUmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgREIgZmlsZQotICAgIHN0YXRp
YyBsb25nIGxvbmcgZGF0YWJhc2VHZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHZmc0ZpbGVOYW1l
KTsKLQotICAgIC8vIEluZGV4ZWREQiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2U+IGlkYkZhY3RvcnkoKTsKLSAgICBzdGF0aWMgdm9pZCBpZGJTaHV0
ZG93bigpOwotICAgIC8vIEV4dHJhY3RzIGtleVBhdGggZnJvbSB2YWx1ZXMgYW5kIHJldHVybnMg
dGhlIGNvcnJlc3BvbmRpbmcga2V5cy4KLSAgICBzdGF0aWMgdm9pZCBjcmVhdGVJREJLZXlzRnJv
bVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiA+JiB2YWx1ZXMsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgVmVjdG9yPFJl
ZlB0cjxJREJLZXk+ID4mIGtleXMpOwotCi0gICAgLy8gSmF2YVNjcmlwdCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBzdGF0aWMg
dm9pZCBub3RpZnlKU091dE9mTWVtb3J5KEZyYW1lKik7Ci0gICAgc3RhdGljIGJvb2wgYWxsb3dT
Y3JpcHREZXNwaXRlU2V0dGluZ3MoY29uc3QgS1VSTCYgZG9jdW1lbnRVUkwpOwotCi0gICAgLy8g
S2V5Z2VuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgICBzdGF0aWMgU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5n
ZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlLCBj
b25zdCBLVVJMJik7Ci0KLSAgICAvLyBMYW5ndWFnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIHN0YXRpYyBTdHJpbmcgY29t
cHV0ZWREZWZhdWx0TGFuZ3VhZ2UoKTsKLQotICAgIC8vIExheW91dFRlc3RNb2RlIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgc3RhdGlj
IGJvb2wgbGF5b3V0VGVzdE1vZGUoKTsKLQotICAgIC8vIE1lbW9yeSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgLy8gUmV0
dXJucyB0aGUgY3VycmVudCBzcGFjZSBhbGxvY2F0ZWQgZm9yIHRoZSBwYWdlZmlsZSwgaW4gTUIu
Ci0gICAgLy8gVGhhdCBpcyBjb21taXR0ZWQgc2l6ZSBmb3IgV2luZG93cyBhbmQgdmlydHVhbCBt
ZW1vcnkgc2l6ZSBmb3IgUE9TSVgKLSAgICBzdGF0aWMgaW50IG1lbW9yeVVzYWdlTUIoKTsKLQot
ICAgIC8vIFNhbWUgYXMgYWJvdmUsIGJ1dCBhbHdheXMgcmV0dXJucyBhY3R1YWwgdmFsdWUsIHdp
dGhvdXQgYW55IGNhY2hlcy4KLSAgICBzdGF0aWMgaW50IGFjdHVhbE1lbW9yeVVzYWdlTUIoKTsK
LQotICAgIC8vIE1pbWVUeXBlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRJbWFnZU1J
TUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwotICAgIHN0YXRpYyBib29sIGlzU3VwcG9y
dGVkSmF2YVNjcmlwdE1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwotICAgIHN0YXRp
YyBib29sIGlzU3VwcG9ydGVkTm9uSW1hZ2VNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KTsKLSAgICBzdGF0aWMgU3RyaW5nIG1pbWVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYg
ZmlsZUV4dGVuc2lvbik7Ci0gICAgc3RhdGljIFN0cmluZyBtaW1lVHlwZUZyb21GaWxlKGNvbnN0
IFN0cmluZyYgZmlsZVBhdGgpOwotICAgIHN0YXRpYyBTdHJpbmcgcHJlZmVycmVkRXh0ZW5zaW9u
Rm9yTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7Ci0KLSAgICAvLyBQbHVnaW4gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotICAgIHN0YXRpYyBib29sIHBsdWdpbnMoYm9vbCByZWZyZXNoLCBWZWN0b3I8UGx1Z2luSW5m
bz4qKTsKLSAgICBzdGF0aWMgTlBPYmplY3QqIHBsdWdpblNjcmlwdGFibGVPYmplY3QoV2lkZ2V0
Kik7Ci0gICAgc3RhdGljIGJvb2wgcG9wdXBzQWxsb3dlZChOUFApOwotCi0gICAgLy8gUmVzb3Vy
Y2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbWFnZT4gbG9hZFBsYXRmb3JtSW1hZ2VSZXNv
dXJjZShjb25zdCBjaGFyKiBuYW1lKTsKLQotI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgc3Rh
dGljIFBhc3NPd25QdHI8QXVkaW9CdXM+IGxvYWRQbGF0Zm9ybUF1ZGlvUmVzb3VyY2UoY29uc3Qg
Y2hhciogbmFtZSwgZG91YmxlIHNhbXBsZVJhdGUpOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPEF1
ZGlvQnVzPiBkZWNvZGVBdWRpb0ZpbGVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCwgZG91
YmxlIHNhbXBsZVJhdGUpOwotI2VuZGlmCi0KLSAgICAvLyBTYW5kYm94IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIHN0YXRp
YyBib29sIHNhbmRib3hFbmFibGVkKCk7Ci0KLSAgICAvLyBTY3JlZW4gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIHN0YXRp
YyBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0Kik7Ci0gICAgc3RhdGljIGludCBzY3JlZW5EZXB0aFBl
ckNvbXBvbmVudChXaWRnZXQqKTsKLSAgICBzdGF0aWMgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUo
V2lkZ2V0Kik7Ci0gICAgc3RhdGljIEludFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKTsKLSAgICBz
dGF0aWMgSW50UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCopOwotCi0gICAgLy8gU2hh
cmVkVGltZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLSAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24odm9p
ZCAoKmZ1bmMpKCkpOwotICAgIHN0YXRpYyB2b2lkIHNldFNoYXJlZFRpbWVyRmlyZVRpbWUoZG91
YmxlKTsKLSAgICBzdGF0aWMgdm9pZCBzdG9wU2hhcmVkVGltZXIoKTsKLQotICAgIC8vIFN0YXRz
Q291bnRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0gICAgc3RhdGljIHZvaWQgZGVjcmVtZW50U3RhdHNDb3VudGVyKGNvbnN0IGNoYXIq
IG5hbWUpOwotICAgIHN0YXRpYyB2b2lkIGluY3JlbWVudFN0YXRzQ291bnRlcihjb25zdCBjaGFy
KiBuYW1lKTsKLSAgICBzdGF0aWMgdm9pZCBoaXN0b2dyYW1DdXN0b21Db3VudHMoY29uc3QgY2hh
ciogbmFtZSwgaW50IHNhbXBsZSwgaW50IG1pbiwgaW50IG1heCwgaW50IGJ1Y2tldENvdW50KTsK
LSAgICBzdGF0aWMgdm9pZCBoaXN0b2dyYW1FbnVtZXJhdGlvbihjb25zdCBjaGFyKiBuYW1lLCBp
bnQgc2FtcGxlLCBpbnQgYm91bmRhcnlWYWx1ZSk7Ci0KLSAgICAvLyBTdWRkZW4gVGVybWluYXRp
b24KLSAgICBzdGF0aWMgdm9pZCBzdWRkZW5UZXJtaW5hdGlvbkNoYW5nZWQoYm9vbCBlbmFibGVk
KTsKLQotICAgIC8vIFN5c3RlbVRpbWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgc3RhdGljIGRvdWJsZSBjdXJyZW50VGltZSgp
OwotCi0gICAgLy8gVGhlbWluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNpZiBPUyhXSU5ET1dTKQotICAgIHN0YXRpYyB2b2lk
IHBhaW50QnV0dG9uKAotICAgICAgICBHcmFwaGljc0NvbnRleHQqLCBpbnQgcGFydCwgaW50IHN0
YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBjb25zdCBJbnRSZWN0Jik7Ci0gICAgc3RhdGljIHZvaWQg
cGFpbnRNZW51TGlzdCgKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0KiwgaW50IHBhcnQsIGludCBz
dGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwgY29uc3QgSW50UmVjdCYpOwotICAgIHN0YXRpYyB2b2lk
IHBhaW50U2Nyb2xsYmFyQXJyb3coCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBzdGF0
ZSwgaW50IGNsYXNzaWNTdGF0ZSwgY29uc3QgSW50UmVjdCYpOwotICAgIHN0YXRpYyB2b2lkIHBh
aW50U2Nyb2xsYmFyVGh1bWIoCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBwYXJ0LCBp
bnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsIGNvbnN0IEludFJlY3QmKTsKLSAgICBzdGF0aWMg
dm9pZCBwYWludFNjcm9sbGJhclRyYWNrKAotICAgICAgICBHcmFwaGljc0NvbnRleHQqLCBpbnQg
cGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLCBjb25zdCBJbnRSZWN0JiwgY29uc3Qg
SW50UmVjdCYgYWxpZ25SZWN0KTsKLSAgICBzdGF0aWMgdm9pZCBwYWludFNwaW5CdXR0b24oCi0g
ICAgICAgIEdyYXBoaWNzQ29udGV4dCosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2lj
U3RhdGUsIGNvbnN0IEludFJlY3QmKTsKLSAgICBzdGF0aWMgdm9pZCBwYWludFRleHRGaWVsZCgK
LSAgICAgICAgR3JhcGhpY3NDb250ZXh0KiwgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNz
aWNTdGF0ZSwgY29uc3QgSW50UmVjdCYsIGNvbnN0IENvbG9yJiwgYm9vbCBmaWxsQ29udGVudEFy
ZWEsIGJvb2wgZHJhd0VkZ2VzKTsKLSAgICBzdGF0aWMgdm9pZCBwYWludFRyYWNrYmFyKAotICAg
ICAgICBHcmFwaGljc0NvbnRleHQqLCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0
YXRlLCBjb25zdCBJbnRSZWN0Jik7Ci0gICAgc3RhdGljIHZvaWQgcGFpbnRQcm9ncmVzc0JhcigK
LSAgICAgICAgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgYmFyUmVjdCwgY29uc3Qg
SW50UmVjdCYgdmFsdWVSZWN0LCBib29sIGRldGVybWluYXRlLCBkb3VibGUgYW5pbWF0ZWRTZWNv
bmRzKTsKLSNlbGlmIE9TKExJTlVYKQotICAgIC8vIFRoZSBVSSBwYXJ0IHdoaWNoIGlzIGJlaW5n
IGFjY2Vzc2VkLgotICAgIGVudW0gVGhlbWVQYXJ0IHsKLSAgICAgICAgUGFydFNjcm9sbGJhckRv
d25BcnJvdywKLSAgICAgICAgUGFydFNjcm9sbGJhckxlZnRBcnJvdywKLSAgICAgICAgUGFydFNj
cm9sbGJhclJpZ2h0QXJyb3csCi0gICAgICAgIFBhcnRTY3JvbGxiYXJVcEFycm93LAotICAgICAg
ICBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRodW1iLAotICAgICAgICBQYXJ0U2Nyb2xsYmFyVmVy
dGljYWxUaHVtYiwKLSAgICAgICAgUGFydFNjcm9sbGJhckhvcml6b250YWxUcmFjaywKLSAgICAg
ICAgUGFydFNjcm9sbGJhclZlcnRpY2FsVHJhY2ssCi0gICAgfTsKLQotICAgIC8vIFRoZSBjdXJy
ZW50IHN0YXRlIG9mIHRoZSBhc3NvY2lhdGVkIFBhcnQuCi0gICAgZW51bSBUaGVtZVBhaW50U3Rh
dGUgewotICAgICAgICBTdGF0ZURpc2FibGVkLAotICAgICAgICBTdGF0ZUhvdmVyLAotICAgICAg
ICBTdGF0ZU5vcm1hbCwKLSAgICAgICAgU3RhdGVQcmVzc2VkLAotICAgIH07Ci0KLSAgICBzdHJ1
Y3QgU2Nyb2xsYmFyVHJhY2tFeHRyYVBhcmFtcyB7Ci0gICAgICAgIC8vIFRoZSBib3VuZHMgb2Yg
dGhlIGVudGlyZSB0cmFjaywgYXMgb3Bwb3NlZCB0byB0aGUgcGFydCBiZWluZyBwYWludGVkLgot
ICAgICAgICBpbnQgdHJhY2tYOwotICAgICAgICBpbnQgdHJhY2tZOwotICAgICAgICBpbnQgdHJh
Y2tXaWR0aDsKLSAgICAgICAgaW50IHRyYWNrSGVpZ2h0OwotICAgIH07Ci0KLSAgICB1bmlvbiBU
aGVtZVBhaW50RXh0cmFQYXJhbXMgewotICAgICAgICBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1z
IHNjcm9sbGJhclRyYWNrOwotICAgIH07Ci0KLSAgICAvLyBHZXRzIHRoZSBzaXplIG9mIHRoZSBn
aXZlbiB0aGVtZSBwYXJ0LiBGb3IgdmFyaWFibGUgc2l6ZWQgaXRlbXMKLSAgICAvLyBsaWtlIHZl
cnRpY2FsIHNjcm9sbGJhciB0aHVtYnMsIHRoZSB3aWR0aCB3aWxsIGJlIHRoZSByZXF1aXJlZCB3
aWR0aCBvZgotICAgIC8vIHRoZSB0cmFjayB3aGlsZSB0aGUgaGVpZ2h0IHdpbGwgYmUgdGhlIG1p
bmltdW0gaGVpZ2h0LgotICAgIHN0YXRpYyBJbnRTaXplIGdldFRoZW1lUGFydFNpemUoVGhlbWVQ
YXJ0KTsKLSAgICAvLyBQYWludCB0aGUgZ2l2ZW4gdGhlIGdpdmVuIHRoZW1lIHBhcnQuCi0gICAg
c3RhdGljIHZvaWQgcGFpbnRUaGVtZVBhcnQoR3JhcGhpY3NDb250ZXh0KiwgVGhlbWVQYXJ0LCBU
aGVtZVBhaW50U3RhdGUsIGNvbnN0IEludFJlY3QmLCBjb25zdCBUaGVtZVBhaW50RXh0cmFQYXJh
bXMqKTsKLSNlbGlmIE9TKERBUldJTikKLSAgICBlbnVtIFRoZW1lUGFpbnRTdGF0ZSB7Ci0gICAg
ICAgIFN0YXRlRGlzYWJsZWQsCi0gICAgICAgIFN0YXRlSW5hY3RpdmUsCi0gICAgICAgIFN0YXRl
QWN0aXZlLAotICAgICAgICBTdGF0ZVByZXNzZWQsCi0gICAgfTsKLQotICAgIGVudW0gVGhlbWVQ
YWludFNpemUgewotICAgICAgICBTaXplUmVndWxhciwKLSAgICAgICAgU2l6ZVNtYWxsLAotICAg
IH07Ci0KLSAgICBlbnVtIFRoZW1lUGFpbnRTY3JvbGxiYXJPcmllbnRhdGlvbiB7Ci0gICAgICAg
IFNjcm9sbGJhck9yaWVudGF0aW9uSG9yaXpvbnRhbCwKLSAgICAgICAgU2Nyb2xsYmFyT3JpZW50
YXRpb25WZXJ0aWNhbCwKLSAgICB9OwotCi0gICAgZW51bSBUaGVtZVBhaW50U2Nyb2xsYmFyUGFy
ZW50IHsKLSAgICAgICAgU2Nyb2xsYmFyUGFyZW50U2Nyb2xsVmlldywKLSAgICAgICAgU2Nyb2xs
YmFyUGFyZW50UmVuZGVyTGF5ZXIsCi0gICAgfTsKLQotICAgIHN0cnVjdCBUaGVtZVBhaW50U2Ny
b2xsYmFySW5mbyB7Ci0gICAgICAgIFRoZW1lUGFpbnRTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmll
bnRhdGlvbjsKLSAgICAgICAgVGhlbWVQYWludFNjcm9sbGJhclBhcmVudCBwYXJlbnQ7Ci0gICAg
ICAgIGludCBtYXhWYWx1ZTsKLSAgICAgICAgaW50IGN1cnJlbnRWYWx1ZTsKLSAgICAgICAgaW50
IHZpc2libGVTaXplOwotICAgICAgICBpbnQgdG90YWxTaXplOwotICAgIH07Ci0KLSAgICBzdGF0
aWMgdm9pZCBwYWludFNjcm9sbGJhclRodW1iKEdyYXBoaWNzQ29udGV4dCosIFRoZW1lUGFpbnRT
dGF0ZSwgVGhlbWVQYWludFNpemUsIGNvbnN0IEludFJlY3QmLCBjb25zdCBUaGVtZVBhaW50U2Ny
b2xsYmFySW5mbyYpOwotI2VuZGlmCi0KLSAgICAvLyBUcmFjZSBFdmVudCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIHN0YXRpYyB2
b2lkIHRyYWNlRXZlbnRCZWdpbihjb25zdCBjaGFyKiBuYW1lLCB2b2lkKiwgY29uc3QgY2hhciog
ZXh0cmEpOwotICAgIHN0YXRpYyB2b2lkIHRyYWNlRXZlbnRFbmQoY29uc3QgY2hhciogbmFtZSwg
dm9pZCosIGNvbnN0IGNoYXIqIGV4dHJhKTsKLQotICAgIC8vIFZpc2l0ZWQgbGlua3MgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgc3Rh
dGljIExpbmtIYXNoIHZpc2l0ZWRMaW5rSGFzaChjb25zdCBVQ2hhciogdXJsLCB1bnNpZ25lZCBs
ZW5ndGgpOwotICAgIHN0YXRpYyBMaW5rSGFzaCB2aXNpdGVkTGlua0hhc2goY29uc3QgS1VSTCYg
YmFzZSwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVVUkwpOwotICAgIHN0YXRpYyBib29s
IGlzTGlua1Zpc2l0ZWQoTGlua0hhc2gpOwotfTsKKy8vIEZJWE1FOiBBIGJldHRlciBuYW1lIGZv
ciBDaHJvbWl1bUJyaWRnZSBpcyBQbGF0Zm9ybUJyaWRnZS4gQW5kcm9pZCBhbHJlYWR5CisvLyB1
c2VzIFBsYXRmb3JtQnJpZGdlIHNvIHRoZSBjb2RlIHRoYXQgaXMgc2hhcmVkIGFtb25nIHRoZSBB
bmRyb2lkIGFuZCBDaHJvbWl1bQorLy8gcG9ydHMgaXMgZ3JhZHVhbGx5IG1vdmluZyB0b3dhcmRz
IHVzaW5nIFBsYXRmb3JtQnJpZGdlLiBPbmNlIHRoZSBBbmRyb2lkCisvLyB1bmZvcmtpbmcgaXMg
ZG9uZSwgd2Ugd2lsbCBjaGFuZ2UgdGhlIG5hbWUgb2YgQ2hyb21pdW1CcmlkZ2UgdG8gUGxhdGZv
cm1CcmlkZ2UKKy8vIGFuZCBtZXJnZSB0aGUgdHdvIGNsYXNzZXMgaW50byBvbmUgdGhhdCB3aWxs
IGJlIHNoYXJlZCBieSBib3RoIHBvcnRzLgordHlwZWRlZiBDaHJvbWl1bUJyaWRnZSBQbGF0Zm9y
bUJyaWRnZTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYKKyNlbmRpZiAvLyBQ
bGF0Zm9ybUJyaWRnZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCmluZGV4IDM1ZDUwMTg5ZTA4Zjdk
NzYwM2U5YzY0NDkxZDUwN2U1MWUzMzkxNDYuLmU2NTllZjVlNjllOTQ1MjMzNjMwMjNkZWQ5ZTA2
YjgxMWNmNDczY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCkBAIC0zMSwzNCArMzEsMzQgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogCisjaW5j
bHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAi
UGxhdGZvcm1CcmlkZ2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbnQgc2NyZWVuRGVw
dGgoV2lkZ2V0KiB3aWRnZXQpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdlOjpzY3JlZW5E
ZXB0aCh3aWRnZXQpOworICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6c2NyZWVuRGVwdGgod2lk
Z2V0KTsKIH0KIAogaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCogd2lkZ2V0KQog
ewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQod2lk
Z2V0KTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50
KHdpZGdldCk7CiB9CiAKIGJvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCogd2lkZ2V0KQog
ewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6c2NyZWVuSXNNb25vY2hyb21lKHdpZGdldCk7
CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpzY3JlZW5Jc01vbm9jaHJvbWUod2lkZ2V0KTsK
IH0KIAogRmxvYXRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0KiB3aWRnZXQpCiB7Ci0gICAgcmV0dXJu
IFBsYXRmb3JtQnJpZGdlOjpzY3JlZW5SZWN0KHdpZGdldCk7CisgICAgcmV0dXJuIENocm9taXVt
QnJpZGdlOjpzY3JlZW5SZWN0KHdpZGdldCk7CiB9CiAKIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFi
bGVSZWN0KFdpZGdldCogd2lkZ2V0KQogewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6c2Ny
ZWVuQXZhaWxhYmxlUmVjdCh3aWRnZXQpOworICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6c2Ny
ZWVuQXZhaWxhYmxlUmVjdCh3aWRnZXQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9SZWFkYWJsZURhdGFP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUmVhZGFibGVEYXRh
T2JqZWN0LmNwcAppbmRleCBkYmY0NzM5MGQ2OWY5YmM3NWY3NjEwNmJiMmFmMDU1M2M0Mjc2OGM2
Li45N2M0ODFiNzUyNjg5NWU2NDk0MWJiOTk1OWFmOGQwMDBkYTc4NGM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9SZWFkYWJsZURhdGFPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1JlYWRhYmxlRGF0YU9iamVjdC5j
cHAKQEAgLTMxLDEwICszMSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJl
YWRhYmxlRGF0YU9iamVjdC5oIgogCisjaW5jbHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIKICNpbmNs
dWRlICJDbGlwYm9hcmRNaW1lVHlwZXMuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAjaW5j
bHVkZSAiUGFzdGVib2FyZFByaXZhdGUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgwLDE5ICs4MCwxOSBAQCBTdHJpbmcgUmVhZGFi
bGVEYXRhT2JqZWN0OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3VjY2VlZGVk
KSBjb25zdAogICAgICAgICAgICAgICAgIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCkt
PmlzU2VsZWN0aW9uTW9kZSgpID8KICAgICAgICAgICAgICAgICBQYXN0ZWJvYXJkUHJpdmF0ZTo6
U2VsZWN0aW9uQnVmZmVyIDoKICAgICAgICAgICAgICAgICBQYXN0ZWJvYXJkUHJpdmF0ZTo6U3Rh
bmRhcmRCdWZmZXI7Ci0gICAgICAgICAgICBkYXRhID0gUGxhdGZvcm1CcmlkZ2U6OmNsaXBib2Fy
ZFJlYWRQbGFpblRleHQoYnVmZmVyKTsKKyAgICAgICAgICAgIGRhdGEgPSBDaHJvbWl1bUJyaWRn
ZTo6Y2xpcGJvYXJkUmVhZFBsYWluVGV4dChidWZmZXIpOwogICAgICAgICB9IGVsc2UgaWYgKHR5
cGUgPT0gbWltZVR5cGVUZXh0SFRNTCkgewogICAgICAgICAgICAgUGFzdGVib2FyZFByaXZhdGU6
OkNsaXBib2FyZEJ1ZmZlciBidWZmZXIgPQogICAgICAgICAgICAgICAgIFBhc3RlYm9hcmQ6Omdl
bmVyYWxQYXN0ZWJvYXJkKCktPmlzU2VsZWN0aW9uTW9kZSgpID8KICAgICAgICAgICAgICAgICBQ
YXN0ZWJvYXJkUHJpdmF0ZTo6U2VsZWN0aW9uQnVmZmVyIDoKICAgICAgICAgICAgICAgICBQYXN0
ZWJvYXJkUHJpdmF0ZTo6U3RhbmRhcmRCdWZmZXI7CiAgICAgICAgICAgICBLVVJMIGlnbm9yZWRT
b3VyY2VVUkw7Ci0gICAgICAgICAgICBQbGF0Zm9ybUJyaWRnZTo6Y2xpcGJvYXJkUmVhZEhUTUwo
YnVmZmVyLCAmZGF0YSwgJmlnbm9yZWRTb3VyY2VVUkwpOworICAgICAgICAgICAgQ2hyb21pdW1C
cmlkZ2U6OmNsaXBib2FyZFJlYWRIVE1MKGJ1ZmZlciwgJmRhdGEsICZpZ25vcmVkU291cmNlVVJM
KTsKICAgICAgICAgfQogICAgICAgICBzdWNjZWVkZWQgPSAhZGF0YS5pc0VtcHR5KCk7CiAgICAg
ICAgIHJldHVybiBkYXRhOwogICAgIH0KLSAgICBzdWNjZWVkZWQgPSBQbGF0Zm9ybUJyaWRnZTo6
Y2xpcGJvYXJkUmVhZERhdGEoCisgICAgc3VjY2VlZGVkID0gQ2hyb21pdW1CcmlkZ2U6OmNsaXBi
b2FyZFJlYWREYXRhKAogICAgICAgICBjbGlwYm9hcmRCdWZmZXIobV9jbGlwYm9hcmRUeXBlKSwg
dHlwZSwgZGF0YSwgaWdub3JlZE1ldGFkYXRhKTsKICAgICByZXR1cm4gZGF0YTsKIH0KQEAgLTEw
MSw3ICsxMDEsNyBAQCBTdHJpbmcgUmVhZGFibGVEYXRhT2JqZWN0Ojp1cmxUaXRsZSgpIGNvbnN0
CiB7CiAgICAgU3RyaW5nIGlnbm9yZWREYXRhOwogICAgIFN0cmluZyB1cmxUaXRsZTsKLSAgICBQ
bGF0Zm9ybUJyaWRnZTo6Y2xpcGJvYXJkUmVhZERhdGEoCisgICAgQ2hyb21pdW1CcmlkZ2U6OmNs
aXBib2FyZFJlYWREYXRhKAogICAgICAgICBjbGlwYm9hcmRCdWZmZXIobV9jbGlwYm9hcmRUeXBl
KSwgbWltZVR5cGVUZXh0VVJJTGlzdCwgaWdub3JlZERhdGEsIHVybFRpdGxlKTsKICAgICByZXR1
cm4gdXJsVGl0bGU7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAgS1VSTCBSZWFkYWJsZURhdGFPYmpl
Y3Q6Omh0bWxCYXNlVXJsKCkgY29uc3QKIHsKICAgICBTdHJpbmcgaWdub3JlZERhdGE7CiAgICAg
U3RyaW5nIGh0bWxCYXNlVXJsOwotICAgIFBsYXRmb3JtQnJpZGdlOjpjbGlwYm9hcmRSZWFkRGF0
YSgKKyAgICBDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkUmVhZERhdGEoCiAgICAgICAgIGNsaXBi
b2FyZEJ1ZmZlcihtX2NsaXBib2FyZFR5cGUpLCBtaW1lVHlwZVRleHRIVE1MLCBpZ25vcmVkRGF0
YSwgaHRtbEJhc2VVcmwpOwogICAgIHJldHVybiBLVVJMKFBhcnNlZFVSTFN0cmluZywgaHRtbEJh
c2VVcmwpOwogfQpAQCAtMTIzLDcgKzEyMyw3IEBAIGJvb2wgUmVhZGFibGVEYXRhT2JqZWN0Ojpj
b250YWluc0ZpbGVuYW1lcygpIGNvbnN0CiAKIFZlY3RvcjxTdHJpbmc+IFJlYWRhYmxlRGF0YU9i
amVjdDo6ZmlsZW5hbWVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OmNs
aXBib2FyZFJlYWRGaWxlbmFtZXMoY2xpcGJvYXJkQnVmZmVyKG1fY2xpcGJvYXJkVHlwZSkpOwor
ICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkUmVhZEZpbGVuYW1lcyhjbGlwYm9h
cmRCdWZmZXIobV9jbGlwYm9hcmRUeXBlKSk7CiB9CiAKIHZvaWQgUmVhZGFibGVEYXRhT2JqZWN0
OjplbnN1cmVUeXBlQ2FjaGVJbml0aWFsaXplZCgpIGNvbnN0CkBAIC0xMzEsNyArMTMxLDcgQEAg
dm9pZCBSZWFkYWJsZURhdGFPYmplY3Q6OmVuc3VyZVR5cGVDYWNoZUluaXRpYWxpemVkKCkgY29u
c3QKICAgICBpZiAobV9pc1R5cGVDYWNoZUluaXRpYWxpemVkKQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX3R5cGVzID0gUGxhdGZvcm1CcmlkZ2U6OmNsaXBib2FyZFJlYWRBdmFpbGFibGVUeXBl
cygKKyAgICBtX3R5cGVzID0gQ2hyb21pdW1CcmlkZ2U6OmNsaXBib2FyZFJlYWRBdmFpbGFibGVU
eXBlcygKICAgICAgICAgY2xpcGJvYXJkQnVmZmVyKG1fY2xpcGJvYXJkVHlwZSksICZtX2NvbnRh
aW5zRmlsZW5hbWVzKTsKICAgICBtX2lzVHlwZUNhY2hlSW5pdGlhbGl6ZWQgPSB0cnVlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU1NMS2V5R2VuZXJh
dG9yQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU1NMS2V5
R2VuZXJhdG9yQ2hyb21pdW0uY3BwCmluZGV4IDY0Njc3NjRkM2YxYThlOGE2MzZiZDU0MzA5YTJm
ZjdiMGUxZTFiMDQuLjQ5ZDk1MTcxNzM4OTcwMmExMTM3ZjMxMjA5Y2MyYmE0OWE0YTAwNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NTTEtleUdlbmVyYXRv
ckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TU0xL
ZXlHZW5lcmF0b3JDaHJvbWl1bS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJTU0xLZXlHZW5lcmF0b3IuaCIKIAotI2luY2x1ZGUgIlBsYXRmb3Jt
QnJpZGdlLmgiCisjaW5jbHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MSw3ICs1MSw3IEBAIFN0cmlu
ZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IGNoYWxsZW5nZVN0cmluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgS1VSTCYgdXJsKQogewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6c2lnbmVk
UHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKGtleVNpemVJbmRleCwKKyAgICByZXR1cm4gQ2hy
b21pdW1CcmlkZ2U6OnNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyhrZXlTaXplSW5k
ZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hhbGxlbmdlU3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW0u
Y3BwCmluZGV4IGZlMDk1NTM3MDVmYjk4ZTNkOWY0YTE0MDM5MGQyMDc4ZGQ1MWJjZTMuLjIzNGQw
ZWUyY2NjYzMyY2Q5ZmYwOWFmNGRlZTI2MjhmYmViMjg5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW0u
Y3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Ny
b2xsYmFyVGhlbWVDaHJvbWl1bS5oIgogCi0jaW5jbHVkZSAiUGxhdGZvcm1CcmlkZ2UuaCIKKyNp
bmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5o
IgogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlNjcm9sbGJhckNsaWVudC5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhl
bWVDaHJvbWl1bUxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Nj
cm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKaW5kZXggZTE3M2RmZjljZGRjYjAzY2YzNWM1
MGYxZmQ5MzJmNTQ3YTU5MTIzNi4uYmExMDk1MzA4MGIwNDhmNTkwNmYyZGQzZjU1NDE3MDY5ZjZi
NzVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xs
YmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXguY3BwCkBAIC0zMSw3ICszMSw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxp
bnV4LmgiCiAKLSNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgorI2luY2x1ZGUgIkNocm9taXVt
QnJpZGdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Ny
b2xsYmFyLmgiCiAKQEAgLTQ2LDIyICs0NiwyMiBAQCBTY3JvbGxiYXJUaGVtZSogU2Nyb2xsYmFy
VGhlbWU6Om5hdGl2ZVRoZW1lKCkKIGludCBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6OnNj
cm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSBjb250cm9sU2l6ZSkKIHsKICAg
ICAvLyBIb3JpeiBhbmQgVmVydCBzY3JvbGxiYXJzIGFyZSB0aGUgc2FtZSB0aGlja25lc3MuCi0g
ICAgSW50U2l6ZSBzY3JvbGxiYXJTaXplID0gUGxhdGZvcm1CcmlkZ2U6OmdldFRoZW1lUGFydFNp
emUoUGxhdGZvcm1CcmlkZ2U6OlBhcnRTY3JvbGxiYXJWZXJ0aWNhbFRyYWNrKTsKKyAgICBJbnRT
aXplIHNjcm9sbGJhclNpemUgPSBDaHJvbWl1bUJyaWRnZTo6Z2V0VGhlbWVQYXJ0U2l6ZShDaHJv
bWl1bUJyaWRnZTo6UGFydFNjcm9sbGJhclZlcnRpY2FsVHJhY2spOwogICAgIHJldHVybiBzY3Jv
bGxiYXJTaXplLndpZHRoKCk7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4
OjpwYWludFRyYWNrUGllY2UoR3JhcGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyKiBzY3JvbGxi
YXIsIGNvbnN0IEludFJlY3QmIHJlY3QsIFNjcm9sbGJhclBhcnQgcGFydFR5cGUpCiB7Ci0gICAg
UGxhdGZvcm1CcmlkZ2U6OlRoZW1lUGFpbnRTdGF0ZSBzdGF0ZSA9IHNjcm9sbGJhci0+aG92ZXJl
ZFBhcnQoKSA9PSBwYXJ0VHlwZSA/IFBsYXRmb3JtQnJpZGdlOjpTdGF0ZUhvdmVyIDogUGxhdGZv
cm1CcmlkZ2U6OlN0YXRlTm9ybWFsOworICAgIENocm9taXVtQnJpZGdlOjpUaGVtZVBhaW50U3Rh
dGUgc3RhdGUgPSBzY3JvbGxiYXItPmhvdmVyZWRQYXJ0KCkgPT0gcGFydFR5cGUgPyBDaHJvbWl1
bUJyaWRnZTo6U3RhdGVIb3ZlciA6IENocm9taXVtQnJpZGdlOjpTdGF0ZU5vcm1hbDsKICAgICBJ
bnRSZWN0IGFsaWduUmVjdCA9IHRyYWNrUmVjdChzY3JvbGxiYXIsIGZhbHNlKTsKLSAgICBQbGF0
Zm9ybUJyaWRnZTo6VGhlbWVQYWludEV4dHJhUGFyYW1zIGV4dHJhUGFyYW1zOworICAgIENocm9t
aXVtQnJpZGdlOjpUaGVtZVBhaW50RXh0cmFQYXJhbXMgZXh0cmFQYXJhbXM7CiAgICAgZXh0cmFQ
YXJhbXMuc2Nyb2xsYmFyVHJhY2sudHJhY2tYID0gYWxpZ25SZWN0LngoKTsKICAgICBleHRyYVBh
cmFtcy5zY3JvbGxiYXJUcmFjay50cmFja1kgPSBhbGlnblJlY3QueSgpOwogICAgIGV4dHJhUGFy
YW1zLnNjcm9sbGJhclRyYWNrLnRyYWNrV2lkdGggPSBhbGlnblJlY3Qud2lkdGgoKTsKICAgICBl
eHRyYVBhcmFtcy5zY3JvbGxiYXJUcmFjay50cmFja0hlaWdodCA9IGFsaWduUmVjdC5oZWlnaHQo
KTsKLSAgICBQbGF0Zm9ybUJyaWRnZTo6cGFpbnRUaGVtZVBhcnQoCisgICAgQ2hyb21pdW1Ccmlk
Z2U6OnBhaW50VGhlbWVQYXJ0KAogICAgICAgICBnYywKLSAgICAgICAgc2Nyb2xsYmFyLT5vcmll
bnRhdGlvbigpID09IEhvcml6b250YWxTY3JvbGxiYXIgPyBQbGF0Zm9ybUJyaWRnZTo6UGFydFNj
cm9sbGJhckhvcml6b250YWxUcmFjayA6IFBsYXRmb3JtQnJpZGdlOjpQYXJ0U2Nyb2xsYmFyVmVy
dGljYWxUcmFjaywKKyAgICAgICAgc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IEhvcml6b250
YWxTY3JvbGxiYXIgPyBDaHJvbWl1bUJyaWRnZTo6UGFydFNjcm9sbGJhckhvcml6b250YWxUcmFj
ayA6IENocm9taXVtQnJpZGdlOjpQYXJ0U2Nyb2xsYmFyVmVydGljYWxUcmFjaywKICAgICAgICAg
c3RhdGUsCiAgICAgICAgIHJlY3QsCiAgICAgICAgICZleHRyYVBhcmFtcyk7CkBAIC02OSw1MiAr
NjksNTIgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50VHJhY2tQaWVj
ZShHcmFwaGljc0NvbnRleHQqIGdjLCBTY3JvbGxiYXIKIAogdm9pZCBTY3JvbGxiYXJUaGVtZUNo
cm9taXVtTGludXg6OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciog
c2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0LCBTY3JvbGxiYXJQYXJ0IHBhcnQpCiB7Ci0g
ICAgUGxhdGZvcm1CcmlkZ2U6OlRoZW1lUGFydCBwYWludFBhcnQ7Ci0gICAgUGxhdGZvcm1Ccmlk
Z2U6OlRoZW1lUGFpbnRTdGF0ZSBzdGF0ZSA9IFBsYXRmb3JtQnJpZGdlOjpTdGF0ZU5vcm1hbDsK
KyAgICBDaHJvbWl1bUJyaWRnZTo6VGhlbWVQYXJ0IHBhaW50UGFydDsKKyAgICBDaHJvbWl1bUJy
aWRnZTo6VGhlbWVQYWludFN0YXRlIHN0YXRlID0gQ2hyb21pdW1CcmlkZ2U6OlN0YXRlTm9ybWFs
OwogICAgIGJvb2wgY2hlY2tNaW4gPSBmYWxzZTsKICAgICBib29sIGNoZWNrTWF4ID0gZmFsc2U7
CiAgICAgaWYgKHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFy
KSB7CiAgICAgICAgIGlmIChwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQpIHsKLSAgICAgICAg
ICAgIHBhaW50UGFydCA9IFBsYXRmb3JtQnJpZGdlOjpQYXJ0U2Nyb2xsYmFyTGVmdEFycm93Owor
ICAgICAgICAgICAgcGFpbnRQYXJ0ID0gQ2hyb21pdW1CcmlkZ2U6OlBhcnRTY3JvbGxiYXJMZWZ0
QXJyb3c7CiAgICAgICAgICAgICBjaGVja01pbiA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBwYWludFBhcnQgPSBQbGF0Zm9ybUJyaWRnZTo6UGFydFNjcm9sbGJhclJpZ2h0
QXJyb3c7CisgICAgICAgICAgICBwYWludFBhcnQgPSBDaHJvbWl1bUJyaWRnZTo6UGFydFNjcm9s
bGJhclJpZ2h0QXJyb3c7CiAgICAgICAgICAgICBjaGVja01heCA9IHRydWU7CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgewogICAgICAgICBpZiAocGFydCA9PSBCYWNrQnV0dG9uU3RhcnRQYXJ0KSB7
Ci0gICAgICAgICAgICBwYWludFBhcnQgPSBQbGF0Zm9ybUJyaWRnZTo6UGFydFNjcm9sbGJhclVw
QXJyb3c7CisgICAgICAgICAgICBwYWludFBhcnQgPSBDaHJvbWl1bUJyaWRnZTo6UGFydFNjcm9s
bGJhclVwQXJyb3c7CiAgICAgICAgICAgICBjaGVja01pbiA9IHRydWU7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBwYWludFBhcnQgPSBQbGF0Zm9ybUJyaWRnZTo6UGFydFNjcm9sbGJh
ckRvd25BcnJvdzsKKyAgICAgICAgICAgIHBhaW50UGFydCA9IENocm9taXVtQnJpZGdlOjpQYXJ0
U2Nyb2xsYmFyRG93bkFycm93OwogICAgICAgICAgICAgY2hlY2tNYXggPSB0cnVlOwogICAgICAg
ICB9CiAgICAgfQogICAgIGlmICgoY2hlY2tNaW4gJiYgKHNjcm9sbGJhci0+Y3VycmVudFBvcygp
IDw9IDApKQogICAgICAgICB8fCAoY2hlY2tNYXggJiYgc2Nyb2xsYmFyLT5jdXJyZW50UG9zKCkg
PT0gc2Nyb2xsYmFyLT5tYXhpbXVtKCkpKSB7Ci0gICAgICAgIHN0YXRlID0gUGxhdGZvcm1Ccmlk
Z2U6OlN0YXRlRGlzYWJsZWQ7CisgICAgICAgIHN0YXRlID0gQ2hyb21pdW1CcmlkZ2U6OlN0YXRl
RGlzYWJsZWQ7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKHBhcnQgPT0gc2Nyb2xsYmFyLT5w
cmVzc2VkUGFydCgpKQotICAgICAgICAgICAgc3RhdGUgPSBQbGF0Zm9ybUJyaWRnZTo6U3RhdGVQ
cmVzc2VkOworICAgICAgICAgICAgc3RhdGUgPSBDaHJvbWl1bUJyaWRnZTo6U3RhdGVQcmVzc2Vk
OwogICAgICAgICBlbHNlIGlmIChwYXJ0ID09IHNjcm9sbGJhci0+aG92ZXJlZFBhcnQoKSkKLSAg
ICAgICAgICAgIHN0YXRlID0gUGxhdGZvcm1CcmlkZ2U6OlN0YXRlSG92ZXI7CisgICAgICAgICAg
ICBzdGF0ZSA9IENocm9taXVtQnJpZGdlOjpTdGF0ZUhvdmVyOwogICAgIH0KLSAgICBQbGF0Zm9y
bUJyaWRnZTo6cGFpbnRUaGVtZVBhcnQoZ2MsIHBhaW50UGFydCwgc3RhdGUsIHJlY3QsIDApOwor
ICAgIENocm9taXVtQnJpZGdlOjpwYWludFRoZW1lUGFydChnYywgcGFpbnRQYXJ0LCBzdGF0ZSwg
cmVjdCwgMCk7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRo
dW1iKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQogewotICAgIFBsYXRmb3JtQnJpZGdlOjpUaGVtZVBhaW50U3RhdGUgc3RhdGU7
CisgICAgQ2hyb21pdW1CcmlkZ2U6OlRoZW1lUGFpbnRTdGF0ZSBzdGF0ZTsKIAogICAgIGlmIChz
Y3JvbGxiYXItPnByZXNzZWRQYXJ0KCkgPT0gVGh1bWJQYXJ0KQotICAgICAgICBzdGF0ZSA9IFBs
YXRmb3JtQnJpZGdlOjpTdGF0ZVByZXNzZWQ7CisgICAgICAgIHN0YXRlID0gQ2hyb21pdW1Ccmlk
Z2U6OlN0YXRlUHJlc3NlZDsKICAgICBlbHNlIGlmIChzY3JvbGxiYXItPmhvdmVyZWRQYXJ0KCkg
PT0gVGh1bWJQYXJ0KQotICAgICAgICBzdGF0ZSA9IFBsYXRmb3JtQnJpZGdlOjpTdGF0ZUhvdmVy
OworICAgICAgICBzdGF0ZSA9IENocm9taXVtQnJpZGdlOjpTdGF0ZUhvdmVyOwogICAgIGVsc2UK
LSAgICAgICAgc3RhdGUgPSBQbGF0Zm9ybUJyaWRnZTo6U3RhdGVOb3JtYWw7Ci0gICAgUGxhdGZv
cm1CcmlkZ2U6OnBhaW50VGhlbWVQYXJ0KAorICAgICAgICBzdGF0ZSA9IENocm9taXVtQnJpZGdl
OjpTdGF0ZU5vcm1hbDsKKyAgICBDaHJvbWl1bUJyaWRnZTo6cGFpbnRUaGVtZVBhcnQoCiAgICAg
ICAgIGdjLAotICAgICAgICBzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNj
cm9sbGJhciA/IFBsYXRmb3JtQnJpZGdlOjpQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRodW1iIDog
UGxhdGZvcm1CcmlkZ2U6OlBhcnRTY3JvbGxiYXJWZXJ0aWNhbFRodW1iLAorICAgICAgICBzY3Jv
bGxiYXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/IENocm9taXVtQnJp
ZGdlOjpQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRodW1iIDogQ2hyb21pdW1CcmlkZ2U6OlBhcnRT
Y3JvbGxiYXJWZXJ0aWNhbFRodW1iLAogICAgICAgICBzdGF0ZSwKICAgICAgICAgcmVjdCwKICAg
ICAgICAgMCk7CkBAIC0xMjgsMjMgKzEyOCwyMyBAQCBib29sIFNjcm9sbGJhclRoZW1lQ2hyb21p
dW1MaW51eDo6c2hvdWxkQ2VudGVyT25UaHVtYihTY3JvbGxiYXIqLCBjb25zdCBQbGF0Zm9ybQog
SW50U2l6ZSBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6OmJ1dHRvblNpemUoU2Nyb2xsYmFy
KiBzY3JvbGxiYXIpCiB7CiAgICAgaWYgKHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBWZXJ0
aWNhbFNjcm9sbGJhcikgewotICAgICAgICBJbnRTaXplIHNpemUgPSBQbGF0Zm9ybUJyaWRnZTo6
Z2V0VGhlbWVQYXJ0U2l6ZShQbGF0Zm9ybUJyaWRnZTo6UGFydFNjcm9sbGJhclVwQXJyb3cpOwor
ICAgICAgICBJbnRTaXplIHNpemUgPSBDaHJvbWl1bUJyaWRnZTo6Z2V0VGhlbWVQYXJ0U2l6ZShD
aHJvbWl1bUJyaWRnZTo6UGFydFNjcm9sbGJhclVwQXJyb3cpOwogICAgICAgICByZXR1cm4gSW50
U2l6ZShzaXplLndpZHRoKCksIHNjcm9sbGJhci0+aGVpZ2h0KCkgPCAyICogc2l6ZS5oZWlnaHQo
KSA/IHNjcm9sbGJhci0+aGVpZ2h0KCkgLyAyIDogc2l6ZS5oZWlnaHQoKSk7CiAgICAgfQogCiAg
ICAgLy8gSG9yaXpvbnRhbFNjcm9sbGJhcgotICAgIEludFNpemUgc2l6ZSA9IFBsYXRmb3JtQnJp
ZGdlOjpnZXRUaGVtZVBhcnRTaXplKFBsYXRmb3JtQnJpZGdlOjpQYXJ0U2Nyb2xsYmFyTGVmdEFy
cm93KTsKKyAgICBJbnRTaXplIHNpemUgPSBDaHJvbWl1bUJyaWRnZTo6Z2V0VGhlbWVQYXJ0U2l6
ZShDaHJvbWl1bUJyaWRnZTo6UGFydFNjcm9sbGJhckxlZnRBcnJvdyk7CiAgICAgcmV0dXJuIElu
dFNpemUoc2Nyb2xsYmFyLT53aWR0aCgpIDwgMiAqIHNpemUud2lkdGgoKSA/IHNjcm9sbGJhci0+
d2lkdGgoKSAvIDIgOiBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOwogfQogCiBpbnQgU2Ny
b2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjptaW5pbXVtVGh1bWJMZW5ndGgoU2Nyb2xsYmFyKiBz
Y3JvbGxiYXIpCiB7CiAgICAgaWYgKHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBWZXJ0aWNh
bFNjcm9sbGJhcikgewotICAgICAgICBJbnRTaXplIHNpemUgPSBQbGF0Zm9ybUJyaWRnZTo6Z2V0
VGhlbWVQYXJ0U2l6ZShQbGF0Zm9ybUJyaWRnZTo6UGFydFNjcm9sbGJhclZlcnRpY2FsVGh1bWIp
OworICAgICAgICBJbnRTaXplIHNpemUgPSBDaHJvbWl1bUJyaWRnZTo6Z2V0VGhlbWVQYXJ0U2l6
ZShDaHJvbWl1bUJyaWRnZTo6UGFydFNjcm9sbGJhclZlcnRpY2FsVGh1bWIpOwogICAgICAgICBy
ZXR1cm4gc2l6ZS5oZWlnaHQoKTsKICAgICB9CiAKLSAgICBJbnRTaXplIHNpemUgPSBQbGF0Zm9y
bUJyaWRnZTo6Z2V0VGhlbWVQYXJ0U2l6ZShQbGF0Zm9ybUJyaWRnZTo6UGFydFNjcm9sbGJhckhv
cml6b250YWxUaHVtYik7CisgICAgSW50U2l6ZSBzaXplID0gQ2hyb21pdW1CcmlkZ2U6OmdldFRo
ZW1lUGFydFNpemUoQ2hyb21pdW1CcmlkZ2U6OlBhcnRTY3JvbGxiYXJIb3Jpem9udGFsVGh1bWIp
OwogICAgIHJldHVybiBzaXplLndpZHRoKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1NYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTWFjLm1t
CmluZGV4IDBmNDkyOTcyYTczMzg5ODc1NmU4ZjUyMmZlZGIzZTA0YmY4ZWY4MTAuLjBhYTNlMTBm
YWQ0YWNlYzEzYmE3NzMwZjg5MjEwMGVlNDg5ZDgwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1NYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bU1h
Yy5tbQpAQCAtMjcsOSArMjcsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNj
cm9sbGJhclRoZW1lQ2hyb21pdW1NYWMuaCIKIAorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKLSNpbmNs
dWRlICJQbGF0Zm9ybUJyaWRnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlIDxDYXJib24vQ2FyYm9uLmg+CkBAIC0z
NzAsMTUgKzM3MCwxNSBAQCBzdGF0aWMgaW50IHNjcm9sbGJhclBhcnRUb0hJUHJlc3NlZFN0YXRl
KFNjcm9sbGJhclBhcnQgcGFydCkKICAgICB9CiB9CiAKLXN0YXRpYyBQbGF0Zm9ybUJyaWRnZTo6
VGhlbWVQYWludFN0YXRlIHNjcm9sbGJhclN0YXRlVG9UaGVtZVN0YXRlKFNjcm9sbGJhciogc2Ny
b2xsYmFyKSB7CitzdGF0aWMgQ2hyb21pdW1CcmlkZ2U6OlRoZW1lUGFpbnRTdGF0ZSBzY3JvbGxi
YXJTdGF0ZVRvVGhlbWVTdGF0ZShTY3JvbGxiYXIqIHNjcm9sbGJhcikgewogICAgIGlmICghc2Ny
b2xsYmFyLT5lbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6U3RhdGVE
aXNhYmxlZDsKKyAgICAgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpTdGF0ZURpc2FibGVkOwog
ICAgIGlmICghc2Nyb2xsYmFyLT5jbGllbnQoKS0+aXNBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJu
IFBsYXRmb3JtQnJpZGdlOjpTdGF0ZUluYWN0aXZlOworICAgICAgICByZXR1cm4gQ2hyb21pdW1C
cmlkZ2U6OlN0YXRlSW5hY3RpdmU7CiAgICAgaWYgKHNjcm9sbGJhci0+cHJlc3NlZFBhcnQoKSA9
PSBUaHVtYlBhcnQpCi0gICAgICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6U3RhdGVQcmVzc2Vk
OworICAgICAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OlN0YXRlUHJlc3NlZDsKIAotICAgIHJl
dHVybiBQbGF0Zm9ybUJyaWRnZTo6U3RhdGVBY3RpdmU7CisgICAgcmV0dXJuIENocm9taXVtQnJp
ZGdlOjpTdGF0ZUFjdGl2ZTsKIH0KIAogYm9vbCBTY3JvbGxiYXJUaGVtZUNocm9taXVtTWFjOjpw
YWludChTY3JvbGxiYXIqIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBJbnRSZWN0JiBkYW1hZ2VSZWN0KQpAQCAtNDYzLDE4ICs0NjMsMTggQEAgYm9vbCBTY3JvbGxi
YXJUaGVtZUNocm9taXVtTWFjOjpwYWludChTY3JvbGxiYXIqIHNjcm9sbGJhciwgR3JhcGhpY3ND
b250ZXh0KiBjb24KICAgICB9CiAKICAgICBpZiAoaGFzVGh1bWIoc2Nyb2xsYmFyKSkgewotICAg
ICAgICBQbGF0Zm9ybUJyaWRnZTo6VGhlbWVQYWludFNjcm9sbGJhckluZm8gc2Nyb2xsYmFySW5m
bzsKLSAgICAgICAgc2Nyb2xsYmFySW5mby5vcmllbnRhdGlvbiA9IHNjcm9sbGJhci0+b3JpZW50
YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyID8gUGxhdGZvcm1CcmlkZ2U6OlNjcm9sbGJh
ck9yaWVudGF0aW9uSG9yaXpvbnRhbCA6IFBsYXRmb3JtQnJpZGdlOjpTY3JvbGxiYXJPcmllbnRh
dGlvblZlcnRpY2FsOwotICAgICAgICBzY3JvbGxiYXJJbmZvLnBhcmVudCA9IHNjcm9sbGJhci0+
cGFyZW50KCkgJiYgc2Nyb2xsYmFyLT5wYXJlbnQoKS0+aXNGcmFtZVZpZXcoKSAmJiBzdGF0aWNf
Y2FzdDxGcmFtZVZpZXcqPihzY3JvbGxiYXItPnBhcmVudCgpKS0+aXNTY3JvbGxWaWV3U2Nyb2xs
YmFyKHNjcm9sbGJhcikgPyBQbGF0Zm9ybUJyaWRnZTo6U2Nyb2xsYmFyUGFyZW50U2Nyb2xsVmll
dyA6IFBsYXRmb3JtQnJpZGdlOjpTY3JvbGxiYXJQYXJlbnRSZW5kZXJMYXllcjsKKyAgICAgICAg
Q2hyb21pdW1CcmlkZ2U6OlRoZW1lUGFpbnRTY3JvbGxiYXJJbmZvIHNjcm9sbGJhckluZm87Cisg
ICAgICAgIHNjcm9sbGJhckluZm8ub3JpZW50YXRpb24gPSBzY3JvbGxiYXItPm9yaWVudGF0aW9u
KCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/IENocm9taXVtQnJpZGdlOjpTY3JvbGxiYXJPcmll
bnRhdGlvbkhvcml6b250YWwgOiBDaHJvbWl1bUJyaWRnZTo6U2Nyb2xsYmFyT3JpZW50YXRpb25W
ZXJ0aWNhbDsKKyAgICAgICAgc2Nyb2xsYmFySW5mby5wYXJlbnQgPSBzY3JvbGxiYXItPnBhcmVu
dCgpICYmIHNjcm9sbGJhci0+cGFyZW50KCktPmlzRnJhbWVWaWV3KCkgJiYgc3RhdGljX2Nhc3Q8
RnJhbWVWaWV3Kj4oc2Nyb2xsYmFyLT5wYXJlbnQoKSktPmlzU2Nyb2xsVmlld1Njcm9sbGJhcihz
Y3JvbGxiYXIpID8gQ2hyb21pdW1CcmlkZ2U6OlNjcm9sbGJhclBhcmVudFNjcm9sbFZpZXcgOiBD
aHJvbWl1bUJyaWRnZTo6U2Nyb2xsYmFyUGFyZW50UmVuZGVyTGF5ZXI7CiAgICAgICAgIHNjcm9s
bGJhckluZm8ubWF4VmFsdWUgPSBzY3JvbGxiYXItPm1heGltdW0oKTsKICAgICAgICAgc2Nyb2xs
YmFySW5mby5jdXJyZW50VmFsdWUgPSBzY3JvbGxiYXItPmN1cnJlbnRQb3MoKTsKICAgICAgICAg
c2Nyb2xsYmFySW5mby52aXNpYmxlU2l6ZSA9IHNjcm9sbGJhci0+dmlzaWJsZVNpemUoKTsKICAg
ICAgICAgc2Nyb2xsYmFySW5mby50b3RhbFNpemUgPSBzY3JvbGxiYXItPnRvdGFsU2l6ZSgpOwog
Ci0gICAgICAgIFBsYXRmb3JtQnJpZGdlOjpwYWludFNjcm9sbGJhclRodW1iKAorICAgICAgICBD
aHJvbWl1bUJyaWRnZTo6cGFpbnRTY3JvbGxiYXJUaHVtYigKICAgICAgICAgICAgIGRyYXdpbmdD
b250ZXh0LAogICAgICAgICAgICAgc2Nyb2xsYmFyU3RhdGVUb1RoZW1lU3RhdGUoc2Nyb2xsYmFy
KSwKLSAgICAgICAgICAgIHNjcm9sbGJhci0+Y29udHJvbFNpemUoKSA9PSBSZWd1bGFyU2Nyb2xs
YmFyID8gUGxhdGZvcm1CcmlkZ2U6OlNpemVSZWd1bGFyIDogUGxhdGZvcm1CcmlkZ2U6OlNpemVT
bWFsbCwKKyAgICAgICAgICAgIHNjcm9sbGJhci0+Y29udHJvbFNpemUoKSA9PSBSZWd1bGFyU2Ny
b2xsYmFyID8gQ2hyb21pdW1CcmlkZ2U6OlNpemVSZWd1bGFyIDogQ2hyb21pdW1CcmlkZ2U6OlNp
emVTbWFsbCwKICAgICAgICAgICAgIHNjcm9sbGJhci0+ZnJhbWVSZWN0KCksCiAgICAgICAgICAg
ICBzY3JvbGxiYXJJbmZvKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1XaW4uY3BwCmluZGV4
IDI5ZThiNDQyNjVjNWUxZDAwNTM1ODhlOTcxNWU5NDJiYzc5NjAxOGQuLmJhN2U5N2IyNTUzNDlk
YmZlZGIzMGQ4YmRkNmQ0ODk1M2M3Nzg5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1XaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1XaW4uY3Bw
CkBAIC0zMCw4ICszMCw4IEBACiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHZzc3R5
bGUuaD4KIAorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1CcmlkZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUNvbnRleHRTa2lhLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsYmFyLmgiCkBAIC02MSw3ICs2MSw3IEBAIGludCBTY3JvbGxiYXJUaGVtZUNocm9t
aXVtV2luOjpzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNp
CiB7CiAgICAgc3RhdGljIGludCB0aGlja25lc3M7CiAgICAgaWYgKCF0aGlja25lc3MpIHsKLSAg
ICAgICAgaWYgKFBsYXRmb3JtQnJpZGdlOjpsYXlvdXRUZXN0TW9kZSgpKQorICAgICAgICBpZiAo
Q2hyb21pdW1CcmlkZ2U6OmxheW91dFRlc3RNb2RlKCkpCiAgICAgICAgICAgICByZXR1cm4ga01h
Y1Njcm9sbGJhclNpemVbY29udHJvbFNpemVdOwogICAgICAgICB0aGlja25lc3MgPSBHZXRTeXN0
ZW1NZXRyaWNzKFNNX0NYVlNDUk9MTCk7CiAgICAgfQpAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQg
U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbjo6cGFpbnRUcmFja1BpZWNlKEdyYXBoaWNzQ29udGV4
dCogZ2MsIFNjcm9sbGJhcioKICAgICBJbnRSZWN0IGFsaWduUmVjdCA9IHRyYWNrUmVjdChzY3Jv
bGxiYXIsIGZhbHNlKTsKIAogICAgIC8vIERyYXcgdGhlIHRyYWNrIGFyZWEgYmVmb3JlL2FmdGVy
IHRoZSB0aHVtYiBvbiB0aGUgc2Nyb2xsIGJhci4KLSAgICBQbGF0Zm9ybUJyaWRnZTo6cGFpbnRT
Y3JvbGxiYXJUcmFjaygKKyAgICBDaHJvbWl1bUJyaWRnZTo6cGFpbnRTY3JvbGxiYXJUcmFjaygK
ICAgICAgICAgZ2MsCiAgICAgICAgIHBhcnRJZCwKICAgICAgICAgZ2V0VGhlbWVTdGF0ZShzY3Jv
bGxiYXIsIHBhcnRUeXBlKSwKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIFNjcm9sbGJhclRoZW1l
Q2hyb21pdW1XaW46OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciog
c2NybwogICAgICAgICBwYXJ0SWQgPSBob3J6ID8gREZDU19TQ1JPTExSSUdIVCA6IERGQ1NfU0NS
T0xMRE9XTjsKIAogICAgIC8vIERyYXcgdGhlIHRodW1iICh0aGUgYm94IHlvdSBkcmFnIGluIHRo
ZSBzY3JvbGwgYmFyIHRvIHNjcm9sbCkuCi0gICAgUGxhdGZvcm1CcmlkZ2U6OnBhaW50U2Nyb2xs
YmFyQXJyb3coCisgICAgQ2hyb21pdW1CcmlkZ2U6OnBhaW50U2Nyb2xsYmFyQXJyb3coCiAgICAg
ICAgIGdjLAogICAgICAgICBnZXRUaGVtZUFycm93U3RhdGUoc2Nyb2xsYmFyLCBwYXJ0KSwKICAg
ICAgICAgcGFydElkIHwgZ2V0Q2xhc3NpY1RoZW1lU3RhdGUoc2Nyb2xsYmFyLCBwYXJ0KSwKQEAg
LTEzNiw3ICsxMzYsNyBAQCB2b2lkIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1XaW46OnBhaW50VGh1
bWIoR3JhcGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyKiBzY3JvbAogICAgIGJvb2wgaG9yeiA9
IHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyOwogCiAgICAg
Ly8gRHJhdyB0aGUgdGh1bWIgKHRoZSBib3ggeW91IGRyYWcgaW4gdGhlIHNjcm9sbCBiYXIgdG8g
c2Nyb2xsKS4KLSAgICBQbGF0Zm9ybUJyaWRnZTo6cGFpbnRTY3JvbGxiYXJUaHVtYigKKyAgICBD
aHJvbWl1bUJyaWRnZTo6cGFpbnRTY3JvbGxiYXJUaHVtYigKICAgICAgICAgZ2MsCiAgICAgICAg
IGhvcnogPyBTQlBfVEhVTUJCVE5IT1JaIDogU0JQX1RIVU1CQlROVkVSVCwKICAgICAgICAgZ2V0
VGhlbWVTdGF0ZShzY3JvbGxiYXIsIFRodW1iUGFydCksCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9p
ZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtV2luOjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCog
Z2MsIFNjcm9sbGJhciogc2Nyb2wKICAgICAgICAgcmVjdCk7CiAKICAgICAvLyBEcmF3IHRoZSBn
cmlwcGVyICh0aGUgdGhyZWUgbGl0dGxlIGxpbmVzIG9uIHRoZSB0aHVtYikuCi0gICAgUGxhdGZv
cm1CcmlkZ2U6OnBhaW50U2Nyb2xsYmFyVGh1bWIoCisgICAgQ2hyb21pdW1CcmlkZ2U6OnBhaW50
U2Nyb2xsYmFyVGh1bWIoCiAgICAgICAgIGdjLAogICAgICAgICBob3J6ID8gU0JQX0dSSVBQRVJI
T1JaIDogU0JQX0dSSVBQRVJWRVJULAogICAgICAgICBnZXRUaGVtZVN0YXRlKHNjcm9sbGJhciwg
VGh1bWJQYXJ0KSwKQEAgLTI1Niw3ICsyNTYsNyBAQCBJbnRTaXplIFNjcm9sbGJhclRoZW1lQ2hy
b21pdW1XaW46OmJ1dHRvblNpemUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiAgICAgLy8gdGVzdCBt
b2RlIHNvIHRoYXQgc2hvdWxkIGJlIGVub3VnaCB0byByZXN1bHQgaW4gcmVwZWF0YWJsZSByZXN1
bHRzLCBidXQKICAgICAvLyBwcmVzZXJ2aW5nIHRoaXMgaGFjayBhdm9pZHMgaGF2aW5nIHRvIHJl
YmFzZWxpbmUgcGl4ZWwgdGVzdHMuCiAgICAgY29uc3QgaW50IGtMYXlvdXRUZXN0TW9kZUdpcnRo
ID0gMTc7Ci0gICAgaW50IGdpcnRoID0gUGxhdGZvcm1CcmlkZ2U6OmxheW91dFRlc3RNb2RlKCkg
PyBrTGF5b3V0VGVzdE1vZGVHaXJ0aCA6IHRoaWNrbmVzczsKKyAgICBpbnQgZ2lydGggPSBDaHJv
bWl1bUJyaWRnZTo6bGF5b3V0VGVzdE1vZGUoKSA/IGtMYXlvdXRUZXN0TW9kZUdpcnRoIDogdGhp
Y2tuZXNzOwogCiAgICAgaWYgKHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFs
U2Nyb2xsYmFyKSB7CiAgICAgICAgIGludCB3aWR0aCA9IHNjcm9sbGJhci0+d2lkdGgoKSA8IDIg
KiBnaXJ0aCA/IHNjcm9sbGJhci0+d2lkdGgoKSAvIDIgOiBnaXJ0aDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1NoYXJlZFRpbWVyQ2hyb21pdW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2hhcmVkVGltZXJDaHJvbWl1bS5jcHAK
aW5kZXggNWFjYjI1MzQ3ZjE3NWUyODM4OTgyNDBiMWZkYTA4ZmVjMzBiN2M5YS4uNWE2YTAwMDI4
MjNjMGQ5MzNkYmFjMzA4M2E4OTMyZGM4ZGEyZDc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vU2hhcmVkVGltZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2hhcmVkVGltZXJDaHJvbWl1bS5jcHAKQEAgLTI2
LDIzICsyNiwyMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYXJlZFRpbWVy
LmgiCiAKLSNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgorI2luY2x1ZGUgIkNocm9taXVtQnJp
ZGdlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBzZXRTaGFyZWRUaW1lckZpcmVk
RnVuY3Rpb24odm9pZCAoKmYpKCkpCiB7ICAgICAgICAgICAgICAgICAgIAotICAgIFBsYXRmb3Jt
QnJpZGdlOjpzZXRTaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24oZik7CisgICAgQ2hyb21pdW1Ccmlk
Z2U6OnNldFNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbihmKTsKIH0KIAogdm9pZCBzZXRTaGFyZWRU
aW1lckZpcmVUaW1lKGRvdWJsZSBmaXJlVGltZSkKIHsKLSAgICBQbGF0Zm9ybUJyaWRnZTo6c2V0
U2hhcmVkVGltZXJGaXJlVGltZShmaXJlVGltZSk7CisgICAgQ2hyb21pdW1CcmlkZ2U6OnNldFNo
YXJlZFRpbWVyRmlyZVRpbWUoZmlyZVRpbWUpOwogfQogCiB2b2lkIHN0b3BTaGFyZWRUaW1lcigp
CiB7Ci0gICAgUGxhdGZvcm1CcmlkZ2U6OnN0b3BTaGFyZWRUaW1lcigpOworICAgIENocm9taXVt
QnJpZGdlOjpzdG9wU2hhcmVkVGltZXIoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU3VkZGVuVGVybWlu
YXRpb25DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TdWRk
ZW5UZXJtaW5hdGlvbkNocm9taXVtLmNwcAppbmRleCAwNmNjNzM4ZDRjM2MyMjk5ZWM2NTg4MDA5
ODRjNDc1MmExMDhhNGI3Li41NGI4MzA0MDFjNWFhODBmMmU2NjcxNTE1NWE4MjYzZWU5OWI2NDll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TdWRkZW5UZXJt
aW5hdGlvbkNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9TdWRkZW5UZXJtaW5hdGlvbkNocm9taXVtLmNwcApAQCAtMSw0OCArMSw0OCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0
cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0g
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJTdWRkZW5UZXJtaW5hdGlvbi5oIgotCi0jaW5jbHVkZSAi
UGxhdGZvcm1CcmlkZ2UuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIGRpc2FibGVT
dWRkZW5UZXJtaW5hdGlvbigpCi17Ci0gICAgUGxhdGZvcm1CcmlkZ2U6OnN1ZGRlblRlcm1pbmF0
aW9uQ2hhbmdlZChmYWxzZSk7Ci19Ci0KLXZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKQot
ewotICAgIFBsYXRmb3JtQnJpZGdlOjpzdWRkZW5UZXJtaW5hdGlvbkNoYW5nZWQodHJ1ZSk7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKy8qDQorICogQ29weXJpZ2h0IChDKSAyMDA5IEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorICoNCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlDQorICogbWV0Og0KKyAqDQorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQ0KKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXINCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlDQorICogZGlzdHJpYnV0aW9uLg0K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMNCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQ0KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQorICoNCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQorICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QNCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1INCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVA0KKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LA0KKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QNCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwNCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUDQorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCisgKi8NCisNCisj
aW5jbHVkZSAiY29uZmlnLmgiDQorI2luY2x1ZGUgIlN1ZGRlblRlcm1pbmF0aW9uLmgiDQorDQor
I2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiDQorDQorbmFtZXNwYWNlIFdlYkNvcmUgew0KKw0K
K3ZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkNCit7DQorICAgIENocm9taXVtQnJpZGdl
OjpzdWRkZW5UZXJtaW5hdGlvbkNoYW5nZWQoZmFsc2UpOw0KK30NCisNCit2b2lkIGVuYWJsZVN1
ZGRlblRlcm1pbmF0aW9uKCkNCit7DQorICAgIENocm9taXVtQnJpZGdlOjpzdWRkZW5UZXJtaW5h
dGlvbkNoYW5nZWQodHJ1ZSk7DQorfQ0KKw0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TeXN0ZW1UaW1lQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU3lzdGVtVGltZUNocm9t
aXVtLmNwcAppbmRleCA5M2FjOGIxMjFkNGRjZGI3YjFhNzg1ZGQ4YjhlM2QxYmExOWY0OTY5Li41
MmFjMjYyOWFjODZjN2ZkZDQwYjhiYTUyOWU0MWM1YmZhMTAwOGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TeXN0ZW1UaW1lQ2hyb21pdW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1N5c3RlbVRpbWVDaHJvbWl1bS5jcHAK
QEAgLTMxLDE1ICszMSwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN5c3Rl
bVRpbWUuaCIKIAorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIC8vIEdldCB0aGUgY3VycmVudCB0aW1lIGluIHNlY29uZHMgc2luY2UgZXBvY2gu
CiBkb3VibGUgY3VycmVudFRpbWUoKQogewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6Y3Vy
cmVudFRpbWUoKTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmN1cnJlbnRUaW1lKCk7CiB9
CiAKIGZsb2F0IHVzZXJJZGxlVGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9Xcml0YWJsZURhdGFPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vV3JpdGFibGVEYXRhT2JqZWN0LmNwcAppbmRleCBhMWFjN2Q5MWVmNmJl
MTNiNDdhMDBiMDUzOTNiNDg4MzI0Y2YxMGIyLi43Y2JmNDJjNGEzNjFmMjQxZTQ0OGZkMjBlMzY5
MjE2ZDFmNjgwY2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9Xcml0YWJsZURhdGFPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1dyaXRhYmxlRGF0YU9iamVjdC5jcHAKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJXcml0YWJsZURhdGFPYmplY3QuaCIKIAorI2luY2x1ZGUg
IkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkTWltZVR5cGVzLmgiCi0jaW5j
bHVkZSAiUGxhdGZvcm1CcmlkZ2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04MCw3
ICs4MCw3IEBAIGJvb2wgV3JpdGFibGVEYXRhT2JqZWN0OjpzZXREYXRhKGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBjdXJy
ZW50bHkgdW5pbXBsZW1lbnRlZCBvbiB0aGUgQ2hyb21pdW0tc2lkZS4gVGhpcyBpcwogICAgICAg
ICAvLyAib2theSIgZm9yIG5vdyBzaW5jZSB0aGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gZGlk
bid0IHN1cHBvcnQgaXQKICAgICAgICAgLy8gYW55d2F5LiBHb2luZyBmb3J3YXJkLCB0aGlzIGlz
IHNvbWV0aGluZyB3ZSdsbCBuZWVkIHRvIGZpeCB0aG91Z2guCi0gICAgICAgIFBsYXRmb3JtQnJp
ZGdlOjpjbGlwYm9hcmRXcml0ZURhdGEodHlwZSwgZGF0YSwgIiIpOworICAgICAgICBDaHJvbWl1
bUJyaWRnZTo6Y2xpcGJvYXJkV3JpdGVEYXRhKHR5cGUsIGRhdGEsICIiKTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogICAgIG1fZGF0YU1hcC5zZXQodHlwZSwgZGF0YSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Dcm9zc1Byb2Nl
c3NGb250TG9hZGluZy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0Nyb3NzUHJvY2Vzc0ZvbnRMb2FkaW5nLm1tCmluZGV4IDIyN2ZiZTRiNGZiMWE2NjA2MGJi
YmIxNzgxOGJiZTFhYjhlOWVjNTguLjcyZTMzNjlmZDExNTA5Njg4MmQ1Yjc5MDQ2YjIwMmMzMjc4
NTU4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0Nyb3NzUHJvY2Vzc0ZvbnRMb2FkaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0Nyb3NzUHJvY2Vzc0ZvbnRMb2FkaW5nLm1tCkBAIC0zMCw3
ICszMCw3IEBACiAjaW1wb3J0ICJDcm9zc1Byb2Nlc3NGb250TG9hZGluZy5oIgogCiAjaW1wb3J0
ICIuLi9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhLmgiCi0jaW1wb3J0ICJQbGF0Zm9y
bUJyaWRnZS5oIgorI2ltcG9ydCAiQ2hyb21pdW1CcmlkZ2UuaCIKICNpbXBvcnQgPEFwcEtpdC9O
U0ZvbnQuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTg3LDcgKzg3LDcgQEAgUGFz
c1JlZlB0cjxNZW1vcnlBY3RpdmF0ZWRGb250PiBsb2FkRm9udEZyb21Ccm93c2VyUHJvY2VzcyhO
U0ZvbnQqIG5zRm9udCkKIHsKICAgICBBVFNGb250Q29udGFpbmVyUmVmIGNvbnRhaW5lcjsKICAg
ICAvLyBTZW5kIGNyb3NzLXByb2Nlc3MgcmVxdWVzdCB0byBsb2FkIGZvbnQuCi0gICAgaWYgKCFQ
bGF0Zm9ybUJyaWRnZTo6bG9hZEZvbnQobnNGb250LCAmY29udGFpbmVyKSkKKyAgICBpZiAoIUNo
cm9taXVtQnJpZGdlOjpsb2FkRm9udChuc0ZvbnQsICZjb250YWluZXIpKQogICAgICAgICByZXR1
cm4gMDsKICAgICAKICAgICBBVFNGb250Q29udGFpbmVyUmVmIHNyY0ZvbnRDb250YWluZXJSZWYg
PSBmb250Q29udGFpbmVyUmVmRnJvbU5TRm9udChuc0ZvbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hlQ2hyb21pdW1XaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hl
Q2hyb21pdW1XaW4uY3BwCmluZGV4IGY0YzBkZWUyYWVkMjM2ZjE5YWJlOTIxMDQ0ZGI0MjY4NTNk
MGFmMWIuLjJjNzk4MTViMTZhNmEwODRjNTk4ZDU0MGQxY2RhNGY5YTQ0ODBjNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNoZUNo
cm9taXVtV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250Q2FjaGVDaHJvbWl1bVdpbi5jcHAKQEAgLTMyLDExICszMiwxMSBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogCisjaW5jbHVkZSAiQ2hyb21p
dW1CcmlkZ2UuaCIKICNpbmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiRm9udFV0aWxzQ2hyb21p
dW1XaW4uaCIKICNpbmNsdWRlICJIYXNoTWFwLmgiCiAjaW5jbHVkZSAiSGFzaFNldC5oIgotI2lu
Y2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNp
bmNsdWRlIDx1bmljb2RlL3VuaXNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KQEAgLTI4OCw5ICsyODgsOSBAQCBzdGF0aWMgYm9vbCBmb250Q29udGFpbnNDaGFyYWN0ZXIo
Y29uc3QgRm9udFBsYXRmb3JtRGF0YSogZm9udERhdGEsCiAgICAgSERDIGhkYyA9IEdldERDKDAp
OwogICAgIEhHRElPQkogb2xkRm9udCA9IHN0YXRpY19jYXN0PEhGT05UPihTZWxlY3RPYmplY3Qo
aGRjLCBoZm9udCkpOwogICAgIGludCBjb3VudCA9IEdldEZvbnRVbmljb2RlUmFuZ2VzKGhkYywg
MCk7Ci0gICAgaWYgKCFjb3VudCAmJiBQbGF0Zm9ybUJyaWRnZTo6ZW5zdXJlRm9udExvYWRlZCho
Zm9udCkpCisgICAgaWYgKGNvdW50ID09IDAgJiYgQ2hyb21pdW1CcmlkZ2U6OmVuc3VyZUZvbnRM
b2FkZWQoaGZvbnQpKQogICAgICAgICBjb3VudCA9IEdldEZvbnRVbmljb2RlUmFuZ2VzKGhkYywg
MCk7Ci0gICAgaWYgKCFjb3VudCkgeworICAgIGlmIChjb3VudCA9PSAwKSB7CiAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGdldCB0aGUgZm9udCB1bmljb2RlIHJhbmdlIGFmdGVyIHNlY29u
ZCBhdHRlbXB0Iik7CiAgICAgICAgIFNlbGVjdE9iamVjdChoZGMsIG9sZEZvbnQpOwogICAgICAg
ICBSZWxlYXNlREMoMCwgaGRjKTsKQEAgLTM2Miw3ICszNjIsNyBAQCBzdGF0aWMgdm9pZCBGaWxs
TG9nRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgTE9HRk9OVCog
d2luZm9udAogICAgIHdpbmZvbnQtPmxmU3RyaWtlT3V0ID0gZmFsc2U7CiAgICAgd2luZm9udC0+
bGZDaGFyU2V0ID0gREVGQVVMVF9DSEFSU0VUOwogICAgIHdpbmZvbnQtPmxmT3V0UHJlY2lzaW9u
ID0gT1VUX1RUX09OTFlfUFJFQ0lTOwotICAgIHdpbmZvbnQtPmxmUXVhbGl0eSA9IFBsYXRmb3Jt
QnJpZGdlOjpsYXlvdXRUZXN0TW9kZSgpID8gTk9OQU5USUFMSUFTRURfUVVBTElUWSA6IERFRkFV
TFRfUVVBTElUWTsgLy8gSG9ub3IgdXNlcidzIGRlc2t0b3Agc2V0dGluZ3MuCisgICAgd2luZm9u
dC0+bGZRdWFsaXR5ID0gQ2hyb21pdW1CcmlkZ2U6OmxheW91dFRlc3RNb2RlKCkgPyBOT05BTlRJ
QUxJQVNFRF9RVUFMSVRZIDogREVGQVVMVF9RVUFMSVRZOyAvLyBIb25vciB1c2VyJ3MgZGVza3Rv
cCBzZXR0aW5ncy4KICAgICB3aW5mb250LT5sZlBpdGNoQW5kRmFtaWx5ID0gREVGQVVMVF9QSVRD
SCB8IEZGX0RPTlRDQVJFOwogICAgIHdpbmZvbnQtPmxmSXRhbGljID0gZm9udERlc2NyaXB0aW9u
Lml0YWxpYygpOwogICAgIHdpbmZvbnQtPmxmV2VpZ2h0ID0gdG9HRElGb250V2VpZ2h0KGZvbnRE
ZXNjcmlwdGlvbi53ZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2FjaGVMaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2FjaGVMaW51eC5jcHAKaW5kZXggYTg0OWE2
YzZmN2Y5NzY5NDllNzA5M2UwZjIxMzc5ODBhNjEzYmFhYi4uYmQzMzkyN2ZiOTliOWE5ZmZlYjc2
MzViMGUzNjJjOWNmYWM0ZmE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hlTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNoZUxpbnV4LmNwcApAQCAtMzEsMTIg
KzMxLDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAK
KyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIkZvbnQuaCIKICNpbmNsdWRl
ICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAi
UGxhdGZvcm1CcmlkZ2UuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogCiAjaW5jbHVk
ZSAiU2tQYWludC5oIgpAQCAtNTcsNyArNTcsNyBAQCBjb25zdCBTaW1wbGVGb250RGF0YSogRm9u
dENhY2hlOjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMoY29uc3QgRm9udCYgZm9udCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBVQ2hhciogY2hhcmFjdGVycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoKQogewotICAgIFN0cmluZyBmYW1pbHkg
PSBQbGF0Zm9ybUJyaWRnZTo6Z2V0Rm9udEZhbWlseUZvckNoYXJhY3RlcnMoY2hhcmFjdGVycywg
bGVuZ3RoKTsKKyAgICBTdHJpbmcgZmFtaWx5ID0gQ2hyb21pdW1CcmlkZ2U6OmdldEZvbnRGYW1p
bHlGb3JDaGFyYWN0ZXJzKGNoYXJhY3RlcnMsIGxlbmd0aCk7CiAgICAgaWYgKGZhbWlseS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcAppbmRl
eCA1ZGE0ZDVhMjRiMjNmZGIxZWNkYmQwMDMwYTM1OWMyMzAwMzkwYmIyLi4xYTAwODMzZmVlY2Iy
ZjNhODQyZmI5Y2U5OTlhNmIxZjkwZGEwMGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdpbi5jcHAK
QEAgLTMyLDEwICszMiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvbnQu
aCIKIAorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiRm9udEZhbGxiYWNr
TGlzdC5oIgogI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ29u
dGV4dFNraWEuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogI2luY2x1ZGUgIlNraWFG
b250V2luLmgiCkBAIC00MjQsNyArNDI0LDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBo
aWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LAogICAgICAgICAgICAgc3VjY2VzcyA9IHBhaW50
ZXIuZHJhd0dseXBocyhjdXJMZW4sICZnbHlwaHNbMF0sICZhZHZhbmNlc1swXSwgY3VyQWR2YW5j
ZSk7CiAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MgJiYgZXhlY3V0aW9ucyA9PSAwKSB7CiAgICAg
ICAgICAgICAgICAgLy8gQXNrIHRoZSBicm93c2VyIHRvIGxvYWQgdGhlIGZvbnQgZm9yIHVzIGFu
ZCByZXRyeS4KLSAgICAgICAgICAgICAgICBQbGF0Zm9ybUJyaWRnZTo6ZW5zdXJlRm9udExvYWRl
ZChmb250LT5wbGF0Zm9ybURhdGEoKS5oZm9udCgpKTsKKyAgICAgICAgICAgICAgICBDaHJvbWl1
bUJyaWRnZTo6ZW5zdXJlRm9udExvYWRlZChmb250LT5wbGF0Zm9ybURhdGEoKS5oZm9udCgpKTsK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFDaHJvbWl1bVdpbi5jcHAKaW5k
ZXggNmQ3NWM5MDBjOTRhYjRhOWZhYWJkODJiZjgzN2Y4NmE3OTYwODhmNi4uZDZjODNlY2RmYTBi
ODhiZGE5NWQ2ZWFhZTZiMzZhNTc5MTYyM2ViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUNocm9taXVtV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxh
dGZvcm1EYXRhQ2hyb21pdW1XaW4uY3BwCkBAIC0zMiwxMiArMzIsMTIgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAKLSNpbmNsdWRlICJQbGF0
Zm9ybUJyaWRnZS5oIgotI2luY2x1ZGUgIlNraWFGb250V2luLmgiCi0KLSNpbmNsdWRlIDxtbGFu
Zy5oPgotI2luY2x1ZGUgPG9iamlkbC5oPgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRl
IDxvYmppZGwuaD4KKyNpbmNsdWRlIDxtbGFuZy5oPgorCisjaW5jbHVkZSAiQ2hyb21pdW1Ccmlk
Z2UuaCIKKyNpbmNsdWRlICJTa2lhRm9udFdpbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTEzNiw3ICsxMzYsNyBAQCBTQ1JJUFRfRk9OVFBST1BFUlRJRVMqIEZvbnRQbGF0Zm9ybURh
dGE6OnNjcmlwdEZvbnRQcm9wZXJ0aWVzKCkgY29uc3QKICAgICAgICAgICAgIEhSRVNVTFQgaHIg
PSBTY3JpcHRHZXRGb250UHJvcGVydGllcyhkYywgc2NyaXB0Q2FjaGUoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdEZvbnRQcm9wZXJ0
aWVzKTsKICAgICAgICAgICAgIGlmIChTX09LICE9IGhyKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KFBsYXRmb3JtQnJpZGdlOjplbnN1cmVGb250TG9hZGVkKGhmb250KCkpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKENocm9taXVtQnJpZGdlOjplbnN1cmVGb250TG9hZGVkKGhmb250KCkpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZ3JhY2VmdWxseSB0aGUgZXJyb3Ig
aWYgdGhpcyBjYWxsIGFsc28gZmFpbHMuCiAgICAgICAgICAgICAgICAgICAgIGhyID0gU2NyaXB0
R2V0Rm9udFByb3BlcnRpZXMoZGMsIHNjcmlwdENhY2hlKCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRGb250UHJvcGVydGllcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250
UGxhdGZvcm1EYXRhTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmNwcAppbmRleCBhMWVhMDEyZWFlYjU0Njg0
YzAwMzc0ZmIwNWU2YmYxNzQ5ZmUzZmE2Li40Mjk0MmNjYWQwMGJkYjUxNTRmMzc3NzY4YjI5Y2Y3
MjM4NDZkZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFMaW51eC5jcHAKQEAgLTMx
LDkgKzMxLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1E
YXRhLmgiCiAKKyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIkhhcmZidXp6
U2tpYS5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1C
cmlkZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogCiAjaW5jbHVkZSAiU2tQYWlu
dC5oIgpAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6cXVlcnlTeXN0
ZW1Gb3JSZW5kZXJTdHlsZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBQbGF0Zm9y
bUJyaWRnZTo6Z2V0UmVuZGVyU3R5bGVGb3JTdHJpa2UobV9mYW1pbHkuZGF0YSgpLCAoKChpbnQp
bV90ZXh0U2l6ZSkgPDwgMikgfCAobV90eXBlZmFjZS0+c3R5bGUoKSAmIDMpLCAmbV9zdHlsZSk7
CisgICAgQ2hyb21pdW1CcmlkZ2U6OmdldFJlbmRlclN0eWxlRm9yU3RyaWtlKG1fZmFtaWx5LmRh
dGEoKSwgKCgoaW50KW1fdGV4dFNpemUpIDw8IDIpIHwgKG1fdHlwZWZhY2UtPnN0eWxlKCkgJiAz
KSwgJm1fc3R5bGUpOwogfQogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR2x5cGhQYWdlVHJlZU5v
ZGVDaHJvbWl1bVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HbHlwaFBhZ2VUcmVlTm9kZUNocm9taXVtV2luLmNwcAppbmRleCBlZTJiNWFiOWJkZDll
YzJkYWFkOTcxNDU5N2Q2MDYxY2JhZjliYWNjLi5lNzFmNjZhOTY4MjI0Yjg1MzE5N2E3MzZkNDVj
NTE5YmFhZDE0NGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HbHlwaFBhZ2VUcmVlTm9kZUNocm9taXVtV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HbHlwaFBhZ2VUcmVlTm9kZUNocm9t
aXVtV2luLmNwcApAQCAtMzIsOSArMzIsOSBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNs
dWRlIDx2ZWN0b3I+CiAKKyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIkZv
bnQuaCIKICNpbmNsdWRlICJHbHlwaFBhZ2VUcmVlTm9kZS5oIgotI2luY2x1ZGUgIlBsYXRmb3Jt
QnJpZGdlLmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlICJVbmlzY3Jp
YmVIZWxwZXJUZXh0UnVuLmgiCiAjaW5jbHVkZSAiV2luZG93c1ZlcnNpb24uaCIKQEAgLTgwLDEx
ICs4MCwxMiBAQCBzdGF0aWMgYm9vbCBmaWxsQk1QR2x5cGhzKHVuc2lnbmVkIG9mZnNldCwKICAg
ICAgICAgUmVsZWFzZURDKDAsIGRjKTsKIAogICAgICAgICBpZiAocmVjdXJzZSkgewotICAgICAg
ICAgICAgaWYgKFBsYXRmb3JtQnJpZGdlOjplbnN1cmVGb250TG9hZGVkKGZvbnREYXRhLT5wbGF0
Zm9ybURhdGEoKS5oZm9udCgpKSkKKyAgICAgICAgICAgIGlmIChDaHJvbWl1bUJyaWRnZTo6ZW5z
dXJlRm9udExvYWRlZChmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkuaGZvbnQoKSkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZpbGxCTVBHbHlwaHMob2Zmc2V0LCBsZW5ndGgsIGJ1ZmZlciwgcGFn
ZSwgZm9udERhdGEsIGZhbHNlKTsKLQotICAgICAgICAgICAgZmlsbEVtcHR5R2x5cGhzKHBhZ2Up
OwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgZmlsbEVtcHR5R2x5cGhzKHBhZ2UpOworICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIEZJ
WE1FOiBIYW5kbGUgZ3JhY2VmdWxseSB0aGUgZXJyb3IgaWYgdGhpcyBjYWxsIGFsc28gZmFpbHMu
CiAgICAgICAgICAgICAvLyBTZWUgaHR0cDovL2NyYnVnLmNvbS82NDAxCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUNocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlQ2hyb21p
dW0uY3BwCmluZGV4IGUyYjZmN2EzNThlZjBhOGNkOGFlYWY4ZjlhMGI3ZmE0NzQ4OGIzYzAuLmU5
MGQ1NjY0NzUxMzFlOTVlMzhkMmU5MmIxYzczNzllZGU3MDUzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlQ2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlQ2hyb21p
dW0uY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SW1hZ2UuaCIKIAotI2luY2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCisjaW5jbHVkZSAiQ2hyb21p
dW1CcmlkZ2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw3ICszOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2U6OmxvYWRQbGF0Zm9y
bVJlc291cmNlKGNvbnN0IGNoYXIgKm5hbWUpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdl
Ojpsb2FkUGxhdGZvcm1JbWFnZVJlc291cmNlKG5hbWUpOworICAgIHJldHVybiBDaHJvbWl1bUJy
aWRnZTo6bG9hZFBsYXRmb3JtSW1hZ2VSZXNvdXJjZShuYW1lKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vSW1hZ2VDaHJvbWl1bU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ltYWdlQ2hyb21pdW1NYWMubW0KaW5kZXggZjAwMzg5NGU0YWM1ZWU5
Yjg0NmVmMWRkNDk1NThmNGRhY2VhMjY0ZS4uMDczYTQwOTY4NGE0YTJiMmYwMzY3ZGQwYzAxZGJl
ZDY5MDMxMWNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vSW1hZ2VDaHJvbWl1bU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUNocm9taXVtTWFjLm1tCkBAIC0zMywxNCArMzMsMTQg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgogCisjaW5j
bHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIlBs
YXRmb3JtQnJpZGdlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxJbWFn
ZT4gSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUpCiB7Ci0gICAg
cmV0dXJuIFBsYXRmb3JtQnJpZGdlOjpsb2FkUGxhdGZvcm1JbWFnZVJlc291cmNlKG5hbWUpOwor
ICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6bG9hZFBsYXRmb3JtSW1hZ2VSZXNvdXJjZShuYW1l
KTsKIH0KIAogLy8gRklYTUU6IFRoZXNlIGFyZSB0ZW1wb3Jhcnkgc3R1YnMsIHdlIG5lZWQgcmVh
bCBpbXBsZW1lbnRhdGlvbnMgd2hpY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21pdW1XaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFDaHJv
bWl1bVdpbi5jcHAKaW5kZXggYzIzYzU4NmI5MDY1ZTNkYjA3N2RjN2JiMzkxOGIzOWE3NWJlOTlj
NC4uMjA0YzU2NWViOTUwZTE2OTcwYjI3MzBhYzExZWIxMTRlZjE1N2VlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFD
aHJvbWl1bVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vU2ltcGxlRm9udERhdGFDaHJvbWl1bVdpbi5jcHAKQEAgLTMyLDExICszMiwxMSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAKLSNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUg
IkZvbnQuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIK
ICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5o
IgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKICNpbmNsdWRlIDx1bmljb2RlL3VjaGFy
Lmg+CkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtSW5pdCgp
CiAKICAgICBURVhUTUVUUklDIHRleHRNZXRyaWMgPSB7MH07CiAgICAgaWYgKCFHZXRUZXh0TWV0
cmljcyhkYywgJnRleHRNZXRyaWMpKSB7Ci0gICAgICAgIGlmIChQbGF0Zm9ybUJyaWRnZTo6ZW5z
dXJlRm9udExvYWRlZChtX3BsYXRmb3JtRGF0YS5oZm9udCgpKSkgeworICAgICAgICBpZiAoQ2hy
b21pdW1CcmlkZ2U6OmVuc3VyZUZvbnRMb2FkZWQobV9wbGF0Zm9ybURhdGEuaGZvbnQoKSkpIHsK
ICAgICAgICAgICAgIC8vIFJldHJ5IEdldFRleHRNZXRyaWNzLgogICAgICAgICAgICAgLy8gRklY
TUU6IEhhbmRsZSBncmFjZWZ1bGx5IHRoZSBlcnJvciBpZiB0aGlzIGNhbGwgYWxzbyBmYWlscy4K
ICAgICAgICAgICAgIC8vIFNlZSBodHRwOi8vY3JidWcuY29tLzY0MDEuCkBAIC0xNTksNyArMTU5
LDcgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6ZGV0ZXJtaW5lUGl0Y2goKQogICAgIC8vIGlzICpu
b3QqIGZpeGVkIHBpdGNoLiAgVW5iZWxpZXZhYmxlIGJ1dCB0cnVlLgogICAgIFRFWFRNRVRSSUMg
dGV4dE1ldHJpYyA9IHswfTsKICAgICBpZiAoIUdldFRleHRNZXRyaWNzKGRjLCAmdGV4dE1ldHJp
YykpIHsKLSAgICAgICAgaWYgKFBsYXRmb3JtQnJpZGdlOjplbnN1cmVGb250TG9hZGVkKG1fcGxh
dGZvcm1EYXRhLmhmb250KCkpKSB7CisgICAgICAgIGlmIChDaHJvbWl1bUJyaWRnZTo6ZW5zdXJl
Rm9udExvYWRlZChtX3BsYXRmb3JtRGF0YS5oZm9udCgpKSkgewogICAgICAgICAgICAgLy8gUmV0
cnkgR2V0VGV4dE1ldHJpY3MuCiAgICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIGdyYWNlZnVs
bHkgdGhlIGVycm9yIGlmIHRoaXMgY2FsbCBhbHNvIGZhaWxzLgogICAgICAgICAgICAgLy8gU2Vl
IGh0dHA6Ly9jcmJ1Zy5jb20vNjQwMS4KQEAgLTE5MCw3ICsxOTAsNyBAQCBmbG9hdCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogICAgIGlu
dCB3aWR0aCA9IDA7CiAgICAgaWYgKCFHZXRDaGFyV2lkdGhJKGRjLCBnbHlwaCwgMSwgMCwgJndp
ZHRoKSkgewogICAgICAgICAvLyBBc2sgdGhlIGJyb3dzZXIgdG8gcHJlbG9hZCB0aGUgZm9udCBh
bmQgcmV0cnkuCi0gICAgICAgIGlmIChQbGF0Zm9ybUJyaWRnZTo6ZW5zdXJlRm9udExvYWRlZCht
X3BsYXRmb3JtRGF0YS5oZm9udCgpKSkgeworICAgICAgICBpZiAoQ2hyb21pdW1CcmlkZ2U6OmVu
c3VyZUZvbnRMb2FkZWQobV9wbGF0Zm9ybURhdGEuaGZvbnQoKSkpIHsKICAgICAgICAgICAgIC8v
IEZJWE1FOiBIYW5kbGUgZ3JhY2VmdWxseSB0aGUgZXJyb3IgaWYgdGhpcyBjYWxsIGFsc28gZmFp
bHMuCiAgICAgICAgICAgICAvLyBTZWUgaHR0cDovL2NyYnVnLmNvbS82NDAxLgogICAgICAgICAg
ICAgaWYgKCFHZXRDaGFyV2lkdGhJKGRjLCBnbHlwaCwgMSwgMCwgJndpZHRoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhl
bHBlclRleHRSdW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAKaW5kZXggYWExOGI0YWE5ZWQ2OWNkOGY1NWJm
ZjgxNGViNDdhZjYzNTkyMmQ4MC4uODRhMDhmYzg4MTJlYjQ4OTg2NDJkZjUzMTk0NTFhMTQ5NTJm
YmE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAKQEAgLTMxLDgg
KzMxLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJVbmlzY3JpYmVIZWxwZXJU
ZXh0UnVuLmgiCiAKKyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIkZvbnQu
aCIKLSNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRh
LmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgogCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgVW5pc2Ny
aWJlSGVscGVyVGV4dFJ1bjo6dHJ5VG9QcmVsb2FkRm9udChIRk9OVCBmb250KQogICAgIC8vIEFz
ayB0aGUgYnJvd3NlciB0byBnZXQgdGhlIGZvbnQgbWV0cmljcyBmb3IgdGhpcyBmb250LgogICAg
IC8vIFRoYXQgd2lsbCBwcmVsb2FkIHRoZSBmb250IGFuZCBpdCBzaG91bGQgbm93IGJlIGFjY2Vz
c2libGUKICAgICAvLyBmcm9tIHRoZSByZW5kZXJlci4KLSAgICBQbGF0Zm9ybUJyaWRnZTo6ZW5z
dXJlRm9udExvYWRlZChmb250KTsKKyAgICBDaHJvbWl1bUJyaWRnZTo6ZW5zdXJlRm9udExvYWRl
ZChmb250KTsKIH0KIAogYm9vbCBVbmlzY3JpYmVIZWxwZXJUZXh0UnVuOjpuZXh0V2luRm9udERh
dGEoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCAwYjMxZGZhOGEwOWYwZGFi
OTdiMDg4YzBkZjMxNDY0MGFhNTdiMGQwLi5lOTRjNDE3MTNiOWM0MWVhMWQ2MjFmMmU5ZTM2MTFl
ZTgxY2E2NzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTM1LDggKzM1
LDggQEAKIAogI2lmIE9TKFdJTkRPV1MpCiAjaW5jbHVkZSAiQmFzZTY0LmgiCisjaW5jbHVkZSAi
Q2hyb21pdW1CcmlkZ2UuaCIKICNpbmNsdWRlICJPcGVuVHlwZVV0aWxpdGllcy5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCiAjZWxpZiBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwg
UExBVEZPUk0oQlJFV01QKQogI2luY2x1ZGUgIlNrU3RyZWFtLmgiCiAjZW5kaWYKQEAgLTkxLDcg
KzkxLDcgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxh
dGZvcm1EYXRhKGludCBzaXplLCBib29sIGJvbGQsIGIKICAgICBsb2dGb250LmxmU3RyaWtlT3V0
ID0gZmFsc2U7CiAgICAgbG9nRm9udC5sZkNoYXJTZXQgPSBERUZBVUxUX0NIQVJTRVQ7CiAgICAg
bG9nRm9udC5sZk91dFByZWNpc2lvbiA9IE9VVF9UVF9PTkxZX1BSRUNJUzsKLSAgICBsb2dGb250
LmxmUXVhbGl0eSA9IFBsYXRmb3JtQnJpZGdlOjpsYXlvdXRUZXN0TW9kZSgpID8KKyAgICBsb2dG
b250LmxmUXVhbGl0eSA9IENocm9taXVtQnJpZGdlOjpsYXlvdXRUZXN0TW9kZSgpID8KICAgICAg
ICAgICAgICAgICAgICAgICAgIE5PTkFOVElBTElBU0VEX1FVQUxJVFkgOgogICAgICAgICAgICAg
ICAgICAgICAgICAgREVGQVVMVF9RVUFMSVRZOyAvLyBIb25vciB1c2VyJ3MgZGVza3RvcCBzZXR0
aW5ncy4KICAgICBsb2dGb250LmxmUGl0Y2hBbmRGYW1pbHkgPSBERUZBVUxUX1BJVENIIHwgRkZf
RE9OVENBUkU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL0Nvb2tpZUphckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2hyb21pdW0vQ29va2llSmFyQ2hyb21pdW0uY3BwCmluZGV4IDJmMjQ4OWI2YjY5ZmI4
ODg3NTU1MTU5YzM1MDNhMmUwMDNhOGFjM2MuLmUxNzgxNmFmODJhZGZlZmUxNmVjN2VkYzgzZDI1
MWQyNzZhNTZkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2hyb21pdW0vQ29va2llSmFyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2hyb21pdW0vQ29va2llSmFyQ2hyb21pdW0uY3BwCkBAIC0zMiwzOSArMzIs
MzkgQEAKICNpbmNsdWRlICJDb29raWVKYXIuaCIKIAogI2luY2x1ZGUgIkNvb2tpZS5oIgorI2lu
Y2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRl
ICJQbGF0Zm9ybUJyaWRnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgc2V0Q29v
a2llcyhEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIHsKLSAgICBQbGF0Zm9ybUJyaWRnZTo6c2V0Q29va2llcyhkb2N1bWVudCwgdXJsLCB2
YWx1ZSk7CisgICAgQ2hyb21pdW1CcmlkZ2U6OnNldENvb2tpZXMoZG9jdW1lbnQsIHVybCwgdmFs
dWUpOwogfQogCiBTdHJpbmcgY29va2llcyhjb25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0
IEtVUkwmIHVybCkKIHsKLSAgICByZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OmNvb2tpZXMoZG9jdW1l
bnQsIHVybCk7CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpjb29raWVzKGRvY3VtZW50LCB1
cmwpOwogfQogCiBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgRG9j
dW1lbnQqIGRvY3VtZW50LCBjb25zdCBLVVJMJiB1cmwpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3Jt
QnJpZGdlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShkb2N1bWVudCwgdXJsKTsKKyAg
ICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGRv
Y3VtZW50LCB1cmwpOwogfQogCiBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50KiBk
b2N1bWVudCkKIHsKLSAgICByZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OmNvb2tpZXNFbmFibGVkKGRv
Y3VtZW50KTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmNvb2tpZXNFbmFibGVkKGRvY3Vt
ZW50KTsKIH0KIAogYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwg
Y29uc3QgS1VSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykKIHsKLSAgICByZXR1
cm4gUGxhdGZvcm1CcmlkZ2U6OnJhd0Nvb2tpZXMoZG9jdW1lbnQsIHVybCwgcmF3Q29va2llcyk7
CisgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpyYXdDb29raWVzKGRvY3VtZW50LCB1cmwsIHJh
d0Nvb2tpZXMpOwogfQogCiB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCogZG9jdW1l
bnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKQogewotICAgIHJl
dHVybiBQbGF0Zm9ybUJyaWRnZTo6ZGVsZXRlQ29va2llKGRvY3VtZW50LCB1cmwsIGNvb2tpZU5h
bWUpOworICAgIHJldHVybiBDaHJvbWl1bUJyaWRnZTo6ZGVsZXRlQ29va2llKGRvY3VtZW50LCB1
cmwsIGNvb2tpZU5hbWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL0ROU0Nocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vRE5TQ2hyb21pdW0u
Y3BwCmluZGV4IDdiOWVhYzU3ZDg1OTA2M2JjM2Q4YzkxYWVlNGNmYjYzNjA2NTMxOGYuLjIxZmNk
NDZjODcyNjZlZWEzNWU3NzlkOGI3NTRiNzk4M2M3NjNkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vRE5TQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vRE5TQ2hyb21pdW0uY3BwCkBA
IC0yNiwxNCArMjYsMTQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJETlMuaCIK
IAotI2luY2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCisjaW5jbHVkZSAiQ2hyb21pdW1CcmlkZ2Uu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHZvaWQgcHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKIHsKLSAgICBQbGF0Zm9y
bUJyaWRnZTo6cHJlZmV0Y2hETlMoaG9zdG5hbWUpOworICAgIENocm9taXVtQnJpZGdlOjpwcmVm
ZXRjaEROUyhob3N0bmFtZSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnByZXBhcmVGb3JV
UkwoY29uc3QgS1VSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvUGxhdGZvcm1CcmlkZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3Jt
QnJpZGdlLmgKaW5kZXggOTY0NzUwN2Y5M2NlOTg5ZjM1YzEzODUwMGVmMzZiN2NjZjM4ZDlmMS4u
ZTQ3OGQ4ZjQxYTExNzQ5ZDkxNDQ5MzZhYjYyODEwYzllZjcyZmU3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1CcmlkZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybUJyaWRnZS5oCkBAIC04Niw3ICs4Niw3IEBAIGNsYXNz
IFdpZGdldDsKIAogLy8gQW4gaW50ZXJmYWNlIHRvIHRoZSBlbWJlZGRpbmcgbGF5ZXIsIHdoaWNo
IGhhcyB0aGUgYWJpbGl0eSB0byBhbnN3ZXIKIC8vIHF1ZXN0aW9ucyBhYm91dCB0aGUgc3lzdGVt
IGFuZCBzbyBvbi4uLgotLy8gVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gY2hyb21pdW0vUGxhdGZv
cm1CcmlkZ2UgYW5kIHRoZSB0d28gYXJlIGxpa2VseSB0byBjb252ZXJnZQorLy8gVGhpcyBpcyB2
ZXJ5IHNpbWlsYXIgdG8gQ2hyb21pdW1CcmlkZ2UgYW5kIHRoZSB0d28gYXJlIGxpa2VseSB0byBj
b252ZXJnZQogLy8gaW4gdGhlIGZ1dHVyZS4KIGNsYXNzIFBsYXRmb3JtQnJpZGdlIHsKIHB1Ymxp
YzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9jaHJvbWl1bS9TUUxp
dGVGaWxlU3lzdGVtQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL2No
cm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKaW5kZXggYjc5ZWIxYTIwZDA0YmM1
ODM4ZDhlNTJlNzUwNzM1OGExNmU3MGFkNC4uMGEwOTg4ODNkOWRmZDllYWYwZWUzYjJjYzEzYzMy
YTY3NDk3ODI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9t
aXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL2Nocm9taXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKQEAgLTMxLDcg
KzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTUUxpdGVGaWxlU3lzdGVt
LmgiCiAKLSNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgorI2luY2x1ZGUgIkNocm9taXVtQnJp
ZGdlLmgiCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKICNpbmNsdWRlIDxzcWxpdGUzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtOTIsMTIgKzkyLDEyIEBAIGJvb2wg
U1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEYXRhYmFzZURpcmVjdG9yeShjb25zdCBTdHJp
bmcmKQogCiBib29sIFNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmlsZShjb25zdCBT
dHJpbmcmIGZpbGVOYW1lKQogewotICAgIHJldHVybiAoUGxhdGZvcm1CcmlkZ2U6OmRhdGFiYXNl
RGVsZXRlRmlsZShmaWxlTmFtZSkgPT0gU1FMSVRFX09LKTsKKyAgICByZXR1cm4gKENocm9taXVt
QnJpZGdlOjpkYXRhYmFzZURlbGV0ZUZpbGUoZmlsZU5hbWUpID09IFNRTElURV9PSyk7CiB9CiAK
IGxvbmcgbG9uZyBTUUxpdGVGaWxlU3lzdGVtOjpnZXREYXRhYmFzZUZpbGVTaXplKGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtQnJpZGdlOjpkYXRhYmFzZUdl
dEZpbGVTaXplKGZpbGVOYW1lKTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmRhdGFiYXNl
R2V0RmlsZVNpemUoZmlsZU5hbWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5
c3RlbUNocm9taXVtUG9zaXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9t
aXVtL1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bVBvc2l4LmNwcAppbmRleCAzN2Y5NmJlNjliMGE3
ZWE4MjEwYzllNTU2ZDlhMWZmZjBmOTc3ZDZhLi4xMTAyZGY1YmQ1NDY1YzZjZmIxNDUxZjI4YzQ2
Zjk2ODk0YTZjNmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hy
b21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtUG9zaXguY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NxbC9jaHJvbWl1bS9TUUxpdGVGaWxlU3lzdGVtQ2hyb21pdW1Qb3NpeC5j
cHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTUUxp
dGVGaWxlU3lzdGVtLmgiCiAKLSNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgorI2luY2x1ZGUg
IkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSA8c3FsaXRlMy5oPgogCiAjaW5jbHVkZSA8ZXJy
bm8uaD4KQEAgLTk5NiwxMCArOTk2LDEwIEBAIHN0YXRpYyBpbnQgY2hyb21pdW1PcGVuKHNxbGl0
ZTNfdmZzKiB2ZnMsIGNvbnN0IGNoYXIqIGZpbGVOYW1lLAogICAgIH0KIAogICAgIGlmIChmZCA8
IDApIHsKLSAgICAgICAgZmQgPSBQbGF0Zm9ybUJyaWRnZTo6ZGF0YWJhc2VPcGVuRmlsZShmaWxl
TmFtZSwgZGVzaXJlZEZsYWdzKTsKKyAgICAgICAgZmQgPSBDaHJvbWl1bUJyaWRnZTo6ZGF0YWJh
c2VPcGVuRmlsZShmaWxlTmFtZSwgZGVzaXJlZEZsYWdzKTsKICAgICAgICAgaWYgKChmZCA8IDAp
ICYmIChkZXNpcmVkRmxhZ3MgJiBTUUxJVEVfT1BFTl9SRUFEV1JJVEUpKSB7CiAgICAgICAgICAg
ICBpbnQgbmV3RmxhZ3MgPSAoZGVzaXJlZEZsYWdzICYgfihTUUxJVEVfT1BFTl9SRUFEV1JJVEUg
fCBTUUxJVEVfT1BFTl9DUkVBVEUpKSB8IFNRTElURV9PUEVOX1JFQURPTkxZOwotICAgICAgICAg
ICAgZmQgPSBQbGF0Zm9ybUJyaWRnZTo6ZGF0YWJhc2VPcGVuRmlsZShmaWxlTmFtZSwgbmV3Rmxh
Z3MpOworICAgICAgICAgICAgZmQgPSBDaHJvbWl1bUJyaWRnZTo6ZGF0YWJhc2VPcGVuRmlsZShm
aWxlTmFtZSwgbmV3RmxhZ3MpOwogICAgICAgICB9CiAgICAgfQogICAgIGlmIChmZCA8IDApIHsK
QEAgLTEwMzEsNyArMTAzMSw3IEBAIHN0YXRpYyBpbnQgY2hyb21pdW1PcGVuKHNxbGl0ZTNfdmZz
KiB2ZnMsIGNvbnN0IGNoYXIqIGZpbGVOYW1lLAogLy8gICAgICAgICAgIHNob3VsZCBiZSBzeW5j
aGVkIGFmdGVyIHRoZSBmaWxlIGlzIGRlbGV0ZWQuCiBzdGF0aWMgaW50IGNocm9taXVtRGVsZXRl
KHNxbGl0ZTNfdmZzKiwgY29uc3QgY2hhciogZmlsZU5hbWUsIGludCBzeW5jRGlyKQogewotICAg
IHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6ZGF0YWJhc2VEZWxldGVGaWxlKGZpbGVOYW1lLCBzeW5j
RGlyKTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmRhdGFiYXNlRGVsZXRlRmlsZShmaWxl
TmFtZSwgc3luY0Rpcik7CiB9CiAKIC8vIENoZWNrIHRoZSBleGlzdGFuY2UgYW5kIHN0YXR1cyBv
ZiB0aGUgZ2l2ZW4gZmlsZS4KQEAgLTEwNDIsNyArMTA0Miw3IEBAIHN0YXRpYyBpbnQgY2hyb21p
dW1EZWxldGUoc3FsaXRlM192ZnMqLCBjb25zdCBjaGFyKiBmaWxlTmFtZSwgaW50IHN5bmNEaXIp
CiAvLyByZXMgLSB0aGUgcmVzdWx0Lgogc3RhdGljIGludCBjaHJvbWl1bUFjY2VzcyhzcWxpdGUz
X3ZmcyosIGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBpbnQgZmxhZywgaW50KiByZXMpCiB7Ci0gICAg
aW50IGF0dHIgPSBzdGF0aWNfY2FzdDxpbnQ+KFBsYXRmb3JtQnJpZGdlOjpkYXRhYmFzZUdldEZp
bGVBdHRyaWJ1dGVzKGZpbGVOYW1lKSk7CisgICAgaW50IGF0dHIgPSBzdGF0aWNfY2FzdDxpbnQ+
KENocm9taXVtQnJpZGdlOjpkYXRhYmFzZUdldEZpbGVBdHRyaWJ1dGVzKGZpbGVOYW1lKSk7CiAg
ICAgaWYgKGF0dHIgPCAwKSB7CiAgICAgICAgICpyZXMgPSAwOwogICAgICAgICByZXR1cm4gU1FM
SVRFX09LOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL2Nocm9taXVt
L1NRTGl0ZUZpbGVTeXN0ZW1DaHJvbWl1bVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtV2luLmNwcAppbmRleCA0N2Uw
MWQwZDg0ZDk0ZDgyMDRlOWY3MmU2MTY4OWQzMWRmN2I4NjdkLi5kODQ2YWY3ZGY3MTBiOWEyNGE1
YTc2ZjUzYTM0NTVhNzc4M2M4ZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVtV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvY2hyb21pdW0vU1FMaXRlRmlsZVN5c3RlbUNocm9taXVt
V2luLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlNRTGl0ZUZpbGVTeXN0ZW0uaCIKIAotI2luY2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCisjaW5j
bHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIKICNpbmNsdWRlIDxzcWxpdGUzLmg+CiAjaW5jbHVkZSA8
d2luZG93cy5oPgogCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSB7CiBpbnQgY2hyb21pdW1P
cGVuKHNxbGl0ZTNfdmZzKiwgY29uc3QgY2hhciogZmlsZU5hbWUsCiAgICAgICAgICAgICAgICAg
IHNxbGl0ZTNfZmlsZSogaWQsIGludCBkZXNpcmVkRmxhZ3MsIGludCogdXNlZEZsYWdzKQogewot
ICAgIEhBTkRMRSBoID0gUGxhdGZvcm1CcmlkZ2U6OmRhdGFiYXNlT3BlbkZpbGUoZmlsZU5hbWUs
IGRlc2lyZWRGbGFncyk7CisgICAgSEFORExFIGggPSBDaHJvbWl1bUJyaWRnZTo6ZGF0YWJhc2VP
cGVuRmlsZShmaWxlTmFtZSwgZGVzaXJlZEZsYWdzKTsKICAgICBpZiAoaCA9PSBJTlZBTElEX0hB
TkRMRV9WQUxVRSkgewogICAgICAgICBpZiAoZGVzaXJlZEZsYWdzICYgU1FMSVRFX09QRU5fUkVB
RFdSSVRFKSB7CiAgICAgICAgICAgICBpbnQgbmV3RmxhZ3MgPSAoZGVzaXJlZEZsYWdzIHwgU1FM
SVRFX09QRU5fUkVBRE9OTFkpICYgflNRTElURV9PUEVOX1JFQURXUklURTsKQEAgLTgyLDcgKzgy
LDcgQEAgaW50IGNocm9taXVtT3BlbihzcWxpdGUzX3ZmcyosIGNvbnN0IGNoYXIqIGZpbGVOYW1l
LAogLy8gICAgICAgICAgIHNob3VsZCBiZSBzeW5jaGVkIGFmdGVyIHRoZSBmaWxlIGlzIGRlbGV0
ZWQuCiBpbnQgY2hyb21pdW1EZWxldGUoc3FsaXRlM192ZnMqLCBjb25zdCBjaGFyKiBmaWxlTmFt
ZSwgaW50KQogewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6ZGF0YWJhc2VEZWxldGVGaWxl
KGZpbGVOYW1lKTsKKyAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmRhdGFiYXNlRGVsZXRlRmls
ZShmaWxlTmFtZSk7CiB9CiAKIC8vIENoZWNrIHRoZSBleGlzdGFuY2UgYW5kIHN0YXR1cyBvZiB0
aGUgZ2l2ZW4gZmlsZS4KQEAgLTkzLDcgKzkzLDcgQEAgaW50IGNocm9taXVtRGVsZXRlKHNxbGl0
ZTNfdmZzKiwgY29uc3QgY2hhciogZmlsZU5hbWUsIGludCkKIC8vIHJlcyAtIHRoZSByZXN1bHQu
CiBpbnQgY2hyb21pdW1BY2Nlc3Moc3FsaXRlM192ZnMqLCBjb25zdCBjaGFyKiBmaWxlTmFtZSwg
aW50IGZsYWcsIGludCogcmVzKQogewotICAgIERXT1JEIGF0dHIgPSBQbGF0Zm9ybUJyaWRnZTo6
ZGF0YWJhc2VHZXRGaWxlQXR0cmlidXRlcyhmaWxlTmFtZSk7CisgICAgRFdPUkQgYXR0ciA9IENo
cm9taXVtQnJpZGdlOjpkYXRhYmFzZUdldEZpbGVBdHRyaWJ1dGVzKGZpbGVOYW1lKTsKICAgICBz
d2l0Y2ggKGZsYWcpIHsKICAgICBjYXNlIFNRTElURV9BQ0NFU1NfUkVBRDoKICAgICBjYXNlIFNR
TElURV9BQ0NFU1NfRVhJU1RTOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9j
aHJvbWl1bS9QbHVnaW5EYXRhQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9j
aHJvbWl1bS9QbHVnaW5EYXRhQ2hyb21pdW0uY3BwCmluZGV4IDc3Y2RiYmY1MjYwZTIyMzVmZWE1
YTQxMWNhMzRkOTE4ZDU0ZGIwYzIuLmM5MjQwNjNkNmZiMTMyYWE4OGM3OTk4NGYyMWE0YWNjNzdl
ZWE5YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvY2hyb21pdW0vUGx1Z2lu
RGF0YUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2Nocm9taXVtL1Bs
dWdpbkRhdGFDaHJvbWl1bS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJQbHVnaW5EYXRhQ2hyb21pdW0uaCIKIAotI2luY2x1ZGUgIlBsYXRmb3Jt
QnJpZGdlLmgiCisjaW5jbHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8UGx1Z2lu
SW5mbz4mIHBsdWdpbnMoKQogICAgIHsKICAgICAgICAgaWYgKCFtX2xvYWRlZCkgewotICAgICAg
ICAgICAgUGxhdGZvcm1CcmlkZ2U6OnBsdWdpbnMobV9yZWZyZXNoLCAmbV9wbHVnaW5zKTsKKyAg
ICAgICAgICAgIENocm9taXVtQnJpZGdlOjpwbHVnaW5zKG1fcmVmcmVzaCwgJm1fcGx1Z2lucyk7
CiAgICAgICAgICAgICBtX2xvYWRlZCA9IHRydWU7CiAgICAgICAgICAgICBtX3JlZnJlc2ggPSBm
YWxzZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bU1hYy5tbQppbmRleCAxMDI4NWFjMDEyYmQzODZlMmU3OGQyYTY1YTRiMDc0
ZDcxMWE3MjdhLi4wMmViMTM0YmQ1NDMxNTRhMGYzNjAwNDIwMjJlNGQ3ZDJmM2QzNzE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5t
bQpAQCAtMjAsOCArMjAsOCBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlJlbmRl
clRoZW1lQ2hyb21pdW1NYWMuaCIKKyNpbXBvcnQgIkNocm9taXVtQnJpZGdlLmgiCiAjaW1wb3J0
ICJQYWludEluZm8uaCIKLSNpbXBvcnQgIlBsYXRmb3JtQnJpZGdlLmgiCiAjaW1wb3J0ICJSZW5k
ZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uaCIKICNpbXBvcnQgIlVzZXJBZ2VudFN0eWxlU2hlZXRz
LmgiCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CkBAIC03MSw3ICs3MSw3IEBAIFBhc3NSZWZQ
dHI8UmVuZGVyVGhlbWU+IFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmNyZWF0ZSgpCiAKIGJvb2wg
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6dXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3IoKSBjb25z
dAogewotICAgIHJldHVybiBQbGF0Zm9ybUJyaWRnZTo6bGF5b3V0VGVzdE1vZGUoKTsKKyAgICBy
ZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmxheW91dFRlc3RNb2RlKCk7CiB9CiAKIE5TVmlldyogUmVu
ZGVyVGhlbWVDaHJvbWl1bU1hYzo6ZG9jdW1lbnRWaWV3Rm9yKFJlbmRlck9iamVjdCopIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bVNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1T
a2lhLmNwcAppbmRleCAxNDU3NzY2MDVlNzg4YzJmNWM0Y2JmZWRkOWRhOTIzYTM3NWNiZjU2Li5i
YjYwYzFmNzcxYjUwNGQ2MjkyMjE0MDgwMGU2NTVhMWJhMTYzN2U1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKQEAgLTI0
LDYgKzI0LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZUNo
cm9taXVtU2tpYS5oIgogCisjaW5jbHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIKICNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ3VycmVudFRpbWUuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKQEAgLTMyLDcgKzMzLDYgQEAKICNpbmNsdWRlICJJbWFnZS5oIgog
I2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgi
Ci0jaW5jbHVkZSAiUGxhdGZvcm1CcmlkZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRT
a2lhLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyTWVkaWFDb250
cm9sc0Nocm9taXVtLmgiCkBAIC0xODUsNyArMTg1LDcgQEAgZG91YmxlIFJlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhOjpjYXJldEJsaW5rSW50ZXJ2YWwoKSBjb25zdAogewogICAgIC8vIERpc2FibGUg
dGhlIGJsaW5raW5nIGNhcmV0IGluIGxheW91dCB0ZXN0IG1vZGUsIGFzIGl0IGludHJvZHVjZXMK
ICAgICAvLyBhIHJhY2UgY29uZGl0aW9uIGZvciB0aGUgcGl4ZWwgdGVzdHMuIGh0dHA6Ly9iLzEx
OTg0NDAKLSAgICBpZiAoUGxhdGZvcm1CcmlkZ2U6OmxheW91dFRlc3RNb2RlKCkpCisgICAgaWYg
KENocm9taXVtQnJpZGdlOjpsYXlvdXRUZXN0TW9kZSgpKQogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIHJldHVybiBjYXJldEJsaW5rSW50ZXJ2YWxJbnRlcm5hbCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwCmluZGV4IGJiYTA1
MjA0YWEzMmZlNDNiZTQ4ZGNjZDZhMjc2NThkODc4MTQ1YjIuLjU3MmFhMmZkNWJkZWQ4ZDY4ZTFm
YzY5MWIwYTlhZjk4YjU3M2UyMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
IDx2c3N5bTMyLmg+CiAKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAi
Q2hyb21pdW1CcmlkZ2UuaCIKICNpbmNsdWRlICJDdXJyZW50VGltZS5oIgogI2luY2x1ZGUgIkZv
bnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkZvbnRVdGlsc0Nocm9taXVtV2luLmgiCkBAIC0zOCw3
ICszOSw2IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9s
RWxlbWVudHMuaCIKICNpbmNsdWRlICJQYWludEluZm8uaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUJy
aWRnZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclByb2dyZXNz
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCkBAIC0yMzgsNyArMjM4LDcgQEAgYm9vbCBS
ZW5kZXJUaGVtZUNocm9taXVtV2luOjpzdXBwb3J0c0ZvY3VzUmluZyhjb25zdCBSZW5kZXJTdHls
ZSogc3R5bGUpIGNvbnN0CiAKIENvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBsYXRmb3Jt
QWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIHsKLSAgICBpZiAoUGxhdGZv
cm1CcmlkZ2U6OmxheW91dFRlc3RNb2RlKCkpCisgICAgaWYgKENocm9taXVtQnJpZGdlOjpsYXlv
dXRUZXN0TW9kZSgpKQogICAgICAgICByZXR1cm4gQ29sb3IoMHgwMCwgMHgwMCwgMHhmZik7IC8v
IFJveWFsIGJsdWUuCiAgICAgQ09MT1JSRUYgY29sb3IgPSBHZXRTeXNDb2xvcihDT0xPUl9ISUdI
TElHSFQpOwogICAgIHJldHVybiBDb2xvcihHZXRSVmFsdWUoY29sb3IpLCBHZXRHVmFsdWUoY29s
b3IpLCBHZXRCVmFsdWUoY29sb3IpLCAweGZmKTsKQEAgLTI0Niw3ICsyNDYsNyBAQCBDb2xvciBS
ZW5kZXJUaGVtZUNocm9taXVtV2luOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcigpIGNvbnN0CiAKIENvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBsYXRmb3JtSW5h
Y3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewotICAgIGlmIChQbGF0Zm9y
bUJyaWRnZTo6bGF5b3V0VGVzdE1vZGUoKSkKKyAgICBpZiAoQ2hyb21pdW1CcmlkZ2U6OmxheW91
dFRlc3RNb2RlKCkpCiAgICAgICAgIHJldHVybiBDb2xvcigweDk5LCAweDk5LCAweDk5KTsgLy8g
TWVkaXVtIGdyYXkuCiAgICAgQ09MT1JSRUYgY29sb3IgPSBHZXRTeXNDb2xvcihDT0xPUl9HUkFZ
VEVYVCk7CiAgICAgcmV0dXJuIENvbG9yKEdldFJWYWx1ZShjb2xvciksIEdldEdWYWx1ZShjb2xv
ciksIEdldEJWYWx1ZShjb2xvciksIDB4ZmYpOwpAQCAtMjU0LDcgKzI1NCw3IEBAIENvbG9yIFJl
bmRlclRoZW1lQ2hyb21pdW1XaW46OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IoKSBjb25zdAogCiBDb2xvciBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiB7Ci0gICAgaWYgKFBsYXRmb3Jt
QnJpZGdlOjpsYXlvdXRUZXN0TW9kZSgpKQorICAgIGlmIChDaHJvbWl1bUJyaWRnZTo6bGF5b3V0
VGVzdE1vZGUoKSkKICAgICAgICAgcmV0dXJuIENvbG9yKDB4ZmYsIDB4ZmYsIDB4Y2MpOyAvLyBQ
YWxlIHllbGxvdy4KICAgICBDT0xPUlJFRiBjb2xvciA9IEdldFN5c0NvbG9yKENPTE9SX0hJR0hM
SUdIVFRFWFQpOwogICAgIHJldHVybiBDb2xvcihHZXRSVmFsdWUoY29sb3IpLCBHZXRHVmFsdWUo
Y29sb3IpLCBHZXRCVmFsdWUoY29sb3IpLCAweGZmKTsKQEAgLTM3NSw3ICszNzUsNyBAQCBzdGF0
aWMgaW50IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoaW50IGNzc1ZhbHVlSWQpCiBDb2xvciBS
ZW5kZXJUaGVtZUNocm9taXVtV2luOjpzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QK
IHsKICAgICBpbnQgc3lzQ29sb3JJbmRleCA9IGNzc1ZhbHVlSWRUb1N5c0NvbG9ySW5kZXgoY3Nz
VmFsdWVJZCk7Ci0gICAgaWYgKFBsYXRmb3JtQnJpZGdlOjpsYXlvdXRUZXN0TW9kZSgpIHx8IChz
eXNDb2xvckluZGV4ID09IC0xKSkKKyAgICBpZiAoQ2hyb21pdW1CcmlkZ2U6OmxheW91dFRlc3RN
b2RlKCkgfHwgKHN5c0NvbG9ySW5kZXggPT0gLTEpKQogICAgICAgICByZXR1cm4gUmVuZGVyVGhl
bWU6OnN5c3RlbUNvbG9yKGNzc1ZhbHVlSWQpOwogCiAgICAgQ09MT1JSRUYgY29sb3IgPSBHZXRT
eXNDb2xvcihzeXNDb2xvckluZGV4KTsKQEAgLTQxMSw3ICs0MTEsNyBAQCBib29sIFJlbmRlclRo
ZW1lQ2hyb21pdW1XaW46OnBhaW50QnV0dG9uKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJ
bmZvJiBpLCBjbwogICAgIGNvbnN0IFRoZW1lRGF0YSYgdGhlbWVEYXRhID0gZ2V0VGhlbWVEYXRh
KG8pOwogCiAgICAgVGhlbWVQYWludGVyIHBhaW50ZXIoaS5jb250ZXh0LCByKTsKLSAgICBQbGF0
Zm9ybUJyaWRnZTo6cGFpbnRCdXR0b24ocGFpbnRlci5jb250ZXh0KCksCisgICAgQ2hyb21pdW1C
cmlkZ2U6OnBhaW50QnV0dG9uKHBhaW50ZXIuY29udGV4dCgpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGVtZURhdGEubV9wYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGVtZURhdGEubV9zdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhlbWVEYXRhLm1fY2xhc3NpY1N0YXRlLApAQCAtNDI5LDcgKzQyOSw3IEBAIGJvb2wgUmVu
ZGVyVGhlbWVDaHJvbWl1bVdpbjo6cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNv
bnN0IFBhaW50SW5mbyYKICAgICBjb25zdCBUaGVtZURhdGEmIHRoZW1lRGF0YSA9IGdldFRoZW1l
RGF0YShvKTsKIAogICAgIFRoZW1lUGFpbnRlciBwYWludGVyKGkuY29udGV4dCwgcik7Ci0gICAg
UGxhdGZvcm1CcmlkZ2U6OnBhaW50VHJhY2tiYXIocGFpbnRlci5jb250ZXh0KCksCisgICAgQ2hy
b21pdW1CcmlkZ2U6OnBhaW50VHJhY2tiYXIocGFpbnRlci5jb250ZXh0KCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVEYXRhLm1fcGFydCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGVtZURhdGEubV9zdGF0ZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGVtZURhdGEubV9jbGFzc2ljU3RhdGUsCkBAIC00NDQsNyArNDQ0
LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwYWludFNsaWRlclRodW1iKFJlbmRl
ck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJgogCiBzdGF0aWMgaW50IG1lbnVMaXN0QnV0dG9u
V2lkdGgoKQogewotICAgIHN0YXRpYyBpbnQgd2lkdGggPSBQbGF0Zm9ybUJyaWRnZTo6bGF5b3V0
VGVzdE1vZGUoKSA/IGtTdGFuZGFyZE1lbnVMaXN0QnV0dG9uV2lkdGggOiBHZXRTeXN0ZW1NZXRy
aWNzKFNNX0NYVlNDUk9MTCk7CisgICAgc3RhdGljIGludCB3aWR0aCA9IENocm9taXVtQnJpZGdl
OjpsYXlvdXRUZXN0TW9kZSgpID8ga1N0YW5kYXJkTWVudUxpc3RCdXR0b25XaWR0aCA6IEdldFN5
c3RlbU1ldHJpY3MoU01fQ1hWU0NST0xMKTsKICAgICByZXR1cm4gd2lkdGg7CiB9CiAKQEAgLTQ5
Miw3ICs0OTIsNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBhaW50TWVudUxpc3Qo
UmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksCiAKICAgICAvLyBHZXQgdGhlIGNv
cnJlY3QgdGhlbWUgZGF0YSBmb3IgYSB0ZXh0ZmllbGQgYW5kIHBhaW50IHRoZSBtZW51LgogICAg
IFRoZW1lUGFpbnRlciBwYWludGVyKGkuY29udGV4dCwgcmVjdCk7Ci0gICAgUGxhdGZvcm1Ccmlk
Z2U6OnBhaW50TWVudUxpc3QocGFpbnRlci5jb250ZXh0KCksCisgICAgQ2hyb21pdW1CcmlkZ2U6
OnBhaW50TWVudUxpc3QocGFpbnRlci5jb250ZXh0KCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ1BfRFJPUERPV05CVVRUT04sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGV0ZXJtaW5lU3RhdGUobyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGV0ZXJtaW5lQ2xhc3NpY1N0YXRlKG8pLApAQCAtNjU3LDcgKzY1Nyw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6cGFpbnRUZXh0RmllbGRJbnRlcm5hbChSZW5kZXJPYmpl
Y3QqIG8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBkcmF3RWRnZXMpCiB7CiAgICAgLy8gRmFsbGJhY2sgdG8gd2hpdGUgaWYgdGhlIHNw
ZWNpZmllZCBjb2xvciBvYmplY3QgaXMgaW52YWxpZC4KLSAgICAvLyAoTm90ZSBQbGF0Zm9ybUJy
aWRnZTo6cGFpbnRUZXh0RmllbGQgZHVwbGljYXRlcyB0aGlzIGNoZWNrKS4KKyAgICAvLyAoTm90
ZSBDaHJvbWl1bUJyaWRnZTo6cGFpbnRUZXh0RmllbGQgZHVwbGljYXRlcyB0aGlzIGNoZWNrKS4K
ICAgICBDb2xvciBiYWNrZ3JvdW5kQ29sb3IoQ29sb3I6OndoaXRlKTsKICAgICBpZiAoby0+c3R5
bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKS5p
c1ZhbGlkKCkpCiAgICAgICAgIGJhY2tncm91bmRDb2xvciA9IG8tPnN0eWxlKCktPnZpc2l0ZWRE
ZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7CkBAIC02ODEsNyArNjgx
LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwYWludFRleHRGaWVsZEludGVybmFs
KFJlbmRlck9iamVjdCogbywKICAgICB7CiAgICAgICAgIGNvbnN0IFRoZW1lRGF0YSYgdGhlbWVE
YXRhID0gZ2V0VGhlbWVEYXRhKG8pOwogICAgICAgICBUaGVtZVBhaW50ZXIgcGFpbnRlcihpLmNv
bnRleHQsIHIpOwotICAgICAgICBQbGF0Zm9ybUJyaWRnZTo6cGFpbnRUZXh0RmllbGQocGFpbnRl
ci5jb250ZXh0KCksCisgICAgICAgIENocm9taXVtQnJpZGdlOjpwYWludFRleHRGaWVsZChwYWlu
dGVyLmNvbnRleHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
ZW1lRGF0YS5tX3BhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGVtZURhdGEubV9zdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRoZW1lRGF0YS5tX2NsYXNzaWNTdGF0ZSwKQEAgLTcxMCw3ICs3MTAsNyBAQCBib29sIFJlbmRl
clRoZW1lQ2hyb21pdW1XaW46OnBhaW50SW5uZXJTcGluQnV0dG9uKFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBjb25zdCBQYQogICAgIGhhbGYuc2V0SGVpZ2h0KHJlY3QuaGVpZ2h0KCkgLyAyKTsKICAg
ICBjb25zdCBUaGVtZURhdGEmIHVwVGhlbWVEYXRhID0gZ2V0VGhlbWVEYXRhKG9iamVjdCwgU3Bp
bkJ1dHRvblVwKTsKICAgICBUaGVtZVBhaW50ZXIgdXBQYWludGVyKGluZm8uY29udGV4dCwgaGFs
Zik7Ci0gICAgUGxhdGZvcm1CcmlkZ2U6OnBhaW50U3BpbkJ1dHRvbih1cFBhaW50ZXIuY29udGV4
dCgpLAorICAgIENocm9taXVtQnJpZGdlOjpwYWludFNwaW5CdXR0b24odXBQYWludGVyLmNvbnRl
eHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwVGhlbWVEYXRhLm1f
cGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwVGhlbWVEYXRhLm1f
c3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cFRoZW1lRGF0YS5t
X2NsYXNzaWNTdGF0ZSwKQEAgLTcxOSw3ICs3MTksNyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21p
dW1XaW46OnBhaW50SW5uZXJTcGluQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQ
YQogICAgIGhhbGYuc2V0WShyZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLyAyKTsKICAgICBjb25z
dCBUaGVtZURhdGEmIGRvd25UaGVtZURhdGEgPSBnZXRUaGVtZURhdGEob2JqZWN0LCBTcGluQnV0
dG9uRG93bik7CiAgICAgVGhlbWVQYWludGVyIGRvd25QYWludGVyKGluZm8uY29udGV4dCwgaGFs
Zik7Ci0gICAgUGxhdGZvcm1CcmlkZ2U6OnBhaW50U3BpbkJ1dHRvbihkb3duUGFpbnRlci5jb250
ZXh0KCksCisgICAgQ2hyb21pdW1CcmlkZ2U6OnBhaW50U3BpbkJ1dHRvbihkb3duUGFpbnRlci5j
b250ZXh0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3duVGhlbWVE
YXRhLm1fcGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25UaGVt
ZURhdGEubV9zdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25U
aGVtZURhdGEubV9jbGFzc2ljU3RhdGUsCkBAIC03NjAsNyArNzYwLDcgQEAgYm9vbCBSZW5kZXJU
aGVtZUNocm9taXVtV2luOjpwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCogbywgY29uc3Qg
UGFpbnRJbmZvJgogICAgIEludFJlY3QgdmFsdWVSZWN0ID0gcmVuZGVyUHJvZ3Jlc3MtPmlzRGV0
ZXJtaW5hdGUoKSA/IGRldGVybWluYXRlUHJvZ3Jlc3NWYWx1ZVJlY3RGb3IocmVuZGVyUHJvZ3Jl
c3MsIHIpIDogSW50UmVjdCgwLCAwLCAwLCAwKTsKICAgICBkb3VibGUgYW5pbWF0ZWRTZWNvbmRz
ID0gcmVuZGVyUHJvZ3Jlc3MtPmFuaW1hdGlvblN0YXJ0VGltZSgpID8gIFdURjo6Y3VycmVudFRp
bWUoKSAtIHJlbmRlclByb2dyZXNzLT5hbmltYXRpb25TdGFydFRpbWUoKSA6IDA7CiAgICAgVGhl
bWVQYWludGVyIHBhaW50ZXIoaS5jb250ZXh0LCByKTsKLSAgICBQbGF0Zm9ybUJyaWRnZTo6cGFp
bnRQcm9ncmVzc0JhcihwYWludGVyLmNvbnRleHQoKSwgciwgdmFsdWVSZWN0LCByZW5kZXJQcm9n
cmVzcy0+aXNEZXRlcm1pbmF0ZSgpLCBhbmltYXRlZFNlY29uZHMpOworICAgIENocm9taXVtQnJp
ZGdlOjpwYWludFByb2dyZXNzQmFyKHBhaW50ZXIuY29udGV4dCgpLCByLCB2YWx1ZVJlY3QsIHJl
bmRlclByb2dyZXNzLT5pc0RldGVybWluYXRlKCksIGFuaW1hdGVkU2Vjb25kcyk7CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL2Nocm9t
aXVtL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvY2hyb21pdW0vSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwCmluZGV4IDkyZTlhN2Jm
NDM3OTNjZWNlNDgyODVmMzg1ZTdiY2QzZmE5MjAyOTEuLmMwZmI0NDRkYTU2NmUwOTVlZGJkZjU2
ZjZiMTNiYzE3ODIzYmNhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvY2hy
b21pdW0vSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvY2hyb21pdW0vSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwCkBAIC0yOCw3
ICsyOCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tl
bmRJbnRlcmZhY2UuaCIKIAotI2luY2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCisjaW5jbHVkZSAi
Q2hyb21pdW1CcmlkZ2UuaCIKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCkBAIC0z
NiwxMiArMzYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlPiBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZTo6Y3JlYXRlKCkK
IHsKLSAgICByZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OmlkYkZhY3RvcnkoKTsKKyAgICByZXR1cm4g
Q2hyb21pdW1CcmlkZ2U6OmlkYkZhY3RvcnkoKTsKIH0KIAogSURCRmFjdG9yeUJhY2tlbmRJbnRl
cmZhY2U6On5JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSgpCiB7Ci0gICAgUGxhdGZvcm1Ccmlk
Z2U6OmlkYlNodXRkb3duKCk7CisgICAgQ2hyb21pdW1CcmlkZ2U6OmlkYlNodXRkb3duKCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvY2hyb21pdW0vSURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvY2hyb21pdW0vSURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcAppbmRleCAzOGIyOTgz
ZTE3MDJhNThkNzI3MzBiNWJlOGE5ODYxN2NjZDUxMWFlLi4wZjEwODc1MjBjOTdhZjZiOThkOTM2
YzEzMjJlODE1YzBjZDExYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL2No
cm9taXVtL0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9jaHJvbWl1bS9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwCkBAIC0yOCwxMyArMjgsMTMg
QEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCi0jaW5jbHVkZSAiUGxhdGZvcm1C
cmlkZ2UuaCIKKyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHZvaWQgSURCS2V5UGF0aEJhY2tlbmRJbXBsOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlh
bGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiwgMD4mIHZhbHVlcywgIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgVmVjdG9yPFJlZlB0
cjxJREJLZXk+LCAwPiYga2V5cykKIHsKLSAgICBQbGF0Zm9ybUJyaWRnZTo6Y3JlYXRlSURCS2V5
c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aCh2YWx1ZXMsIGtleVBhdGgsIGtleXMpOwor
ICAgIENocm9taXVtQnJpZGdlOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRL
ZXlQYXRoKHZhbHVlcywga2V5UGF0aCwga2V5cyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNjQ4YmM3OTM4M2ZhMzZkZjY4OWI4NGE1
ZTI5OTg5YTkyZTgyYWNhMS4uNzc0ZjhmYTc2MDdlZmEwZjlkZjllZDMxODRjNGMyMmEyOTA5YzBh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjYgQEAKKzIwMTEtMDEt
MTkgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3NjIwMy4KKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvNzYyMDMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUyNzg0CisKKyAgICAgICAgQnJva2UgV2luIGNvbXBpbGUgb24gQ2hy
b21pdW0gYm90cyAoUmVxdWVzdGVkIGJ5IGRpbWljaCBvbgorICAgICAgICAjd2Via2l0KS4KKwor
ICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMu
Y3BwOgorICAgICAgICAqIHNyYy9DaHJvbWl1bUJyaWRnZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybUJyaWRnZS5jcHAuCisgICAgICAgIChXZWJD
b3JlOjp0b0Nocm9tZUNsaWVudEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9XZWJXaWRnZXRD
bGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29va2llSmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9taXVtQnJpZGdlOjpjYWNoZU1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtQnJpZGdlOjpjbGlwYm9hcmRJc0Zvcm1hdEF2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkUmVhZFBsYWluVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkUmVhZEhUTUwpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21pdW1CcmlkZ2U6OmNsaXBib2FyZFdyaXRlU2VsZWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpjbGlwYm9hcmRXcml0ZVBsYWluVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkV3JpdGVVUkwpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmNsaXBib2FyZFdyaXRlSW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmNsaXBib2FyZFdyaXRlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkUmVhZEF2YWlsYWJsZVR5cGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpjbGlwYm9hcmRSZWFkRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkUmVhZEZpbGVuYW1lcyk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6c2V0Q29va2llcyk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Y29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWl1bUJyaWRnZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OnJhd0Nvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21pdW1CcmlkZ2U6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1
bUJyaWRnZTo6Y29va2llc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1Ccmlk
Z2U6OnByZWZldGNoRE5TKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpmaWxl
RXhpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpkZWxldGVGaWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpkZWxldGVFbXB0eURpcmVjdG9yeSk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Z2V0RmlsZVNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OnJldmVhbEZvbGRlckluT1MpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmdldEZpbGVNb2RpZmljYXRpb25UaW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpkaXJlY3RvcnlOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9taXVtQnJpZGdlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6Om1ha2VBbGxEaXJlY3Rvcmllcyk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Z2V0QWJzb2x1dGVQYXRoKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9taXVtQnJpZGdlOjppc0RpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1
bUJyaWRnZTo6b3BlbkZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmNs
b3NlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6c2Vla0ZpbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OnRydW5jYXRlRmlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6cmVhZEZyb21GaWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9taXVtQnJpZGdlOjp3cml0ZVRvRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWl1bUJyaWRnZTo6ZW5zdXJlRm9udExvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1
bUJyaWRnZTo6Z2V0Rm9udEZhbWlseUZvckNoYXJhY3RlcnMpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21pdW1CcmlkZ2U6OmdldFJlbmRlclN0eWxlRm9yU3RyaWtlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9taXVtQnJpZGdlOjpsb2FkRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1
bUJyaWRnZTo6ZGF0YWJhc2VPcGVuRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJy
aWRnZTo6ZGF0YWJhc2VEZWxldGVGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJp
ZGdlOjpkYXRhYmFzZUdldEZpbGVBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
aXVtQnJpZGdlOjpkYXRhYmFzZUdldEZpbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
aXVtQnJpZGdlOjppZGJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdl
OjppZGJTaHV0ZG93bik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Y3JlYXRl
SURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWl1bUJyaWRnZTo6c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpjb21wdXRlZERlZmF1bHRMYW5ndWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6bGF5b3V0VGVzdE1vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0
TUlNRVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmlzU3VwcG9ydGVk
Tm9uSW1hZ2VNSU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6bWlt
ZVR5cGVGb3JFeHRlbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6Om1p
bWVUeXBlRnJvbUZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OnByZWZl
cnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJp
ZGdlOjpwbHVnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpwbHVnaW5T
Y3JpcHRhYmxlT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpsb2Fk
UGxhdGZvcm1JbWFnZVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdl
Ojpsb2FkUGxhdGZvcm1BdWRpb1Jlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVt
QnJpZGdlOjpkZWNvZGVBdWRpb0ZpbGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVt
QnJpZGdlOjpzYW5kYm94RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRn
ZTo6c2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
aXVtQnJpZGdlOjpzZXRTaGFyZWRUaW1lckZpcmVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtQnJpZGdlOjpzdG9wU2hhcmVkVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21p
dW1CcmlkZ2U6OmRlY3JlbWVudFN0YXRzQ291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWl1bUJyaWRnZTo6aW5jcmVtZW50U3RhdHNDb3VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtQnJpZGdlOjpoaXN0b2dyYW1DdXN0b21Db3VudHMpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21pdW1CcmlkZ2U6Omhpc3RvZ3JhbUVudW1lcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9taXVtQnJpZGdlOjpzdWRkZW5UZXJtaW5hdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21pdW1CcmlkZ2U6OmN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtQnJpZGdlOjpwYWludEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJy
aWRnZTo6cGFpbnRNZW51TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6
cGFpbnRTY3JvbGxiYXJBcnJvdyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6
cGFpbnRTY3JvbGxiYXJUaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6
cGFpbnRTY3JvbGxiYXJUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6
cGFpbnRTcGluQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpwYWlu
dFRleHRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6cGFpbnRUcmFj
a2Jhcik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6cGFpbnRQcm9ncmVzc0Jh
cik6CisgICAgICAgIChXZWJDb3JlOjpXZWJUaGVtZVBhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViVGhlbWVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZXRXZWJUaGVtZUV4dHJhUGFyYW1z
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpnZXRUaGVtZVBhcnRTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpwYWludFRoZW1lUGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6dHJhY2VFdmVudEJlZ2luKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjp0cmFjZUV2ZW50RW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9taXVtQnJpZGdlOjp2aXNpdGVkTGlua0hhc2gpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21pdW1CcmlkZ2U6OmlzTGlua1Zpc2l0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21p
dW1CcmlkZ2U6Om5vdGlmeUpTT3V0T2ZNZW1vcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21p
dW1CcmlkZ2U6Om1lbW9yeVVzYWdlTUIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1Ccmlk
Z2U6OmFjdHVhbE1lbW9yeVVzYWdlTUIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1Ccmlk
Z2U6OnNjcmVlbkRlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpzY3Jl
ZW5EZXB0aFBlckNvbXBvbmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6
c2NyZWVuSXNNb25vY2hyb21lKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpz
Y3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpzY3JlZW5BdmFp
bGFibGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpwb3B1cHNBbGxv
d2VkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRQcm94eTo6Y3JlYXRlKToKKyAg
ICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OmNhY2hlTWV0YWRhdGEpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OldlYkZyYW1lSW1wbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6fldlYkZyYW1lSW1wbCk6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSk6CisKIDIwMTEtMDEtMTkgIEFkYW0gS2xlaW4gIDxhZGFt
a0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGY0MGY0YTI2MDlmMGFhOTc5MWZmOTNlMDhjODU4
NDFjNTM2MzI5NDAuLjg1ZjY3MWRjZGIwZjY0YmM1YzFiNmU2NmE1NTE3N2EzNjZiYWM3YmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTMxNSw2ICszMTUsNyBAQAogICAgICAgICAg
ICAgICAgICdzcmMvQm91bmRPYmplY3QuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9DaHJvbWVDbGllbnRJbXBsLmgn
LAorICAgICAgICAgICAgICAgICdzcmMvQ2hyb21pdW1CcmlkZ2UuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL0Nocm9taXVtQ3VycmVudFRpbWUuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L0Nocm9taXVtVGhyZWFkaW5nLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Db21wb3NpdGlv
blVuZGVybGluZUJ1aWxkZXIuaCcsCkBAIC0zODMsNyArMzg0LDYgQEAKICAgICAgICAgICAgICAg
ICAnc3JjL01lZGlhUGxheWVyUHJpdmF0ZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMv
Tm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvUGxh
dGZvcm1CcmlkZ2UuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1BsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9QbGF0Zm9ybU1lc3NhZ2VQb3J0
Q2hhbm5lbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1Jlc291cmNlSGFuZGxlLmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3Bw
CmluZGV4IGU4OWZiNzQ1ZTk4NjZiMzNhYzgwNTQ5MzRlZGMwZjRjNDcyNzY1NjYuLmUxZWU0YTEx
NWE3MGNjNTMxMjk3MWRiMDQyYWY4YjkzYzgzMjAzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC04MCw3ICs4MCw3IEBA
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCiAjaWYgT1MoREFSV0lOKQotI2lu
Y2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCisjaW5jbHVkZSAiQ2hyb21pdW1CcmlkZ2UuaCIKICNp
bmNsdWRlICJtYWMvV2ViVGhlbWVFbmdpbmUuaCIKICNlbmRpZgogCkBAIC0zOTgsMTcgKzM5OCwx
NyBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkdlb2xvY2F0aW9uRXJyb3I6OkVy
cm9yUGVybWlzc2lvbkRlbmllZCwgR2VvbG9jYQogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJHZW9sb2NhdGlvbkVycm9yOjpFcnJvclBvc2l0aW9uVW5hdmFpbGFibGUsIEdlb2xvY2F0
aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGUpOwogCiAjaWYgT1MoREFSV0lOKQotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJUaGVtZUVuZ2luZTo6U3RhdGVEaXNhYmxlZCwgUGxh
dGZvcm1CcmlkZ2U6OlN0YXRlRGlzYWJsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJUaGVtZUVuZ2luZTo6U3RhdGVJbmFjdGl2ZSwgUGxhdGZvcm1CcmlkZ2U6OlN0YXRlSW5h
Y3RpdmUpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJUaGVtZUVuZ2luZTo6U3Rh
dGVBY3RpdmUsIFBsYXRmb3JtQnJpZGdlOjpTdGF0ZUFjdGl2ZSk7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYlRoZW1lRW5naW5lOjpTdGF0ZVByZXNzZWQsIFBsYXRmb3JtQnJpZGdl
OjpTdGF0ZVByZXNzZWQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJUaGVtZUVu
Z2luZTo6U3RhdGVEaXNhYmxlZCwgQ2hyb21pdW1CcmlkZ2U6OlN0YXRlRGlzYWJsZWQpOworQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJUaGVtZUVuZ2luZTo6U3RhdGVJbmFjdGl2ZSwg
Q2hyb21pdW1CcmlkZ2U6OlN0YXRlSW5hY3RpdmUpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXZWJUaGVtZUVuZ2luZTo6U3RhdGVBY3RpdmUsIENocm9taXVtQnJpZGdlOjpTdGF0ZUFj
dGl2ZSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRoZW1lRW5naW5lOjpTdGF0
ZVByZXNzZWQsIENocm9taXVtQnJpZGdlOjpTdGF0ZVByZXNzZWQpOwogCi1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdlYlRoZW1lRW5naW5lOjpTaXplUmVndWxhciwgUGxhdGZvcm1Ccmlk
Z2U6OlNpemVSZWd1bGFyKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGhlbWVF
bmdpbmU6OlNpemVTbWFsbCwgUGxhdGZvcm1CcmlkZ2U6OlNpemVTbWFsbCk7CitDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYlRoZW1lRW5naW5lOjpTaXplUmVndWxhciwgQ2hyb21pdW1C
cmlkZ2U6OlNpemVSZWd1bGFyKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGhl
bWVFbmdpbmU6OlNpemVTbWFsbCwgQ2hyb21pdW1CcmlkZ2U6OlNpemVTbWFsbCk7CiAKLUNPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGhlbWVFbmdpbmU6OlNjcm9sbGJhck9yaWVudGF0
aW9uSG9yaXpvbnRhbCwgUGxhdGZvcm1CcmlkZ2U6OlNjcm9sbGJhck9yaWVudGF0aW9uSG9yaXpv
bnRhbCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRoZW1lRW5naW5lOjpTY3Jv
bGxiYXJPcmllbnRhdGlvblZlcnRpY2FsLCBQbGF0Zm9ybUJyaWRnZTo6U2Nyb2xsYmFyT3JpZW50
YXRpb25WZXJ0aWNhbCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRoZW1lRW5n
aW5lOjpTY3JvbGxiYXJPcmllbnRhdGlvbkhvcml6b250YWwsIENocm9taXVtQnJpZGdlOjpTY3Jv
bGxiYXJPcmllbnRhdGlvbkhvcml6b250YWwpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJUaGVtZUVuZ2luZTo6U2Nyb2xsYmFyT3JpZW50YXRpb25WZXJ0aWNhbCwgQ2hyb21pdW1C
cmlkZ2U6OlNjcm9sbGJhck9yaWVudGF0aW9uVmVydGljYWwpOwogCi1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJQYXJlbnRTY3JvbGxWaWV3LCBQ
bGF0Zm9ybUJyaWRnZTo6U2Nyb2xsYmFyUGFyZW50U2Nyb2xsVmlldyk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdlYlRoZW1lRW5naW5lOjpTY3JvbGxiYXJQYXJlbnRSZW5kZXJMYXll
ciwgUGxhdGZvcm1CcmlkZ2U6OlNjcm9sbGJhclBhcmVudFJlbmRlckxheWVyKTsKK0NPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGhlbWVFbmdpbmU6OlNjcm9sbGJhclBhcmVudFNjcm9s
bFZpZXcsIENocm9taXVtQnJpZGdlOjpTY3JvbGxiYXJQYXJlbnRTY3JvbGxWaWV3KTsKK0NPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGhlbWVFbmdpbmU6OlNjcm9sbGJhclBhcmVudFJl
bmRlckxheWVyLCBDaHJvbWl1bUJyaWRnZTo6U2Nyb2xsYmFyUGFyZW50UmVuZGVyTGF5ZXIpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAK
aW5kZXggNzJmNjBiYjM3ZjBlZDNmOTllNzE5ZWJhYTZmYzFlMDk4MzM4Y2Q5NS4uODNlMDAxNzlh
MTg2MGUyZTFkOTg5MmNkZTdmNDg5ZGViYjQ2M2RjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAKLSNpbmNsdWRlICJQbGF0
Zm9ybUJyaWRnZS5oIgorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VIYW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTMzMCw3ICszMzAsNyBAQCBib29sIFJlc291cmNlSGFu
ZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lKikK
IC8vIHN0YXRpYwogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2FjaGVNZXRhZGF0YShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgVmVjdG9yPGNoYXI+JiBkYXRhKQogewotICAg
IFBsYXRmb3JtQnJpZGdlOjpjYWNoZU1ldGFkYXRhKHJlc3BvbnNlLnVybCgpLCByZXNwb25zZS5y
ZXNwb25zZVRpbWUoKSwgZGF0YSk7CisgICAgQ2hyb21pdW1CcmlkZ2U6OmNhY2hlTWV0YWRhdGEo
cmVzcG9uc2UudXJsKCksIHJlc3BvbnNlLnJlc3BvbnNlVGltZSgpLCBkYXRhKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1l
SW1wbC5jcHAKaW5kZXggYmVhYTBlYjhjYjFjZGZmN2U2MjAwMjY2NjFkODkzYTljZDIxYTNlZS4u
YTEzZWVjMDFhZjYxYzcxYTI4NmI5Yjk3MDkyMjMyODUxNDRhMTkwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC03NCw2ICs3NCw3IEBACiAjaW5j
bHVkZSAiQXNzb2NpYXRlZFVSTExvYWRlci5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgi
CiAjaW5jbHVkZSAiQ2xpcGJvYXJkVXRpbGl0aWVzQ2hyb21pdW0uaCIKICNpbmNsdWRlICJDb25z
b2xlLmgiCiAjaW5jbHVkZSAiRE9NVXRpbGl0aWVzUHJpdmF0ZS5oIgpAQCAtMTAyLDcgKzEwMyw2
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgogI2luY2x1ZGUgIlBsdWdpbkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCkBAIC0xODIwLDEzICsxODIwLDEzIEBAIFdl
YkZyYW1lSW1wbDo6V2ViRnJhbWVJbXBsKFdlYkZyYW1lQ2xpZW50KiBjbGllbnQpCiAgICAgLCBt
X2FuaW1hdGlvbkNvbnRyb2xsZXIodGhpcykKICAgICAsIG1faWRlbnRpZmllcihnZW5lcmF0ZUZy
YW1lSWRlbnRpZmllcigpKQogewotICAgIFBsYXRmb3JtQnJpZGdlOjppbmNyZW1lbnRTdGF0c0Nv
dW50ZXIod2ViRnJhbWVBY3RpdmVDb3VudCk7CisgICAgQ2hyb21pdW1CcmlkZ2U6OmluY3JlbWVu
dFN0YXRzQ291bnRlcih3ZWJGcmFtZUFjdGl2ZUNvdW50KTsKICAgICBmcmFtZUNvdW50Kys7CiB9
CiAKIFdlYkZyYW1lSW1wbDo6fldlYkZyYW1lSW1wbCgpCiB7Ci0gICAgUGxhdGZvcm1CcmlkZ2U6
OmRlY3JlbWVudFN0YXRzQ291bnRlcih3ZWJGcmFtZUFjdGl2ZUNvdW50KTsKKyAgICBDaHJvbWl1
bUJyaWRnZTo6ZGVjcmVtZW50U3RhdHNDb3VudGVyKHdlYkZyYW1lQWN0aXZlQ291bnQpOwogICAg
IGZyYW1lQ291bnQtLTsKIAogICAgIGNhbmNlbFBlbmRpbmdTY29waW5nRWZmb3J0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggODI4MGQwYjVlMzlk
ODgwNmMwY2JmZDhiNjRlMzAwNjRjYjhmNjk2ZS4uNDFhMDgwNDZlMzQ4ZWIzOTA4OWY0MzdmZGE0
ODIzY2JmZDllYjliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcApAQCAtMzQsMjIgKzM0LDIzIEBACiAjaW5jbHVkZSAiQXV0b0ZpbGxQb3B1cE1lbnVDbGll
bnQuaCIKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRM
aXN0Q2hyb21pdW0uaCIKLSNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCi0jaW5jbHVkZSAi
Q1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9t
aXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0
aW9uVW5kZXJsaW5lVmVjdG9yQnVpbGRlci5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCiAj
aW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJ
dGVtLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgorI2luY2x1ZGUgIkNTU1ZhbHVl
S2V5d29yZHMuaCIKICNpbmNsdWRlICJDdXJzb3IuaCIKLSNpbmNsdWRlICJET01VdGlsaXRpZXNQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRl
ICJET01VdGlsaXRpZXNQcml2YXRlLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKLSNp
bmNsdWRlICJEcmFnRGF0YS5oIgogI2luY2x1ZGUgIkRyYWdTY3JvbGxUaW1lci5oIgorI2luY2x1
ZGUgIkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5k
bGVyLmgiCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC02NCw4ICs2NSw4IEBACiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCkBAIC03Nyw3ICs3OCw2IEBACiAjaW5jbHVkZSAiUGFn
ZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwTG9hZERlZmVycmVyLmgiCiAjaW5jbHVkZSAi
UGFzdGVib2FyZC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1Db250ZXh0U2tpYS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgpAQCAtOTgsOCArOTgsOCBAQAogI2luY2x1
ZGUgIlZlY3Rvci5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNs
dWRlICJXZWJBdXRvRmlsbENsaWVudC5oIgotI2luY2x1ZGUgIldlYkRldlRvb2xzQWdlbnRJbXBs
LmgiCiAjaW5jbHVkZSAiV2ViRGV2VG9vbHNBZ2VudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJE
ZXZUb29sc0FnZW50SW1wbC5oIgogI2luY2x1ZGUgIldlYkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAi
V2ViRnJhbWVJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKQEAgLTIyODcsNyArMjI4Nyw3
IEBAIHZvaWQgV2ViVmlld0ltcGw6OmludmFsaWRhdGVSb290TGF5ZXJSZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0FjdGl2ZShib29sIGFjdGl2ZSkKIHsKLSAgICBQbGF0Zm9ybUJyaWRnZTo6aGlzdG9ncmFtRW51
bWVyYXRpb24oIkdQVS5zZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUiLCBhY3RpdmUg
KiAyICsgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUsIDQpOworICAgIENocm9taXVt
QnJpZGdlOjpoaXN0b2dyYW1FbnVtZXJhdGlvbigiR1BVLnNldElzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0FjdGl2ZSIsIGFjdGl2ZSAqIDIgKyBtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2
ZSwgNCk7CiAKICAgICBpZiAobV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUgPT0gYWN0
aXZlKQogICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>