<?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>104231</bug_id>
          
          <creation_ts>2012-12-06 00:10:02 -0800</creation_ts>
          <short_desc>REGRESSION(r136784): breaks chromium canary (Requested by morrita on #webkit).</short_desc>
          <delta_ts>2012-12-06 00:21:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103897</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>sky</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>784687</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 00:10:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/136784 broke the build:
breaks chromium canary (Requested by morrita 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>784688</commentid>
    <comment_count>1</comment_count>
      <attachid>177958</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 00:10:41 -0800</bug_when>
    <thetext>Created attachment 177958
ROLLOUT of r136784

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784694</commentid>
    <comment_count>2</comment_count>
      <attachid>177958</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 00:21:55 -0800</bug_when>
    <thetext>Comment on attachment 177958
ROLLOUT of r136784

Clearing flags on attachment: 177958

Committed r136812: &lt;http://trac.webkit.org/changeset/136812&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784695</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 00:21:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177958</attachid>
            <date>2012-12-06 00:10:41 -0800</date>
            <delta_ts>2012-12-06 00:21:55 -0800</delta_ts>
            <desc>ROLLOUT of r136784</desc>
            <filename>bug-104231-20121206081656.patch</filename>
            <type>text/plain</type>
            <size>72387</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA1OWEzNjU0NmY0YzYy
OGI1MWU2MTM0ZGU3NzdkNTg4Y2ZkZDhjMzEzLi4yYmMzMGI1NDMwMDA1YmYwZjIxYTg0ZjNhNWIy
YjA1OWE4MDUyMzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0xMi0wNiAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNjc4NCBhbmQgcjEzNjgwMi4KKyAgICAgICAgaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTM2Nzg0CisgICAgICAgIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzEzNjgwMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MjMxCisKKyAgICAgICAgYnJlYWtzIGNocm9taXVtIGNhbmFy
eSAoUmVxdWVzdGVkIGJ5IG1vcnJpdGEgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBQbGF0Zm9y
bS5neXBpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9saW51eC9XZWJUaGVtZUVuZ2luZS5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJUaGVtZUVuZ2luZSk6Cisg
ICAgICAgIChTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zKToKKyAgICAgICAgKEJ1dHRvbkV4dHJh
UGFyYW1zKToKKyAgICAgICAgKFRleHRGaWVsZEV4dHJhUGFyYW1zKToKKyAgICAgICAgKE1lbnVM
aXN0RXh0cmFQYXJhbXMpOgorICAgICAgICAoU2xpZGVyRXh0cmFQYXJhbXMpOgorICAgICAgICAo
SW5uZXJTcGluQnV0dG9uRXh0cmFQYXJhbXMpOgorICAgICAgICAoUHJvZ3Jlc3NCYXJFeHRyYVBh
cmFtcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpnZXRTaXplKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OnBhaW50KToKKwogMjAxMi0xMi0wNSAgU2NvdHQg
VmlvbGV0ICA8c2t5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBs
aW51eCB0aGVtZSByZWxhdGVkIGZpbGVzIGFuZCBzd2l0Y2ggdG8gZGVmYXVsdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDAyMjBlODAxNjU5ZmMyZmI3OTQyMGJhMzcxMjQ0NzE5NzI0MjlmNzMuLjlhMTEzMjc4ZTc0
MTZkYzZkODNkYmNlM2QxMDk2ZDhlM2MzYmQxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NSBA
QAorMjAxMi0xMi0wNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+
CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNjc4NCBhbmQgcjEzNjgwMi4K
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTM2Nzg0CisgICAgICAg
IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEzNjgwMgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MjMxCisKKyAgICAgICAgYnJlYWtz
IGNocm9taXVtIGNhbmFyeSAoUmVxdWVzdGVkIGJ5IG1vcnJpdGEgb24gI3dlYmtpdCkuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXgu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1UaGVtZUNocm9taXVtTGludXg6OnNldFNjcm9sbGJhckNvbG9ycyk6CisgICAgICAgIChXZWJD
b3JlOjpjbGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51
eDo6c2F0dXJhdGVBbmRCcmlnaHRlbik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRoZW1l
Q2hyb21pdW1MaW51eDo6b3V0bGluZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
VGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludEFycm93QnV0dG9uKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXgpOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1UaGVtZUNocm9taXVtTGludXg6OnRodW1iSW5hY3RpdmVDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eDo6dGh1bWJB
Y3RpdmVDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51
eDo6dHJhY2tDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRoZW1lQ2hyb21pdW1M
aW51eDo6UGxhdGZvcm1UaGVtZUNocm9taXVtTGludXgpOgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpzY3JvbGxi
YXJUaGlja25lc3MpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxp
bnV4OjpwYWludFRyYWNrUGllY2UpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVD
aHJvbWl1bUxpbnV4OjpwYWludEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJU
aGVtZUNocm9taXVtTGludXg6OnBhaW50VGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpzaG91bGRDZW50ZXJPblRodW1iKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6YnV0dG9uU2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6Om1pbmltdW1UaHVtYkxlbmd0
aCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxp
bnV4Lmg6IEFkZGVkLgorICAgICAgICAoU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OmV4dHJhRGVmYXVsdFN0eWxl
U2hlZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0V2ViVGhlbWVTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6UmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6flJlbmRl
clRoZW1lQ2hyb21pdW1MaW51eCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9t
aXVtTGludXg6OnN5c3RlbUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hy
b21pdW1MaW51eDo6ZXh0cmFEZWZhdWx0U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmNvbnRyb2xTdXBwb3J0c1RpbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6YWN0aXZlTGlzdEJveFNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVt
TGludXg6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwbGF0Zm9ybUFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9t
aXVtTGludXg6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNo
cm9taXVtTGludXg6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzbGlkZXJUaWNrU2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNsaWRlclRp
Y2tPZmZzZXRGcm9tVHJhY2tDZW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4OjphZGp1c3RTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzdXBwb3J0c0NvbnRyb2xUaW50cyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNldENhcmV0QmxpbmtJbnRlcnZh
bCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmNhcmV0Qmxp
bmtJbnRlcnZhbEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21p
dW1MaW51eDo6c2V0U2VsZWN0aW9uQ29sb3JzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRDaGVja2JveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUNocm9taXVtTGludXg6OnNldENoZWNrYm94U2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50UmFkaW8pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzZXRSYWRpb1NpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludEJ1dHRvbik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50VGV4dEZpZWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRNZW51TGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50U2xpZGVyVHJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFNs
aWRlclRodW1iKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6
YWRqdXN0SW5uZXJTcGluQnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4OjpwYWludElubmVyU3BpbkJ1dHRvbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50UHJvZ3Jlc3NCYXIpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzaG91bGRPcGVuUGlja2VyV2l0aEY0
S2V5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZW5kZXJUaGVtZUNocm9taXVtTGlu
dXgpOgorCiAyMDEyLTEyLTA1ICBTYW5rZWVydGggViBTICA8c2Fua2VlcnRoLnZzQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpdGxlIG9mICJSZWNvcmQgVGltZWxpbmUi
IHN0YXR1cyBidXR0b24gb24gIlRpbWVsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDQyZDVkNTUxYjVmYzUxMDVjNjUyZWVkY2VmMmQ4ZWM0ODZiYjJkZGUuLjAzZjk4ZjY5MGE3M2Yz
ZTEzODI5YWUwNTYxMDc5ZjE5ZWU1NzkxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTItMTItMDYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzY3ODQg
YW5kIHIxMzY4MDIuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEz
Njc4NAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzY4MDIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDIzMQorCisg
ICAgICAgIGJyZWFrcyBjaHJvbWl1bSBjYW5hcnkgKFJlcXVlc3RlZCBieSBtb3JyaXRhIG9uICN3
ZWJraXQpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvbGludXgv
V2ViUmVuZGVyVGhlbWUuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHB1
YmxpYy9wbGF0Zm9ybS9saW51eC9XZWJUaGVtZUVuZ2luZS5oOiBBZGRlZC4KKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2Ny
b2xsYmFyQ29sb3JzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFNlbGVjdGlv
bkNvbG9ycyk6CisgICAgICAgICogc3JjL2xpbnV4L1dlYlJlbmRlclRoZW1lLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpzZXRDYXJldEJsaW5rSW50ZXJ2
YWwpOgorCiAyMDEyLTEyLTA1ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBBZGQgd2luOC8qIHRvIENocm9taXVtIERFUFMgKHIxNzEzNzYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0
Zm9ybS5neXBpCmluZGV4IGI5NzRkMzgwM2JhOWQ2Yzk2OTFmYWMwNGJlNDY0ZDI3ZmQyOTJkOWUu
LjM2ZTQxNTZkNDE5NzczZjc5M2FjYTlhZTM3NTlhOWI2NzMyMWZmZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9y
bS5neXBpCkBAIC0xNTIsNiArMTUyLDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMv
bGludXgvV2ViRm9udEluZm8uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL2xpbnV4
L1dlYkZvbnRSZW5kZXJTdHlsZS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvbGlu
dXgvV2ViU2FuZGJveFN1cHBvcnQuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL2xp
bnV4L1dlYlRoZW1lRW5naW5lLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9tYWMv
V2ViU2FuZGJveFN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL21hYy9X
ZWJUaGVtZUVuZ2luZS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvd2luL1dlYlNh
bmRib3hTdXBwb3J0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9saW51eC9XZWJUaGVtZUVuZ2luZS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9saW51eC9XZWJUaGVtZUVuZ2luZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NGYyOTJkN2Y4NzhlMzBl
ZTM0OTgwODljOGQ5NzZjMTVlODA0NGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYlRoZW1lRW5naW5lLmgKQEAgLTAsMCArMSwxNTIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYlRoZW1lRW5naW5lX2gKKyNkZWZpbmUgV2ViVGhlbWVFbmdpbmVfaAorCisj
aW5jbHVkZSAiLi4vV2ViQ2FudmFzLmgiCisjaW5jbHVkZSAiLi4vV2ViQ29sb3IuaCIKKyNpbmNs
dWRlICIuLi9XZWJTaXplLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgV2ViUmVj
dDsKKworY2xhc3MgV2ViVGhlbWVFbmdpbmUgeworcHVibGljOgorICAgIC8vIFRoZSBVSSBwYXJ0
IHdoaWNoIGlzIGJlaW5nIGFjY2Vzc2VkLgorICAgIGVudW0gUGFydCB7CisgICAgICAgIC8vIFNj
cm9sbGJhclRoZW1lIHBhcnRzCisgICAgICAgIFBhcnRTY3JvbGxiYXJEb3duQXJyb3csCisgICAg
ICAgIFBhcnRTY3JvbGxiYXJMZWZ0QXJyb3csCisgICAgICAgIFBhcnRTY3JvbGxiYXJSaWdodEFy
cm93LAorICAgICAgICBQYXJ0U2Nyb2xsYmFyVXBBcnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJh
ckhvcml6b250YWxUaHVtYiwKKyAgICAgICAgUGFydFNjcm9sbGJhclZlcnRpY2FsVGh1bWIsCisg
ICAgICAgIFBhcnRTY3JvbGxiYXJIb3Jpem9udGFsVHJhY2ssCisgICAgICAgIFBhcnRTY3JvbGxi
YXJWZXJ0aWNhbFRyYWNrLAorCisgICAgICAgIC8vIFJlbmRlclRoZW1lIHBhcnRzCisgICAgICAg
IFBhcnRDaGVja2JveCwKKyAgICAgICAgUGFydFJhZGlvLAorICAgICAgICBQYXJ0QnV0dG9uLAor
ICAgICAgICBQYXJ0VGV4dEZpZWxkLAorICAgICAgICBQYXJ0TWVudUxpc3QsCisgICAgICAgIFBh
cnRTbGlkZXJUcmFjaywKKyAgICAgICAgUGFydFNsaWRlclRodW1iLAorICAgICAgICBQYXJ0SW5u
ZXJTcGluQnV0dG9uLAorICAgICAgICBQYXJ0UHJvZ3Jlc3NCYXIKKyAgICB9OworCisgICAgLy8g
VGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFzc29jaWF0ZWQgUGFydC4KKyAgICBlbnVtIFN0YXRl
IHsKKyAgICAgICAgU3RhdGVEaXNhYmxlZCwKKyAgICAgICAgU3RhdGVIb3ZlciwKKyAgICAgICAg
U3RhdGVOb3JtYWwsCisgICAgICAgIFN0YXRlUHJlc3NlZCwKKyAgICB9OworCisgICAgLy8gRXh0
cmEgcGFyYW1ldGVycyBmb3IgZHJhd2luZyB0aGUgUGFydFNjcm9sbGJhckhvcml6b250YWxUcmFj
ayBhbmQKKyAgICAvLyBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUcmFjay4KKyAgICBzdHJ1Y3QgU2Ny
b2xsYmFyVHJhY2tFeHRyYVBhcmFtcyB7CisgICAgICAgIC8vIFRoZSBib3VuZHMgb2YgdGhlIGVu
dGlyZSB0cmFjaywgYXMgb3Bwb3NlZCB0byB0aGUgcGFydCBiZWluZyBwYWludGVkLgorICAgICAg
ICBpbnQgdHJhY2tYOworICAgICAgICBpbnQgdHJhY2tZOworICAgICAgICBpbnQgdHJhY2tXaWR0
aDsKKyAgICAgICAgaW50IHRyYWNrSGVpZ2h0OworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJh
bWV0ZXJzIGZvciBQYXJ0Q2hlY2tib3gsIFBhcnRQdXNoQnV0dG9uIGFuZCBQYXJ0UmFkaW8uCisg
ICAgc3RydWN0IEJ1dHRvbkV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBjaGVja2VkOworICAg
ICAgICBib29sIGluZGV0ZXJtaW5hdGU7IC8vIFdoZXRoZXIgdGhlIGJ1dHRvbiBzdGF0ZSBpcyBp
bmRldGVybWluYXRlLgorICAgICAgICBib29sIGlzRGVmYXVsdDsgLy8gV2hldGhlciB0aGUgYnV0
dG9uIGlzIGRlZmF1bHQgYnV0dG9uLgorICAgICAgICBib29sIGhhc0JvcmRlcjsKKyAgICAgICAg
V2ViQ29sb3IgYmFja2dyb3VuZENvbG9yOworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0
ZXJzIGZvciBQYXJ0VGV4dEZpZWxkCisgICAgc3RydWN0IFRleHRGaWVsZEV4dHJhUGFyYW1zIHsK
KyAgICAgICAgYm9vbCBpc1RleHRBcmVhOworICAgICAgICBib29sIGlzTGlzdGJveDsKKyAgICAg
ICAgV2ViQ29sb3IgYmFja2dyb3VuZENvbG9yOworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJh
bWV0ZXJzIGZvciBQYXJ0TWVudUxpc3QKKyAgICBzdHJ1Y3QgTWVudUxpc3RFeHRyYVBhcmFtcyB7
CisgICAgICAgIGJvb2wgaGFzQm9yZGVyOworICAgICAgICBib29sIGhhc0JvcmRlclJhZGl1czsK
KyAgICAgICAgaW50IGFycm93WDsKKyAgICAgICAgaW50IGFycm93WTsKKyAgICAgICAgV2ViQ29s
b3IgYmFja2dyb3VuZENvbG9yOworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZv
ciBQYXJ0U2xpZGVyVHJhY2sgYW5kIFBhcnRTbGlkZXJUaHVtYgorICAgIHN0cnVjdCBTbGlkZXJF
eHRyYVBhcmFtcyB7CisgICAgICAgIGJvb2wgdmVydGljYWw7CisgICAgICAgIGJvb2wgaW5EcmFn
OworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0SW5uZXJTcGluQnV0
dG9uCisgICAgc3RydWN0IElubmVyU3BpbkJ1dHRvbkV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9v
bCBzcGluVXA7CisgICAgICAgIGJvb2wgcmVhZE9ubHk7CisgICAgfTsKKworICAgIC8vIEV4dHJh
IHBhcmFtZXRlcnMgZm9yIFBhcnRQcm9ncmVzc0JhcgorICAgIHN0cnVjdCBQcm9ncmVzc0JhckV4
dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBkZXRlcm1pbmF0ZTsKKyAgICAgICAgaW50IHZhbHVl
UmVjdFg7CisgICAgICAgIGludCB2YWx1ZVJlY3RZOworICAgICAgICBpbnQgdmFsdWVSZWN0V2lk
dGg7CisgICAgICAgIGludCB2YWx1ZVJlY3RIZWlnaHQ7CisgICAgfTsKKworICAgIHVuaW9uIEV4
dHJhUGFyYW1zIHsKKyAgICAgICAgU2Nyb2xsYmFyVHJhY2tFeHRyYVBhcmFtcyBzY3JvbGxiYXJU
cmFjazsKKyAgICAgICAgQnV0dG9uRXh0cmFQYXJhbXMgYnV0dG9uOworICAgICAgICBUZXh0Rmll
bGRFeHRyYVBhcmFtcyB0ZXh0RmllbGQ7CisgICAgICAgIE1lbnVMaXN0RXh0cmFQYXJhbXMgbWVu
dUxpc3Q7CisgICAgICAgIFNsaWRlckV4dHJhUGFyYW1zIHNsaWRlcjsKKyAgICAgICAgSW5uZXJT
cGluQnV0dG9uRXh0cmFQYXJhbXMgaW5uZXJTcGluOworICAgICAgICBQcm9ncmVzc0JhckV4dHJh
UGFyYW1zIHByb2dyZXNzQmFyOworICAgIH07CisKKyAgICAvLyBHZXRzIHRoZSBzaXplIG9mIHRo
ZSBnaXZlbiB0aGVtZSBwYXJ0LiBGb3IgdmFyaWFibGUgc2l6ZWQgaXRlbXMKKyAgICAvLyBsaWtl
IHZlcnRpY2FsIHNjcm9sbGJhciB0aHVtYnMsIHRoZSB3aWR0aCB3aWxsIGJlIHRoZSByZXF1aXJl
ZCB3aWR0aCBvZgorICAgIC8vIHRoZSB0cmFjayB3aGlsZSB0aGUgaGVpZ2h0IHdpbGwgYmUgdGhl
IG1pbmltdW0gaGVpZ2h0LgorICAgIHZpcnR1YWwgV2ViU2l6ZSBnZXRTaXplKFBhcnQpIHsgcmV0
dXJuIFdlYlNpemUoKTsgfQorICAgIC8vIFBhaW50IHRoZSBnaXZlbiB0aGUgZ2l2ZW4gdGhlbWUg
cGFydC4KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwgUGFydCwgU3RhdGUsIGNv
bnN0IFdlYlJlY3QmLCBjb25zdCBFeHRyYVBhcmFtcyopIHsgfQorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApp
bmRleCA0OTZiODZkNDE4MTBjM2UxZjhjZDNlY2QwZGE2NmZkNDcxZjUzNmI1Li5mN2IzNTFmOThh
MDEyYzJlMDU5MThhNTRkY2QxZDExM2ExYWI2MGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cC9XZWJDb3JlLmd5cApAQCAtMTcwMCwxMiArMTcwMCwxNyBAQAogICAgICAgICB9XSwKICAgICAg
ICAgWyd1c2VfZGVmYXVsdF9yZW5kZXJfdGhlbWU9PTEnLCB7CiAgICAgICAgICAgJ3NvdXJjZXMv
JzogWworICAgICAgICAgICAgWydleGNsdWRlJywgJ3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3Jt
VGhlbWVDaHJvbWl1bUxpbnV4LmgnXSwKKyAgICAgICAgICAgIFsnZXhjbHVkZScsICdwbGF0Zm9y
bS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eC5jcHAnXSwKICAgICAgICAgICAg
IFsnZXhjbHVkZScsICdwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1XaW4u
aCddLAogICAgICAgICAgICAgWydleGNsdWRlJywgJ3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3Jt
VGhlbWVDaHJvbWl1bVdpbi5jcHAnXSwKKyAgICAgICAgICAgIFsnZXhjbHVkZScsICdwbGF0Zm9y
bS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXguY3BwJ10sCisgICAgICAgICAg
ICBbJ2V4Y2x1ZGUnLCAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxp
bnV4LmgnXSwKICAgICAgICAgICAgIFsnZXhjbHVkZScsICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3Jv
bGxiYXJUaGVtZUNocm9taXVtV2luLmNwcCddLAogICAgICAgICAgICAgWydleGNsdWRlJywgJ3Bs
YXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1XaW4uaCddLAogICAgICAgICAg
IF0sCi0gICAgICAgIH0sIHsgIyB1c2VfZGVmYXVsdF9yZW5kZXJfdGhlbWU9PTAKKyAgICAgICAg
fV0sCisgICAgICAgIFsndXNlX2RlZmF1bHRfcmVuZGVyX3RoZW1lPT0wJywgewogICAgICAgICAg
ICdzb3VyY2VzLyc6IFsKICAgICAgICAgICAgIFsnZXhjbHVkZScsICdwbGF0Zm9ybS9jaHJvbWl1
bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1EZWZhdWx0LmNwcCddLAogICAgICAgICAgICAgWydleGNs
dWRlJywgJ3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtVGhlbWVDaHJvbWl1bURlZmF1bHQuaCdd
LApAQCAtMjAwOCw2ICsyMDEzLDcgQEAKICAgICAgICAgfV0sCiAgICAgICAgIFsndXNlX2RlZmF1
bHRfcmVuZGVyX3RoZW1lPT0xJywgewogICAgICAgICAgICdzb3VyY2VzLyc6IFsKKyAgICAgICAg
ICAgIFsnZXhjbHVkZScsICdSZW5kZXJUaGVtZUNocm9taXVtTGludXguKiddLAogICAgICAgICAg
ICAgWydleGNsdWRlJywgJ1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uKiddLAogICAgICAgICAgIF0s
CiAgICAgICAgIH1dLApAQCAtMjA1NCw3ICsyMDYwLDcgQEAKICAgICAgICAgWydPUz09ImFuZHJv
aWQiJywgewogICAgICAgICAgICdzb3VyY2VzLyc6IFsKICAgICAgICAgICAgIFsnaW5jbHVkZScs
ICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUZvbnRQcm92aWRlckxpbnV4XFwuY3BwJCdd
LAotICAgICAgICAgICAgWydpbmNsdWRlJywgJ3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
RGVmYXVsdFxcLmNwcCQnXSwKKyAgICAgICAgICAgIFsnaW5jbHVkZScsICdyZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4XFwuY3BwJCddLAogICAgICAgICAgIF0sCiAgICAgICAgIH0s
eyAjIE9TIT0iYW5kcm9pZCIKICAgICAgICAgICAnc291cmNlcy8nOiBbCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggYTkzYWY1ZTU3MDY1OGNjOGI1YTA2NGFjMGRjMDdkZjNhZGM5YTNjMy4uMDBiZDE1ZmQ1
NzJiNWFhMTA0MTAzMTM0ZWNlYTQ4MGUyZDMyZjE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzQ2
NSw2ICszNDY1LDggQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bUZvbnRQcm92aWRlci5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bUZvbnRQcm92aWRlckxpbnV4LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1Gb250UHJvdmlkZXJXaW4uY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bU1hYy5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGhl
bWVDaHJvbWl1bU1hYy5tbScsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhLmNwcCcsCkBAIC00NjgyLDYgKzQ2ODQsOCBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9j
aHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1EZWZhdWx0LmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1UaGVtZUNocm9taXVtRGVmYXVsdC5oJywKKyAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eC5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtVGhlbWVDaHJvbWl1bUxp
bnV4LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtV2lkZ2V0Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwQ29udGFpbmVyLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9wdXBDb250YWluZXIuaCcsCkBAIC00NzAw
LDYgKzQ3MDQsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRo
ZW1lQ2hyb21pdW1BbmRyb2lkLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Nj
cm9sbGJhclRoZW1lQ2hyb21pdW1EZWZhdWx0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bURlZmF1bHQuaCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1N
YWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJv
bWl1bU1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhl
bWVDaHJvbWl1bVdpbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXguY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcwY2M2NGJhOTZlZTI0NDU2ZmIyMTVlYTQyY2ZlNWEyN2U4MzgwZjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hy
b21pdW1MaW51eC5jcHAKQEAgLTAsMCArMSwyMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit1bnNpZ25lZCBQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eDo6c190aHVtYkluYWN0aXZl
Q29sb3IgPSAweGVhZWFlYTsKK3Vuc2lnbmVkIFBsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4Ojpz
X3RodW1iQWN0aXZlQ29sb3IgPSAweGY0ZjRmNDsKK3Vuc2lnbmVkIFBsYXRmb3JtVGhlbWVDaHJv
bWl1bUxpbnV4OjpzX3RyYWNrQ29sb3IgPSAweGQzZDNkMzsKKwordm9pZCBQbGF0Zm9ybVRoZW1l
Q2hyb21pdW1MaW51eDo6c2V0U2Nyb2xsYmFyQ29sb3JzKAorICAgIFNrQ29sb3IgaW5hY3RpdmVD
b2xvciwgU2tDb2xvciBhY3RpdmVDb2xvciwgU2tDb2xvciB0cmFja0NvbG9yKQoreworICAgIHNf
dGh1bWJJbmFjdGl2ZUNvbG9yID0gaW5hY3RpdmVDb2xvcjsKKyAgICBzX3RodW1iQWN0aXZlQ29s
b3IgPSBhY3RpdmVDb2xvcjsKKyAgICBzX3RyYWNrQ29sb3IgPSB0cmFja0NvbG9yOworfQorCitz
dGF0aWMgU2tTY2FsYXIgY2xhbXAoU2tTY2FsYXIgdmFsdWUsIFNrU2NhbGFyIG1pbiwgU2tTY2Fs
YXIgbWF4KQoreworICAgIHJldHVybiBzdGQ6Om1pbihzdGQ6Om1heCh2YWx1ZSwgbWluKSwgbWF4
KTsKK30KKworU2tDb2xvciBQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eDo6c2F0dXJhdGVBbmRC
cmlnaHRlbihjb25zdCBTa1NjYWxhciBoc3ZbM10sIFNrU2NhbGFyIHNhdHVyYXRlQW1vdW50LCBT
a1NjYWxhciBicmlnaHRlbkFtb3VudCkKK3sKKyAgICBTa1NjYWxhciBjb2xvclszXTsKKyAgICBj
b2xvclswXSA9IGhzdlswXTsKKyAgICBjb2xvclsxXSA9IGNsYW1wKGhzdlsxXSArIHNhdHVyYXRl
QW1vdW50LCAwLjAsIDEuMCk7CisgICAgY29sb3JbMl0gPSBjbGFtcChoc3ZbMl0gKyBicmlnaHRl
bkFtb3VudCwgMC4wLCAxLjApOworICAgIHJldHVybiBTa0hTVlRvQ29sb3IoY29sb3IpOworfQor
CitTa0NvbG9yIFBsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4OjpvdXRsaW5lQ29sb3IoY29uc3Qg
U2tTY2FsYXIgaHN2MVszXSwgY29uc3QgU2tTY2FsYXIgaHN2MlszXSkKK3sKKyAgICAvLyBHVEsg
VGhlbWUgZW5naW5lcyBoYXZlIHdheSB0b28gbXVjaCBjb250cm9sIG92ZXIgdGhlIGxheW91dCBv
ZgorICAgIC8vIHRoZSBzY3JvbGxiYXIuIFdlIG1pZ2h0IGJlIGFibGUgdG8gbW9yZSBjbG9zZWx5
IGFwcHJveGltYXRlIGl0cworICAgIC8vIGxvb2stYW5kLWZlZWwsIGlmIHdlIHNlbnQgd2hvbGUg
aW1hZ2VzIGluc3RlYWQgb2YganVzdCBjb2xvcnMKKyAgICAvLyBmcm9tIHRoZSBicm93c2VyIHRv
IHRoZSByZW5kZXJlci4gQnV0IGV2ZW4gdGhlbiwgc29tZSB0aGVtZXMKKyAgICAvLyB3b3VsZCBq
dXN0IGJyZWFrLgorICAgIC8vCisgICAgLy8gU28sIGluc3RlYWQsIHdlIGRvbid0IGV2ZW4gdHJ5
IHRvIDEwMCUgcmVwbGljYXRlIHRoZSBsb29rIG9mCisgICAgLy8gdGhlIG5hdGl2ZSBzY3JvbGxi
YXIuIFdlIHJlbmRlciBvdXIgb3duIHZlcnNpb24sIGJ1dCB3ZSBtYWtlCisgICAgLy8gc3VyZSB0
byBwaWNrIGNvbG9ycyB0aGF0IGJsZW5kIGluIG5pY2VseSB3aXRoIHRoZSBzeXN0ZW0gR1RLCisg
ICAgLy8gdGhlbWUuIEluIG1vc3QgY2FzZXMsIHdlIGNhbiBqdXN0IHNhbXBsZSBhIGNvdXBsZSBv
ZiBwaXhlbHMKKyAgICAvLyBmcm9tIHRoZSBzeXN0ZW0gc2Nyb2xsYmFyIGFuZCB1c2UgdGhvc2Ug
Y29sb3JzIHRvIGRyYXcgb3VyCisgICAgLy8gc2Nyb2xsYmFyLgorICAgIC8vCisgICAgLy8gVGhp
cyB3b3JrcyBmaW5lIGZvciB0aGUgdHJhY2sgY29sb3IgYW5kIHRoZSBvdmVyYWxsIHRodW1iCisg
ICAgLy8gY29sb3IuIEJ1dCBpdCBmYWlscyBzcGVjdGFjdWxhcmx5IGZvciB0aGUgb3V0bGluZSBj
b2xvciB1c2VkCisgICAgLy8gYXJvdW5kIHRoZSB0aHVtYiBwaWVjZS4gTm90IGFsbCB0aGVtZXMg
aGF2ZSBhIGNsZWFybHkgZGVmaW5lZAorICAgIC8vIG91dGxpbmUuIEZvciBzb21lIG9mIHRoZW0g
aXQgaXMgcGFydGlhbGx5IHRyYW5zcGFyZW50LCBhbmQgZm9yCisgICAgLy8gb3RoZXJzIHRoZSB0
aGlja25lc3MgaXMgdmVyeSB1bnByZWRpY3RhYmxlLgorICAgIC8vCisgICAgLy8gU28sIGluc3Rl
YWQgb2YgdHJ5aW5nIHRvIGFwcHJveGltYXRlIHRoZSBzeXN0ZW0gdGhlbWUsIHdlCisgICAgLy8g
aW5zdGVhZCB0cnkgdG8gY29tcHV0ZSBhIHJlYXNvbmFibGUgbG9va2luZyBjaG9pY2UgYmFzZWQg
b24gdGhlCisgICAgLy8ga25vd24gY29sb3Igb2YgdGhlIHRyYWNrIGFuZCB0aGUgdGh1bWIgcGll
Y2UuIFRoaXMgaXMgZGlmZmljdWx0CisgICAgLy8gd2hlbiB0cnlpbmcgdG8gZGVhbCBib3RoIHdp
dGggaGlnaC0gYW5kIGxvdy1jb250cmFzdCB0aGVtZXMsCisgICAgLy8gYW5kIGJvdGggd2l0aCBw
b3NpdGl2ZSBhbmQgaW52ZXJ0ZWQgdGhlbWVzLgorICAgIC8vCisgICAgLy8gVGhlIGZvbGxvd2lu
ZyBjb2RlIGhhcyBiZWVuIHRlc3RlZCB0byBsb29rIE9LIHdpdGggYWxsIG9mIHRoZQorICAgIC8v
IGRlZmF1bHQgR1RLIHRoZW1lcy4KKyAgICBTa1NjYWxhciBtaW5EaWZmID0gY2xhbXAoKGhzdjFb
MV0gKyBoc3YyWzFdKSAqIDEuMiwgMC4yOCwgMC41KTsKKyAgICBTa1NjYWxhciBkaWZmID0gY2xh
bXAoZmFicyhoc3YxWzJdIC0gaHN2MlsyXSkgLyAyLCBtaW5EaWZmLCAwLjUpOworCisgICAgaWYg
KGhzdjFbMl0gKyBoc3YyWzJdID4gMS4wKQorICAgICAgICBkaWZmID0gLWRpZmY7CisKKyAgICBy
ZXR1cm4gc2F0dXJhdGVBbmRCcmlnaHRlbihoc3YyLCAtMC4yLCBkaWZmKTsKK30KKwordm9pZCBQ
bGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRBcnJvd0J1dHRvbihHcmFwaGljc0NvbnRl
eHQqIGdjLCBjb25zdCBJbnRSZWN0JiByZWN0LCBBcnJvd0RpcmVjdGlvbiBkaXJlY3Rpb24sIENv
bnRyb2xTdGF0ZXMgc3RhdGVzKQoreworICAgIFBsYXRmb3JtQ29udGV4dFNraWEqIHBsYXRmb3Jt
Q29udGV4dCA9IGdjLT5wbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBpbnQgd2lkdGhNaWRkbGUsIGxl
bmd0aE1pZGRsZTsKKyAgICBTa1BhaW50IHBhaW50OworICAgIGlmIChkaXJlY3Rpb24gPT0gTm9y
dGggfHwgZGlyZWN0aW9uID09IFNvdXRoKSB7CisgICAgICAgIHdpZHRoTWlkZGxlID0gcmVjdC53
aWR0aCgpIC8gMiArIDE7CisgICAgICAgIGxlbmd0aE1pZGRsZSA9IHJlY3QuaGVpZ2h0KCkgLyAy
ICsgMTsKKyAgICB9IGVsc2UgeworICAgICAgICBsZW5ndGhNaWRkbGUgPSByZWN0LndpZHRoKCkg
LyAyICsgMTsKKyAgICAgICAgd2lkdGhNaWRkbGUgPSByZWN0LmhlaWdodCgpIC8gMiArIDE7Cisg
ICAgfQorCisgICAgLy8gQ2FsY3VsYXRlIGJ1dHRvbiBjb2xvci4KKyAgICBTa1NjYWxhciB0cmFj
a0hTVlszXTsKKyAgICBTa0NvbG9yVG9IU1YodHJhY2tDb2xvcigpLCB0cmFja0hTVik7CisgICAg
U2tDb2xvciBidXR0b25Db2xvciA9IHNhdHVyYXRlQW5kQnJpZ2h0ZW4odHJhY2tIU1YsIDAsIDAu
Mik7CisgICAgU2tDb2xvciBiYWNrZ3JvdW5kQ29sb3IgPSBidXR0b25Db2xvcjsKKyAgICBpZiAo
c3RhdGVzICYgUHJlc3NlZFN0YXRlKSB7CisgICAgICAgIFNrU2NhbGFyIGJ1dHRvbkhTVlszXTsK
KyAgICAgICAgU2tDb2xvclRvSFNWKGJ1dHRvbkNvbG9yLCBidXR0b25IU1YpOworICAgICAgICBi
dXR0b25Db2xvciA9IHNhdHVyYXRlQW5kQnJpZ2h0ZW4oYnV0dG9uSFNWLCAwLCAtMC4xKTsKKyAg
ICB9IGVsc2UgaWYgKHN0YXRlcyAmIEhvdmVyU3RhdGUpIHsKKyAgICAgICAgU2tTY2FsYXIgYnV0
dG9uSFNWWzNdOworICAgICAgICBTa0NvbG9yVG9IU1YoYnV0dG9uQ29sb3IsIGJ1dHRvbkhTVik7
CisgICAgICAgIGJ1dHRvbkNvbG9yID0gc2F0dXJhdGVBbmRCcmlnaHRlbihidXR0b25IU1YsIDAs
IDAuMDUpOworICAgIH0KKworICAgIFNrSVJlY3Qgc2tyZWN0OworICAgIHNrcmVjdC5zZXQocmVj
dC54KCksIHJlY3QueSgpLCByZWN0LngoKSArIHJlY3Qud2lkdGgoKSwgcmVjdC55KCkgKyByZWN0
LmhlaWdodCgpKTsKKyAgICAvLyBQYWludCB0aGUgYmFja2dyb3VuZCAodGhlIGFyZWEgdmlzaWJs
ZSBiZWhpbmQgdGhlIHJvdW5kZWQgY29ybmVycykuCisgICAgcGFpbnQuc2V0Q29sb3IoYmFja2dy
b3VuZENvbG9yKTsKKyAgICBwbGF0Zm9ybUNvbnRleHQtPmRyYXdJUmVjdChza3JlY3QsIHBhaW50
KTsKKworICAgIC8vIFBhaW50IHRoZSBidXR0b24ncyBvdXRsaW5lIGFuZCBmaWxsIHRoZSBtaWRk
bGUKKyAgICBTa1BhdGggb3V0bGluZTsKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNh
c2UgTm9ydGg6CisgICAgICAgIG91dGxpbmUubW92ZVRvKHJlY3QueCgpICsgMC41LCByZWN0Lnko
KSArIHJlY3QuaGVpZ2h0KCkgKyAwLjUpOworICAgICAgICBvdXRsaW5lLnJMaW5lVG8oMCwgLShy
ZWN0LmhlaWdodCgpIC0gMikpOworICAgICAgICBvdXRsaW5lLnJMaW5lVG8oMiwgLTIpOworICAg
ICAgICBvdXRsaW5lLnJMaW5lVG8ocmVjdC53aWR0aCgpIC0gNSwgMCk7CisgICAgICAgIG91dGxp
bmUuckxpbmVUbygyLCAyKTsKKyAgICAgICAgb3V0bGluZS5yTGluZVRvKDAsIHJlY3QuaGVpZ2h0
KCkgLSAyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTb3V0aDoKKyAgICAgICAgb3V0bGlu
ZS5tb3ZlVG8ocmVjdC54KCkgKyAwLjUsIHJlY3QueSgpIC0gMC41KTsKKyAgICAgICAgb3V0bGlu
ZS5yTGluZVRvKDAsIHJlY3QuaGVpZ2h0KCkgLSAyKTsKKyAgICAgICAgb3V0bGluZS5yTGluZVRv
KDIsIDIpOworICAgICAgICBvdXRsaW5lLnJMaW5lVG8ocmVjdC53aWR0aCgpIC0gNSwgMCk7Cisg
ICAgICAgIG91dGxpbmUuckxpbmVUbygyLCAtMik7CisgICAgICAgIG91dGxpbmUuckxpbmVUbygw
LCAtKHJlY3QuaGVpZ2h0KCkgLSAyKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRWFzdDoK
KyAgICAgICAgb3V0bGluZS5tb3ZlVG8ocmVjdC54KCkgLSAwLjUsIHJlY3QueSgpICsgMC41KTsK
KyAgICAgICAgb3V0bGluZS5yTGluZVRvKHJlY3Qud2lkdGgoKSAtIDIsIDApOworICAgICAgICBv
dXRsaW5lLnJMaW5lVG8oMiwgMik7CisgICAgICAgIG91dGxpbmUuckxpbmVUbygwLCByZWN0Lmhl
aWdodCgpIC0gNSk7CisgICAgICAgIG91dGxpbmUuckxpbmVUbygtMiwgMik7CisgICAgICAgIG91
dGxpbmUuckxpbmVUbygtKHJlY3Qud2lkdGgoKSAtIDIpLCAwKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZXN0OgorICAgICAgICBvdXRsaW5lLm1vdmVUbyhyZWN0LngoKSArIHJlY3Qud2lk
dGgoKSArIDAuNSwgcmVjdC55KCkgKyAwLjUpOworICAgICAgICBvdXRsaW5lLnJMaW5lVG8oLShy
ZWN0LndpZHRoKCkgLSAyKSwgMCk7CisgICAgICAgIG91dGxpbmUuckxpbmVUbygtMiwgMik7Cisg
ICAgICAgIG91dGxpbmUuckxpbmVUbygwLCByZWN0LmhlaWdodCgpIC0gNSk7CisgICAgICAgIG91
dGxpbmUuckxpbmVUbygyLCAyKTsKKyAgICAgICAgb3V0bGluZS5yTGluZVRvKHJlY3Qud2lkdGgo
KSAtIDIsIDApOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgb3V0bGluZS5jbG9zZSgpOwor
CisgICAgcGFpbnQuc2V0U3R5bGUoU2tQYWludDo6a0ZpbGxfU3R5bGUpOworICAgIHBhaW50LnNl
dENvbG9yKGJ1dHRvbkNvbG9yKTsKKyAgICBwbGF0Zm9ybUNvbnRleHQtPmRyYXdQYXRoKG91dGxp
bmUsIHBhaW50KTsKKworICAgIHBhaW50LnNldEFudGlBbGlhcyh0cnVlKTsKKyAgICBwYWludC5z
ZXRTdHlsZShTa1BhaW50OjprU3Ryb2tlX1N0eWxlKTsKKyAgICBTa1NjYWxhciB0aHVtYkhTVlsz
XTsKKyAgICBTa0NvbG9yVG9IU1YodGh1bWJJbmFjdGl2ZUNvbG9yKCksIHRodW1iSFNWKTsKKyAg
ICBwYWludC5zZXRDb2xvcihvdXRsaW5lQ29sb3IodHJhY2tIU1YsIHRodW1iSFNWKSk7CisgICAg
cGxhdGZvcm1Db250ZXh0LT5kcmF3UGF0aChvdXRsaW5lLCBwYWludCk7CisKKyAgICAvLyBJZiB0
aGUgYnV0dG9uIGlzIGRpc2FibGVkIG9yIHJlYWQtb25seSwgdGhlIGFycm93IGlzIGRyYXduIHdp
dGggdGhlIG91dGxpbmUgY29sb3IuCisgICAgaWYgKHN0YXRlcyAmIEVuYWJsZWRTdGF0ZSAmJiAh
KHN0YXRlcyAmIFJlYWRPbmx5U3RhdGUpKQorICAgICAgICBwYWludC5zZXRDb2xvcihTS19Db2xv
ckJMQUNLKTsKKworICAgIHBhaW50LnNldEFudGlBbGlhcyhmYWxzZSk7CisgICAgcGFpbnQuc2V0
U3R5bGUoU2tQYWludDo6a0ZpbGxfU3R5bGUpOworCisgICAgU2tQYXRoIHBhdGg7CisgICAgLy8g
VGhlIGNvbnN0YW50cyBpbiB0aGlzIGJsb2NrIG9mIGNvZGUgYXJlIGhhbmQtdGFpbG9yZWQgdG8g
cHJvZHVjZSBnb29kCisgICAgLy8gbG9va2luZyBhcnJvd3Mgd2l0aG91dCBhbnRpLWFsaWFzaW5n
LgorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBOb3J0aDoKKyAgICAgICAgcGF0
aC5tb3ZlVG8ocmVjdC54KCkgKyB3aWR0aE1pZGRsZSAtIDQsIHJlY3QueSgpICsgbGVuZ3RoTWlk
ZGxlICsgMik7CisgICAgICAgIHBhdGguckxpbmVUbyg3LCAwKTsKKyAgICAgICAgcGF0aC5yTGlu
ZVRvKC00LCAtNCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU291dGg6CisgICAgICAgIHBh
dGgubW92ZVRvKHJlY3QueCgpICsgd2lkdGhNaWRkbGUgLSA0LCByZWN0LnkoKSArIGxlbmd0aE1p
ZGRsZSAtIDMpOworICAgICAgICBwYXRoLnJMaW5lVG8oNywgMCk7CisgICAgICAgIHBhdGguckxp
bmVUbygtNCwgNCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRWFzdDoKKyAgICAgICAgcGF0
aC5tb3ZlVG8ocmVjdC54KCkgKyBsZW5ndGhNaWRkbGUgLSAzLCByZWN0LnkoKSArIHdpZHRoTWlk
ZGxlIC0gNCk7CisgICAgICAgIHBhdGguckxpbmVUbygwLCA3KTsKKyAgICAgICAgcGF0aC5yTGlu
ZVRvKDQsIC00KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZXN0OgorICAgICAgICBwYXRo
Lm1vdmVUbyhyZWN0LngoKSArIGxlbmd0aE1pZGRsZSArIDEsIHJlY3QueSgpICsgd2lkdGhNaWRk
bGUgLSA1KTsKKyAgICAgICAgcGF0aC5yTGluZVRvKDAsIDkpOworICAgICAgICBwYXRoLnJMaW5l
VG8oLTQsIC00KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHBhdGguY2xvc2UoKTsKKwor
ICAgIHBsYXRmb3JtQ29udGV4dC0+ZHJhd1BhdGgocGF0aCwgcGFpbnQpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1
M2FlYjY0MjllNTI5MjFkZmMxYjRmMGI1ZmJmYzM1ZGQ2NjFhMzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1M
aW51eC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4
X2gKKyNkZWZpbmUgUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXhfaAorCisjaW5jbHVkZSAiUGxh
dGZvcm1Db250ZXh0U2tpYS5oIgorI2luY2x1ZGUgIlNrQ29sb3IuaCIKKyNpbmNsdWRlICJTa1Nj
YWxhci5oIgorI2luY2x1ZGUgIlRoZW1lVHlwZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eCB7CitwdWJsaWM6CisgICAgZW51bSBB
cnJvd0RpcmVjdGlvbiB7CisgICAgICAgIE5vcnRoLAorICAgICAgICBFYXN0LAorICAgICAgICBT
b3V0aCwKKyAgICAgICAgV2VzdCwKKyAgICB9OworCisgICAgc3RhdGljIHZvaWQgc2V0U2Nyb2xs
YmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZUNvbG9yLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja0NvbG9yKTsKKyAgICBzdGF0aWMgdW5zaWduZWQg
dGh1bWJJbmFjdGl2ZUNvbG9yKCkgeyByZXR1cm4gc190aHVtYkluYWN0aXZlQ29sb3I7IH0KKyAg
ICBzdGF0aWMgdW5zaWduZWQgdGh1bWJBY3RpdmVDb2xvcigpIHsgcmV0dXJuIHNfdGh1bWJBY3Rp
dmVDb2xvcjsgfQorICAgIHN0YXRpYyB1bnNpZ25lZCB0cmFja0NvbG9yKCkgeyByZXR1cm4gc190
cmFja0NvbG9yOyB9CisKKyAgICBzdGF0aWMgU2tDb2xvciBzYXR1cmF0ZUFuZEJyaWdodGVuKGNv
bnN0IFNrU2NhbGFyIGhzdlszXSwgU2tTY2FsYXIgc2F0dXJhdGVBbW91bnQsIFNrU2NhbGFyIGJy
aWdodGVuQW1vdW50KTsKKyAgICBzdGF0aWMgU2tDb2xvciBvdXRsaW5lQ29sb3IoY29uc3QgU2tT
Y2FsYXIgaHN2MVszXSwgY29uc3QgU2tTY2FsYXIgaHN2MlszXSk7CisgICAgc3RhdGljIHZvaWQg
cGFpbnRBcnJvd0J1dHRvbihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiwgQXJyb3dE
aXJlY3Rpb24sIENvbnRyb2xTdGF0ZXMpOworCitwcml2YXRlOgorICAgIFBsYXRmb3JtVGhlbWVD
aHJvbWl1bUxpbnV4KCkgeyB9CisKKyAgICBzdGF0aWMgdW5zaWduZWQgc190aHVtYkluYWN0aXZl
Q29sb3I7CisgICAgc3RhdGljIHVuc2lnbmVkIHNfdGh1bWJBY3RpdmVDb2xvcjsKKyAgICBzdGF0
aWMgdW5zaWduZWQgc190cmFja0NvbG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXhfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hy
b21pdW1MaW51eC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg4YTQwOWU1YWE3NTlmMmU4NjM2YTk3MjA3MWRk
NThmNzZhMTY3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTAsMCArMSwxNDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ2hyb21p
dW1MaW51eC5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9sbGJhci5oIgorI2luY2x1ZGUg
PHB1YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSZWN0Lmg+CisjaW5jbHVk
ZSA8cHVibGljL2xpbnV4L1dlYlRoZW1lRW5naW5lLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworU2Nyb2xsYmFyVGhlbWUqIFNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpCit7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXgsIHRoZW1lLCAo
KSk7CisgICAgcmV0dXJuICZ0aGVtZTsKK30KKworaW50IFNjcm9sbGJhclRoZW1lQ2hyb21pdW1M
aW51eDo6c2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXpl
KQoreworICAgIC8vIEhvcml6IGFuZCBWZXJ0IHNjcm9sbGJhcnMgYXJlIHRoZSBzYW1lIHRoaWNr
bmVzcy4KKyAgICBJbnRTaXplIHNjcm9sbGJhclNpemUgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJy
ZW50KCktPnRoZW1lRW5naW5lKCktPmdldFNpemUoV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFy
dFNjcm9sbGJhclZlcnRpY2FsVHJhY2spOworICAgIHJldHVybiBzY3JvbGxiYXJTaXplLndpZHRo
KCk7Cit9CisKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRyYWNrUGll
Y2UoR3JhcGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyVGhlbWVDbGllbnQqIHNjcm9sbGJhciwg
Y29uc3QgSW50UmVjdCYgcmVjdCwgU2Nyb2xsYmFyUGFydCBwYXJ0VHlwZSkKK3sKKyAgICBXZWJL
aXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZSBzdGF0ZSA9IHNjcm9sbGJhci0+aG92ZXJlZFBhcnQo
KSA9PSBwYXJ0VHlwZSA/IFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlN0YXRlSG92ZXIgOiBXZWJL
aXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZU5vcm1hbDsKKyAgICBJbnRSZWN0IGFsaWduUmVjdCA9
IHRyYWNrUmVjdChzY3JvbGxiYXIsIGZhbHNlKTsKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5l
OjpFeHRyYVBhcmFtcyBleHRyYVBhcmFtczsKKyAgICBXZWJLaXQ6OldlYkNhbnZhcyogY2FudmFz
ID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKKyAgICBleHRyYVBhcmFtcy5zY3Jv
bGxiYXJUcmFjay50cmFja1ggPSBhbGlnblJlY3QueCgpOworICAgIGV4dHJhUGFyYW1zLnNjcm9s
bGJhclRyYWNrLnRyYWNrWSA9IGFsaWduUmVjdC55KCk7CisgICAgZXh0cmFQYXJhbXMuc2Nyb2xs
YmFyVHJhY2sudHJhY2tXaWR0aCA9IGFsaWduUmVjdC53aWR0aCgpOworICAgIGV4dHJhUGFyYW1z
LnNjcm9sbGJhclRyYWNrLnRyYWNrSGVpZ2h0ID0gYWxpZ25SZWN0LmhlaWdodCgpOworICAgIFdl
YktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnQoY2FudmFzLCBz
Y3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/IFdlYktpdDo6
V2ViVGhlbWVFbmdpbmU6OlBhcnRTY3JvbGxiYXJIb3Jpem9udGFsVHJhY2sgOiBXZWJLaXQ6Oldl
YlRoZW1lRW5naW5lOjpQYXJ0U2Nyb2xsYmFyVmVydGljYWxUcmFjaywgc3RhdGUsIFdlYktpdDo6
V2ViUmVjdChyZWN0KSwgJmV4dHJhUGFyYW1zKTsKK30KKwordm9pZCBTY3JvbGxiYXJUaGVtZUNo
cm9taXVtTGludXg6OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhclRo
ZW1lQ2xpZW50KiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QsIFNjcm9sbGJhclBhcnQg
cGFydCkKK3sKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0IHBhaW50UGFydDsKKyAg
ICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZSBzdGF0ZSA9IFdlYktpdDo6V2ViVGhlbWVF
bmdpbmU6OlN0YXRlTm9ybWFsOworICAgIFdlYktpdDo6V2ViQ2FudmFzKiBjYW52YXMgPSBnYy0+
cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOworICAgIGJvb2wgY2hlY2tNaW4gPSBmYWxzZTsK
KyAgICBib29sIGNoZWNrTWF4ID0gZmFsc2U7CisgICAgaWYgKHNjcm9sbGJhci0+b3JpZW50YXRp
b24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSB7CisgICAgICAgIGlmIChwYXJ0ID09IEJhY2tC
dXR0b25TdGFydFBhcnQpIHsKKyAgICAgICAgICAgIHBhaW50UGFydCA9IFdlYktpdDo6V2ViVGhl
bWVFbmdpbmU6OlBhcnRTY3JvbGxiYXJMZWZ0QXJyb3c7CisgICAgICAgICAgICBjaGVja01pbiA9
IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwYWludFBhcnQgPSBXZWJLaXQ6
OldlYlRoZW1lRW5naW5lOjpQYXJ0U2Nyb2xsYmFyUmlnaHRBcnJvdzsKKyAgICAgICAgICAgIGNo
ZWNrTWF4ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChwYXJ0
ID09IEJhY2tCdXR0b25TdGFydFBhcnQpIHsKKyAgICAgICAgICAgIHBhaW50UGFydCA9IFdlYktp
dDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRTY3JvbGxiYXJVcEFycm93OworICAgICAgICAgICAgY2hl
Y2tNaW4gPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFpbnRQYXJ0ID0g
V2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydFNjcm9sbGJhckRvd25BcnJvdzsKKyAgICAgICAg
ICAgIGNoZWNrTWF4ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoKGNoZWNrTWlu
ICYmIChzY3JvbGxiYXItPmN1cnJlbnRQb3MoKSA8PSAwKSkKKyAgICAgICAgfHwgKGNoZWNrTWF4
ICYmIHNjcm9sbGJhci0+Y3VycmVudFBvcygpID09IHNjcm9sbGJhci0+bWF4aW11bSgpKSkgewor
ICAgICAgICBzdGF0ZSA9IFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlN0YXRlRGlzYWJsZWQ7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHBhcnQgPT0gc2Nyb2xsYmFyLT5wcmVzc2VkUGFydCgp
KQorICAgICAgICAgICAgc3RhdGUgPSBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZVByZXNz
ZWQ7CisgICAgICAgIGVsc2UgaWYgKHBhcnQgPT0gc2Nyb2xsYmFyLT5ob3ZlcmVkUGFydCgpKQor
ICAgICAgICAgICAgc3RhdGUgPSBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZUhvdmVyOwor
ICAgIH0KKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPnBh
aW50KGNhbnZhcywgcGFpbnRQYXJ0LCBzdGF0ZSwgV2ViS2l0OjpXZWJSZWN0KHJlY3QpLCAwKTsK
K30KKwordm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50VGh1bWIoR3JhcGhp
Y3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyVGhlbWVDbGllbnQqIHNjcm9sbGJhciwgY29uc3QgSW50
UmVjdCYgcmVjdCkKK3sKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZSBzdGF0ZTsK
KyAgICBXZWJLaXQ6OldlYkNhbnZhcyogY2FudmFzID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5j
YW52YXMoKTsKKyAgICBpZiAoc2Nyb2xsYmFyLT5wcmVzc2VkUGFydCgpID09IFRodW1iUGFydCkK
KyAgICAgICAgc3RhdGUgPSBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZVByZXNzZWQ7Cisg
ICAgZWxzZSBpZiAoc2Nyb2xsYmFyLT5ob3ZlcmVkUGFydCgpID09IFRodW1iUGFydCkKKyAgICAg
ICAgc3RhdGUgPSBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZUhvdmVyOworICAgIGVsc2UK
KyAgICAgICAgc3RhdGUgPSBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZU5vcm1hbDsKKyAg
ICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPnBhaW50KGNhbnZh
cywgc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IEhvcml6b250YWxTY3JvbGxiYXIgPyBXZWJL
aXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRodW1iIDogV2ViS2l0
OjpXZWJUaGVtZUVuZ2luZTo6UGFydFNjcm9sbGJhclZlcnRpY2FsVGh1bWIsIHN0YXRlLCBXZWJL
aXQ6OldlYlJlY3QocmVjdCksIDApOworfQorCitib29sIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1M
aW51eDo6c2hvdWxkQ2VudGVyT25UaHVtYihTY3JvbGxiYXJUaGVtZUNsaWVudCosIGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYgZXZ0KQoreworICAgIHJldHVybiAoZXZ0LnNoaWZ0S2V5KCkgJiYg
ZXZ0LmJ1dHRvbigpID09IExlZnRCdXR0b24pIHx8IChldnQuYnV0dG9uKCkgPT0gTWlkZGxlQnV0
dG9uKTsKK30KKworSW50U2l6ZSBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6OmJ1dHRvblNp
emUoU2Nyb2xsYmFyVGhlbWVDbGllbnQqIHNjcm9sbGJhcikKK3sKKyAgICBpZiAoc2Nyb2xsYmFy
LT5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7CisgICAgICAgIEludFNpemUg
c2l6ZSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhlbWVFbmdpbmUoKS0+Z2V0U2l6
ZShXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0U2Nyb2xsYmFyVXBBcnJvdyk7CisgICAgICAg
IHJldHVybiBJbnRTaXplKHNpemUud2lkdGgoKSwgc2Nyb2xsYmFyLT5oZWlnaHQoKSA8IDIgKiBz
aXplLmhlaWdodCgpID8gc2Nyb2xsYmFyLT5oZWlnaHQoKSAvIDIgOiBzaXplLmhlaWdodCgpKTsK
KyAgICB9CisKKyAgICAvLyBIb3Jpem9udGFsU2Nyb2xsYmFyCisgICAgSW50U2l6ZSBzaXplID0g
V2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5nZXRTaXplKFdlYktp
dDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRTY3JvbGxiYXJMZWZ0QXJyb3cpOworICAgIHJldHVybiBJ
bnRTaXplKHNjcm9sbGJhci0+d2lkdGgoKSA8IDIgKiBzaXplLndpZHRoKCkgPyBzY3JvbGxiYXIt
PndpZHRoKCkgLyAyIDogc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKK30KKworaW50IFNj
cm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6bWluaW11bVRodW1iTGVuZ3RoKFNjcm9sbGJhclRo
ZW1lQ2xpZW50KiBzY3JvbGxiYXIpCit7CisgICAgaWYgKHNjcm9sbGJhci0+b3JpZW50YXRpb24o
KSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgeworICAgICAgICBJbnRTaXplIHNpemUgPSBXZWJLaXQ6
OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPmdldFNpemUoV2ViS2l0OjpXZWJU
aGVtZUVuZ2luZTo6UGFydFNjcm9sbGJhclZlcnRpY2FsVGh1bWIpOworICAgICAgICByZXR1cm4g
c2l6ZS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICBJbnRTaXplIHNpemUgPSBXZWJLaXQ6OlBsYXRm
b3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPmdldFNpemUoV2ViS2l0OjpXZWJUaGVtZUVu
Z2luZTo6UGFydFNjcm9sbGJhckhvcml6b250YWxUaHVtYik7CisgICAgcmV0dXJuIHNpemUud2lk
dGgoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGlu
dXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMzBkMDNmYjAyMzIxMzRlYzJjYTI5NDE5ZmRhYjI3MzQ5NDc1NGRh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Ny
b2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcm9s
bGJhclRoZW1lQ2hyb21pdW1MaW51eF9oCisjZGVmaW5lIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1M
aW51eF9oCisKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZUNocm9taXVtLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXggOiBwdWJs
aWMgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFs
IGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUpOworCisgICAgcHJv
dGVjdGVkOgorICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUcmFja1BpZWNlKEdyYXBoaWNzQ29u
dGV4dCosIFNjcm9sbGJhclRoZW1lQ2xpZW50KiwgY29uc3QgSW50UmVjdCYsIFNjcm9sbGJhclBh
cnQpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRCdXR0b24oR3JhcGhpY3NDb250ZXh0Kiwg
U2Nyb2xsYmFyVGhlbWVDbGllbnQqLCBjb25zdCBJbnRSZWN0JiwgU2Nyb2xsYmFyUGFydCk7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCosIFNjcm9sbGJh
clRoZW1lQ2xpZW50KiwgY29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkQ2VudGVyT25UaHVtYihTY3JvbGxiYXJUaGVtZUNsaWVudCosIGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYpOworICAgICAgICB2aXJ0dWFsIEludFNpemUgYnV0dG9uU2l6ZShTY3JvbGxiYXJU
aGVtZUNsaWVudCopOworICAgICAgICB2aXJ0dWFsIGludCBtaW5pbXVtVGh1bWJMZW5ndGgoU2Ny
b2xsYmFyVGhlbWVDbGllbnQqKTsKKyAgICB9OworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bUFuZHJvaWQuY3BwCmluZGV4IDc4YTljYzlhY2JmNjg0MmI5NjhjMDYwYzgxMmJmMTY1
YmZiMjM4NDMuLmQyNWE4MDQ0NDNhN2U2MDBjMDBlMjhkZjZhNTUzZTAwYWI0OWI2MGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9p
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1B
bmRyb2lkLmNwcApAQCAtNzQsNyArNzQsNyBAQCBTdHJpbmcgUmVuZGVyVGhlbWVDaHJvbWl1bUFu
ZHJvaWQ6OmV4dHJhTWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKQogCiBTdHJpbmcgUmVuZGVyVGhl
bWVDaHJvbWl1bUFuZHJvaWQ6OmV4dHJhRGVmYXVsdFN0eWxlU2hlZXQoKQogewotICAgIHJldHVy
biBSZW5kZXJUaGVtZUNocm9taXVtRGVmYXVsdDo6ZXh0cmFEZWZhdWx0U3R5bGVTaGVldCgpICsK
KyAgICByZXR1cm4gUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpleHRyYURlZmF1bHRTdHlsZVNo
ZWV0KCkgKwogICAgICAgICBTdHJpbmcodGhlbWVDaHJvbWl1bUFuZHJvaWRVc2VyQWdlbnRTdHls
ZVNoZWV0LCBzaXplb2YodGhlbWVDaHJvbWl1bUFuZHJvaWRVc2VyQWdlbnRTdHlsZVNoZWV0KSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtQW5kcm9pZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1BbmRyb2lkLmgKaW5kZXggZWE5ZWMzMjIxMzc5ZWIwMzIyZjRlNzI1ZDM2NmEyZjMwMjRl
ZGU4OC4uMDI3NjI4ZTgxYWUxMmNmMWZiNzhkMTQyMWQxM2NhMDFjZjYyOTkwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lk
LmgKQEAgLTI2LDExICsyNiwxMSBAQAogI2lmbmRlZiBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9p
ZF9oCiAjZGVmaW5lIFJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkX2gKIAotI2luY2x1ZGUgIlJl
bmRlclRoZW1lQ2hyb21pdW1EZWZhdWx0LmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUmVuZGVyVGhlbWVDaHJv
bWl1bUFuZHJvaWQgOiBwdWJsaWMgUmVuZGVyVGhlbWVDaHJvbWl1bURlZmF1bHQgeworY2xhc3Mg
UmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQgOiBwdWJsaWMgUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gY3JlYXRl
KCk7CiAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFEZWZhdWx0U3R5bGVTaGVldCgpIE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1MaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWY0ZmM3ODIyZDI2ODE5ZDY1Y2MwYThmY2M5NGE1YjQw
NDgyMTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTAsMCArMSwzODUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBHb29nbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAy
MDA5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmgiCisKKyNpbmNsdWRlICJDU1NWYWx1
ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJQYWludEluZm8uaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNpbmNsdWRlICJSZW5kZXJTbGlkZXIu
aCIKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxl
U2hlZXRzLmgiCisjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CisjaW5jbHVkZSA8cHVibGlj
L1dlYlJlY3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvbGludXgvV2ViVGhlbWVFbmdpbmUuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1bnNpZ25lZCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6
Om1fYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yID0KKyAgICAweGZmMWU5MGZmOwordW5z
aWduZWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjptX2FjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvciA9CisgICAgQ29sb3I6OmJsYWNrOwordW5zaWduZWQgUmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4OjptX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yID0KKyAgICAweGZmYzhj
OGM4OwordW5zaWduZWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjptX2luYWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yID0KKyAgICAweGZmMzIzMjMyOworCitkb3VibGUgUmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4OjptX2NhcmV0QmxpbmtJbnRlcnZhbDsKKworc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGRlZmF1bHRCdXR0b25CYWNrZ3JvdW5kQ29sb3IgPSAweGZmZGRkZGRkOworCitzdGF0
aWMgV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6U3RhdGUgZ2V0V2ViVGhlbWVTdGF0ZShjb25zdCBS
ZW5kZXJUaGVtZSogdGhlbWUsIGNvbnN0IFJlbmRlck9iamVjdCogbykKK3sKKyAgICBpZiAoIXRo
ZW1lLT5pc0VuYWJsZWQobykpCisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlRoZW1lRW5naW5l
OjpTdGF0ZURpc2FibGVkOworICAgIGlmICh0aGVtZS0+aXNQcmVzc2VkKG8pKQorICAgICAgICBy
ZXR1cm4gV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6U3RhdGVQcmVzc2VkOworICAgIGlmICh0aGVt
ZS0+aXNIb3ZlcmVkKG8pKQorICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6
U3RhdGVIb3ZlcjsKKworICAgIHJldHVybiBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZU5v
cm1hbDsKK30KKworUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVuZGVyVGhlbWVDaHJv
bWl1bUxpbnV4KCkpOworfQorCisvLyBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlIGZvciBBbmRy
b2lkIGlzIGRlZmluZWQgaW4gUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwLgorI2lmICFP
UyhBTkRST0lEKQorUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9y
UGFnZShQYWdlKiBwYWdlKQoreworICAgIHN0YXRpYyBSZW5kZXJUaGVtZSogcnQgPSBSZW5kZXJU
aGVtZUNocm9taXVtTGludXg6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKKyAgICByZXR1cm4gcnQ7Cit9
CisjZW5kaWYKKworUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpSZW5kZXJUaGVtZUNocm9taXVt
TGludXgoKQoreworICAgIG1fY2FyZXRCbGlua0ludGVydmFsID0gUmVuZGVyVGhlbWU6OmNhcmV0
QmxpbmtJbnRlcnZhbCgpOworfQorCitSZW5kZXJUaGVtZUNocm9taXVtTGludXg6On5SZW5kZXJU
aGVtZUNocm9taXVtTGludXgoKQoreworfQorCitDb2xvciBSZW5kZXJUaGVtZUNocm9taXVtTGlu
dXg6OnN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBjb25zdAoreworICAgIHN0YXRpYyBjb25z
dCBDb2xvciBsaW51eEJ1dHRvbkdyYXlDb2xvcigweGZmZGRkZGRkKTsKKworICAgIGlmIChjc3NW
YWx1ZUlkID09IENTU1ZhbHVlQnV0dG9uZmFjZSkKKyAgICAgICAgcmV0dXJuIGxpbnV4QnV0dG9u
R3JheUNvbG9yOworICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoY3NzVmFsdWVJ
ZCk7Cit9CisKK1N0cmluZyBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmV4dHJhRGVmYXVsdFN0
eWxlU2hlZXQoKQoreworICAgIHJldHVybiBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6ZXh0cmFE
ZWZhdWx0U3R5bGVTaGVldCgpICsKKyAgICAgICAgICAgU3RyaW5nKHRoZW1lQ2hyb21pdW1MaW51
eFVzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZih0aGVtZUNocm9taXVtTGludXhVc2VyQWdlbnRT
dHlsZVNoZWV0KSk7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojpjb250cm9s
U3VwcG9ydHNUaW50cyhjb25zdCBSZW5kZXJPYmplY3QqIG8pIGNvbnN0Cit7CisgICAgcmV0dXJu
IGlzRW5hYmxlZChvKTsKK30KKworQ29sb3IgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjphY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
Q29sb3IoMHgyOCwgMHgyOCwgMHgyOCk7Cit9CisKK0NvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1M
aW51eDo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIENvbG9yOjpibGFjazsKK30KKworQ29sb3IgUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAorewor
ICAgIHJldHVybiBDb2xvcigweGM4LCAweGM4LCAweGM4KTsKK30KKworQ29sb3IgUmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
KSBjb25zdAoreworICAgIHJldHVybiBDb2xvcigweDMyLCAweDMyLCAweDMyKTsKK30KKworQ29s
b3IgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yOworfQorCitDb2xvciBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBsYXRmb3Jt
SW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBt
X2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOworfQorCitDb2xvciBSZW5kZXJUaGVt
ZUNocm9taXVtTGludXg6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7Cit9
CisKK0NvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5hY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3I7Cit9CisKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkK
K0ludFNpemUgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzbGlkZXJUaWNrU2l6ZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIEludFNpemUoMSwgNik7Cit9CisKK2ludCBSZW5kZXJUaGVtZUNocm9t
aXVtTGludXg6OnNsaWRlclRpY2tPZmZzZXRGcm9tVHJhY2tDZW50ZXIoKSBjb25zdAoreworICAg
IHJldHVybiAtMTY7Cit9CisjZW5kaWYKKwordm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6
OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGVsZW1l
bnQpIGNvbnN0Cit7CisgICAgSW50U2l6ZSBzaXplID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVu
dCgpLT50aGVtZUVuZ2luZSgpLT5nZXRTaXplKFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRT
bGlkZXJUaHVtYik7CisKKyAgICBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVt
Ykhvcml6b250YWxQYXJ0KSB7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc2l6ZS53
aWR0aCgpLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzaXplLmhl
aWdodCgpLCBGaXhlZCkpOworICAgIH0gZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBT
bGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgeworICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3Ro
KHNpemUuaGVpZ2h0KCksIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3Ro
KHNpemUud2lkdGgoKSwgRml4ZWQpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWE6OmFkanVzdFNsaWRlclRodW1iU2l6ZShzdHlsZSwgZWxlbWVudCk7Cit9CisK
K2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzdXBwb3J0c0NvbnRyb2xUaW50cygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4OjpzZXRDYXJldEJsaW5rSW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQoreworICAgIG1fY2Fy
ZXRCbGlua0ludGVydmFsID0gaW50ZXJ2YWw7Cit9CisKK2RvdWJsZSBSZW5kZXJUaGVtZUNocm9t
aXVtTGludXg6OmNhcmV0QmxpbmtJbnRlcnZhbEludGVybmFsKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jYXJldEJsaW5rSW50ZXJ2YWw7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4OjpzZXRTZWxlY3Rpb25Db2xvcnMoCisgICAgdW5zaWduZWQgYWN0aXZlQmFja2dyb3VuZENv
bG9yLAorICAgIHVuc2lnbmVkIGFjdGl2ZUZvcmVncm91bmRDb2xvciwKKyAgICB1bnNpZ25lZCBp
bmFjdGl2ZUJhY2tncm91bmRDb2xvciwKKyAgICB1bnNpZ25lZCBpbmFjdGl2ZUZvcmVncm91bmRD
b2xvcikKK3sKKyAgICBtX2FjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvciA9IGFjdGl2ZUJh
Y2tncm91bmRDb2xvcjsKKyAgICBtX2FjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciA9IGFj
dGl2ZUZvcmVncm91bmRDb2xvcjsKKyAgICBtX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yID0gaW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3I7CisgICAgbV9pbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvciA9IGluYWN0aXZlRm9yZWdyb3VuZENvbG9yOworfQorCitib29sIFJlbmRl
clRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRDaGVja2JveChSZW5kZXJPYmplY3QqIG8sIGNvbnN0
IFBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBXZWJLaXQ6OldlYlRo
ZW1lRW5naW5lOjpFeHRyYVBhcmFtcyBleHRyYVBhcmFtczsKKyAgICBXZWJLaXQ6OldlYkNhbnZh
cyogY2FudmFzID0gaS5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7CisgICAg
ZXh0cmFQYXJhbXMuYnV0dG9uLmNoZWNrZWQgPSBpc0NoZWNrZWQobyk7CisgICAgZXh0cmFQYXJh
bXMuYnV0dG9uLmluZGV0ZXJtaW5hdGUgPSBpc0luZGV0ZXJtaW5hdGUobyk7CisKKyAgICBXZWJL
aXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPnBhaW50KGNhbnZhcywgV2Vi
S2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydENoZWNrYm94LCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMs
IG8pLCBXZWJLaXQ6OldlYlJlY3QocmVjdCksICZleHRyYVBhcmFtcyk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6c2V0Q2hlY2tib3hTaXpl
KFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK3sKKyAgICAvLyBJZiB0aGUgd2lkdGggYW5kIGhl
aWdodCBhcmUgYm90aCBzcGVjaWZpZWQsIHRoZW4gd2UgaGF2ZSBub3RoaW5nIHRvIGRvLgorICAg
IGlmICghc3R5bGUtPndpZHRoKCkuaXNJbnRyaW5zaWNPckF1dG8oKSAmJiAhc3R5bGUtPmhlaWdo
dCgpLmlzQXV0bygpKQorICAgICAgICByZXR1cm47CisKKyAgICBJbnRTaXplIHNpemUgPSBXZWJL
aXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPmdldFNpemUoV2ViS2l0OjpX
ZWJUaGVtZUVuZ2luZTo6UGFydENoZWNrYm94KTsKKyAgICBzZXRTaXplSWZBdXRvKHN0eWxlLCBz
aXplKTsKK30KKworYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50UmFkaW8oUmVu
ZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHJlY3QpCit7
CisgICAgV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6RXh0cmFQYXJhbXMgZXh0cmFQYXJhbXM7Cisg
ICAgV2ViS2l0OjpXZWJDYW52YXMqIGNhbnZhcyA9IGkuY29udGV4dC0+cGxhdGZvcm1Db250ZXh0
KCktPmNhbnZhcygpOworICAgIGV4dHJhUGFyYW1zLmJ1dHRvbi5jaGVja2VkID0gaXNDaGVja2Vk
KG8pOworCisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5w
YWludChjYW52YXMsIFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRSYWRpbywgZ2V0V2ViVGhl
bWVTdGF0ZSh0aGlzLCBvKSwgV2ViS2l0OjpXZWJSZWN0KHJlY3QpLCAmZXh0cmFQYXJhbXMpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNl
dFJhZGlvU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0Cit7CisgICAgLy8gSWYgdGhlIHdp
ZHRoIGFuZCBoZWlnaHQgYXJlIGJvdGggc3BlY2lmaWVkLCB0aGVuIHdlIGhhdmUgbm90aGluZyB0
byBkby4KKyAgICBpZiAoIXN0eWxlLT53aWR0aCgpLmlzSW50cmluc2ljT3JBdXRvKCkgJiYgIXN0
eWxlLT5oZWlnaHQoKS5pc0F1dG8oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW50U2l6ZSBz
aXplID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5nZXRTaXpl
KFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRSYWRpbyk7CisgICAgc2V0U2l6ZUlmQXV0byhz
dHlsZSwgc2l6ZSk7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludEJ1
dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYg
cmVjdCkKK3sKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpFeHRyYVBhcmFtcyBleHRyYVBh
cmFtczsKKyAgICBXZWJLaXQ6OldlYkNhbnZhcyogY2FudmFzID0gaS5jb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKS0+Y2FudmFzKCk7CisgICAgZXh0cmFQYXJhbXMuYnV0dG9uLmlzRGVmYXVsdCA9
IGlzRGVmYXVsdChvKTsKKyAgICBleHRyYVBhcmFtcy5idXR0b24uaGFzQm9yZGVyID0gdHJ1ZTsK
KyAgICBleHRyYVBhcmFtcy5idXR0b24uYmFja2dyb3VuZENvbG9yID0gZGVmYXVsdEJ1dHRvbkJh
Y2tncm91bmRDb2xvcjsKKyAgICBpZiAoby0+aGFzQmFja2dyb3VuZCgpKQorICAgICAgICBleHRy
YVBhcmFtcy5idXR0b24uYmFja2dyb3VuZENvbG9yID0gby0+c3R5bGUoKS0+dmlzaXRlZERlcGVu
ZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKS5yZ2IoKTsKKworICAgIFdlYktp
dDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnQoY2FudmFzLCBXZWJL
aXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0QnV0dG9uLCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG8p
LCBXZWJLaXQ6OldlYlJlY3QocmVjdCksICZleHRyYVBhcmFtcyk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRUZXh0RmllbGQoUmVu
ZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHJlY3QpCit7
CisgICAgLy8gV2ViVGhlbWVFbmdpbmUgZG9lcyBub3QgaGFuZGxlIGJvcmRlciByb3VuZGVkIGNv
cm5lciBhbmQgYmFja2dyb3VuZCBpbWFnZQorICAgIC8vIHNvIHJldHVybiB0cnVlIHRvIGRyYXcg
Q1NTIGJvcmRlciBhbmQgYmFja2dyb3VuZC4KKyAgICBpZiAoby0+c3R5bGUoKS0+aGFzQm9yZGVy
UmFkaXVzKCkgfHwgby0+c3R5bGUoKS0+aGFzQmFja2dyb3VuZEltYWdlKCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgQ29udHJvbFBhcnQgcGFydCA9IG8tPnN0eWxlKCktPmFwcGVhcmFu
Y2UoKTsKKworICAgIFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OkV4dHJhUGFyYW1zIGV4dHJhUGFy
YW1zOworICAgIGV4dHJhUGFyYW1zLnRleHRGaWVsZC5pc1RleHRBcmVhID0gcGFydCA9PSBUZXh0
QXJlYVBhcnQ7CisgICAgZXh0cmFQYXJhbXMudGV4dEZpZWxkLmlzTGlzdGJveCA9IHBhcnQgPT0g
TGlzdGJveFBhcnQ7CisKKyAgICBXZWJLaXQ6OldlYkNhbnZhcyogY2FudmFzID0gaS5jb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7CisKKyAgICAvLyBGYWxsYmFjayB0byB3aGl0
ZSBpZiB0aGUgc3BlY2lmaWVkIGNvbG9yIG9iamVjdCBpcyBpbnZhbGlkLgorICAgIENvbG9yIGJh
Y2tncm91bmRDb2xvcihDb2xvcjo6d2hpdGUpOworICAgIGlmIChvLT5zdHlsZSgpLT52aXNpdGVk
RGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLmlzVmFsaWQoKSkKKyAg
ICAgICAgYmFja2dyb3VuZENvbG9yID0gby0+c3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9y
KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKTsKKyAgICBleHRyYVBhcmFtcy50ZXh0RmllbGQu
YmFja2dyb3VuZENvbG9yID0gYmFja2dyb3VuZENvbG9yLnJnYigpOworCisgICAgV2ViS2l0OjpQ
bGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludChjYW52YXMsIFdlYktpdDo6
V2ViVGhlbWVFbmdpbmU6OlBhcnRUZXh0RmllbGQsIGdldFdlYlRoZW1lU3RhdGUodGhpcywgbyks
IFdlYktpdDo6V2ViUmVjdChyZWN0KSwgJmV4dHJhUGFyYW1zKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludE1lbnVMaXN0KFJlbmRl
ck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQorewor
ICAgIGlmICghby0+aXNCb3goKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3Qg
aW50IHJpZ2h0ID0gcmVjdC54KCkgKyByZWN0LndpZHRoKCk7CisgICAgY29uc3QgaW50IG1pZGRs
ZSA9IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAvIDI7CisKKyAgICBXZWJLaXQ6OldlYlRoZW1l
RW5naW5lOjpFeHRyYVBhcmFtcyBleHRyYVBhcmFtczsKKyAgICBleHRyYVBhcmFtcy5tZW51TGlz
dC5hcnJvd1ggPSAoby0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gUlRMKSA/IHJlY3QueCgpICsg
NyA6IHJpZ2h0IC0gMTM7CisgICAgZXh0cmFQYXJhbXMubWVudUxpc3QuYXJyb3dZID0gbWlkZGxl
OworICAgIGNvbnN0IFJlbmRlckJveCogYm94ID0gdG9SZW5kZXJCb3gobyk7CisgICAgLy8gTWF0
Y2ggQ2hyb21pdW0gV2luIGJlaGF2aW91ciBvZiBzaG93aW5nIGFsbCBib3JkZXJzIGlmIGFueSBh
cmUgc2hvd24uCisgICAgZXh0cmFQYXJhbXMubWVudUxpc3QuaGFzQm9yZGVyID0gYm94LT5ib3Jk
ZXJSaWdodCgpIHx8IGJveC0+Ym9yZGVyTGVmdCgpIHx8IGJveC0+Ym9yZGVyVG9wKCkgfHwgYm94
LT5ib3JkZXJCb3R0b20oKTsKKyAgICBleHRyYVBhcmFtcy5tZW51TGlzdC5oYXNCb3JkZXJSYWRp
dXMgPSBvLT5zdHlsZSgpLT5oYXNCb3JkZXJSYWRpdXMoKTsKKyAgICAvLyBGYWxsYmFjayB0byB0
cmFuc3BhcmVudCBpZiB0aGUgc3BlY2lmaWVkIGNvbG9yIG9iamVjdCBpcyBpbnZhbGlkLgorICAg
IGV4dHJhUGFyYW1zLm1lbnVMaXN0LmJhY2tncm91bmRDb2xvciA9IENvbG9yOjp0cmFuc3BhcmVu
dDsKKyAgICBpZiAoby0+aGFzQmFja2dyb3VuZCgpKQorICAgICAgICBleHRyYVBhcmFtcy5tZW51
TGlzdC5iYWNrZ3JvdW5kQ29sb3IgPSBvLT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3Io
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLnJnYigpOworCisgICAgV2ViS2l0OjpXZWJDYW52
YXMqIGNhbnZhcyA9IGkuY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOworCisg
ICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludChjYW52
YXMsIFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRNZW51TGlzdCwgZ2V0V2ViVGhlbWVTdGF0
ZSh0aGlzLCBvKSwgV2ViS2l0OjpXZWJSZWN0KHJlY3QpLCAmZXh0cmFQYXJhbXMpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50U2xp
ZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEludFJl
Y3QmIHJlY3QpCit7CisgICAgV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6RXh0cmFQYXJhbXMgZXh0
cmFQYXJhbXM7CisgICAgV2ViS2l0OjpXZWJDYW52YXMqIGNhbnZhcyA9IGkuY29udGV4dC0+cGxh
dGZvcm1Db250ZXh0KCktPmNhbnZhcygpOworICAgIGV4dHJhUGFyYW1zLnNsaWRlci52ZXJ0aWNh
bCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQ7CisKKyAg
ICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPnBhaW50KGNhbnZh
cywgV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydFNsaWRlclRyYWNrLCBnZXRXZWJUaGVtZVN0
YXRlKHRoaXMsIG8pLCBXZWJLaXQ6OldlYlJlY3QocmVjdCksICZleHRyYVBhcmFtcyk7CisKKyNp
ZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBwYWludFNsaWRlclRpY2tzKG8sIGksIHJl
Y3QpOworI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4OjpwYWludFNsaWRlclRodW1iKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFp
bnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFdlYktpdDo6V2ViVGhlbWVF
bmdpbmU6OkV4dHJhUGFyYW1zIGV4dHJhUGFyYW1zOworICAgIFdlYktpdDo6V2ViQ2FudmFzKiBj
YW52YXMgPSBpLmNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKKyAgICBleHRy
YVBhcmFtcy5zbGlkZXIudmVydGljYWwgPSBvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xp
ZGVyVGh1bWJWZXJ0aWNhbFBhcnQ7CisgICAgZXh0cmFQYXJhbXMuc2xpZGVyLmluRHJhZyA9IGlz
UHJlc3NlZChvKTsKKworICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhlbWVFbmdp
bmUoKS0+cGFpbnQoY2FudmFzLCBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0U2xpZGVyVGh1
bWIsIGdldFdlYlRoZW1lU3RhdGUodGhpcywgbyksIFdlYktpdDo6V2ViUmVjdChyZWN0KSwgJmV4
dHJhUGFyYW1zKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVDaHJv
bWl1bUxpbnV4OjphZGp1c3RJbm5lclNwaW5CdXR0b25TdHlsZShTdHlsZVJlc29sdmVyKiwgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QKK3sKKyAgICBJbnRTaXplIHNpemUgPSBX
ZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPmdldFNpemUoV2ViS2l0
OjpXZWJUaGVtZUVuZ2luZTo6UGFydElubmVyU3BpbkJ1dHRvbik7CisKKyAgICBzdHlsZS0+c2V0
V2lkdGgoTGVuZ3RoKHNpemUud2lkdGgoKSwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0TWluV2lk
dGgoTGVuZ3RoKHNpemUud2lkdGgoKSwgRml4ZWQpKTsKK30KKworYm9vbCBSZW5kZXJUaGVtZUNo
cm9taXVtTGludXg6OnBhaW50SW5uZXJTcGluQnV0dG9uKFJlbmRlck9iamVjdCogbywgY29uc3Qg
UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFdlYktpdDo6V2ViVGhl
bWVFbmdpbmU6OkV4dHJhUGFyYW1zIGV4dHJhUGFyYW1zOworICAgIFdlYktpdDo6V2ViQ2FudmFz
KiBjYW52YXMgPSBpLmNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKKyAgICBl
eHRyYVBhcmFtcy5pbm5lclNwaW4uc3BpblVwID0gKGNvbnRyb2xTdGF0ZXNGb3JSZW5kZXJlcihv
KSAmIFNwaW5VcFN0YXRlKTsKKyAgICBleHRyYVBhcmFtcy5pbm5lclNwaW4ucmVhZE9ubHkgPSBp
c1JlYWRPbmx5Q29udHJvbChvKTsKKworICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+
dGhlbWVFbmdpbmUoKS0+cGFpbnQoY2FudmFzLCBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0
SW5uZXJTcGluQnV0dG9uLCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG8pLCBXZWJLaXQ6OldlYlJl
Y3QocmVjdCksICZleHRyYVBhcmFtcyk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCisjaWYgRU5B
QkxFKFBST0dSRVNTX0VMRU1FTlQpCisKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojpw
YWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25z
dCBJbnRSZWN0JiByZWN0KQoreworICAgIGlmICghby0+aXNQcm9ncmVzcygpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgIFJlbmRlclByb2dyZXNzKiByZW5kZXJQcm9ncmVzcyA9IHRvUmVu
ZGVyUHJvZ3Jlc3Mobyk7CisgICAgSW50UmVjdCB2YWx1ZVJlY3QgPSBwcm9ncmVzc1ZhbHVlUmVj
dEZvcihyZW5kZXJQcm9ncmVzcywgcmVjdCk7CisKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5l
OjpFeHRyYVBhcmFtcyBleHRyYVBhcmFtczsKKyAgICBleHRyYVBhcmFtcy5wcm9ncmVzc0Jhci5k
ZXRlcm1pbmF0ZSA9IHJlbmRlclByb2dyZXNzLT5pc0RldGVybWluYXRlKCk7CisgICAgZXh0cmFQ
YXJhbXMucHJvZ3Jlc3NCYXIudmFsdWVSZWN0WCA9IHZhbHVlUmVjdC54KCk7CisgICAgZXh0cmFQ
YXJhbXMucHJvZ3Jlc3NCYXIudmFsdWVSZWN0WSA9IHZhbHVlUmVjdC55KCk7CisgICAgZXh0cmFQ
YXJhbXMucHJvZ3Jlc3NCYXIudmFsdWVSZWN0V2lkdGggPSB2YWx1ZVJlY3Qud2lkdGgoKTsKKyAg
ICBleHRyYVBhcmFtcy5wcm9ncmVzc0Jhci52YWx1ZVJlY3RIZWlnaHQgPSB2YWx1ZVJlY3QuaGVp
Z2h0KCk7CisKKyAgICBEaXJlY3Rpb25GbGlwcGluZ1Njb3BlIHNjb3BlKG8sIGksIHJlY3QpOwor
ICAgIFdlYktpdDo6V2ViQ2FudmFzKiBjYW52YXMgPSBpLmNvbnRleHQtPnBsYXRmb3JtQ29udGV4
dCgpLT5jYW52YXMoKTsKKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5n
aW5lKCktPnBhaW50KGNhbnZhcywgV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydFByb2dyZXNz
QmFyLCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG8pLCBXZWJLaXQ6OldlYlJlY3QocmVjdCksICZl
eHRyYVBhcmFtcyk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCisjZW5kaWYKKworYm9vbCBSZW5k
ZXJUaGVtZUNocm9taXVtTGludXg6OnNob3VsZE9wZW5QaWNrZXJXaXRoRjRLZXkoKSBjb25zdAor
eworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWZjNGIzNWRiNThiYjMyZDFhNmQ0YmRkODViYzE0ZTY4NWZjMTkwZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
TGludXguaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBXZWJLaXQgcHJvamVjdC4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxA
Z21haWwuY29tCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRo
ZXIKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEdvb2dsZSwgSW5jLgorICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8K
KworI2lmbmRlZiBSZW5kZXJUaGVtZUNocm9taXVtTGludXhfaAorI2RlZmluZSBSZW5kZXJUaGVt
ZUNocm9taXVtTGludXhfaAorCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4IDogcHVibGljIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclRoZW1lPiBjcmVhdGUoKTsKKyAgICAgICAgdmly
dHVhbCBTdHJpbmcgZXh0cmFEZWZhdWx0U3R5bGVTaGVldCgpOworCisgICAgICAgIHZpcnR1YWwg
Q29sb3Igc3lzdGVtQ29sb3IoaW50IGNzc1ZhbGlkSWQpIGNvbnN0OworCisgICAgICAgIC8vIEEg
bWV0aG9kIGFza2luZyBpZiB0aGUgY29udHJvbCBjaGFuZ2VzIGl0cyB0aW50IHdoZW4gdGhlIHdp
bmRvdyBoYXMgZm9jdXMgb3Igbm90LgorICAgICAgICB2aXJ0dWFsIGJvb2wgY29udHJvbFN1cHBv
cnRzVGludHMoY29uc3QgUmVuZGVyT2JqZWN0KikgY29uc3Q7CisKKyAgICAgICAgLy8gTGlzdCBC
b3ggc2VsZWN0aW9uIGNvbG9yCisgICAgICAgIHZpcnR1YWwgQ29sb3IgYWN0aXZlTGlzdEJveFNl
bGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIENvbG9yIGFj
dGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICAgICAgdmly
dHVhbCBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoKSBjb25zdDsKKworICAgICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0OworICAgICAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkg
Y29uc3Q7CisgICAgICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcigpIGNvbnN0OworCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisg
ICAgICAgIHZpcnR1YWwgSW50U2l6ZSBzbGlkZXJUaWNrU2l6ZSgpIGNvbnN0IE9WRVJSSURFOwor
ICAgICAgICB2aXJ0dWFsIGludCBzbGlkZXJUaWNrT2Zmc2V0RnJvbVRyYWNrQ2VudGVyKCkgY29u
c3QgT1ZFUlJJREU7CisjZW5kaWYKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRo
dW1iU2l6ZShSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKKworICAgICAgICBzdGF0aWMg
dm9pZCBzZXRDYXJldEJsaW5rSW50ZXJ2YWwoZG91YmxlIGludGVydmFsKTsKKyAgICAgICAgdmly
dHVhbCBkb3VibGUgY2FyZXRCbGlua0ludGVydmFsSW50ZXJuYWwoKSBjb25zdDsKKworICAgICAg
ICB2aXJ0dWFsIGJvb2wgcGFpbnRDaGVja2JveChSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludElu
Zm8mLCBjb25zdCBJbnRSZWN0Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRDaGVja2JveFNp
emUoUmVuZGVyU3R5bGUqKSBjb25zdDsKKworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRSYWRp
byhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXRSYWRpb1NpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKKworICAg
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRUZXh0Rmll
bGQoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZW51TGlzdChSZW5kZXJPYmplY3QqLCBjb25zdCBQYWlu
dEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRl
clRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsK
KyAgICAgICAgdmlydHVhbCBib29sIHBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiwgY29u
c3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOworCisgICAgICAgIHZpcnR1YWwgdm9pZCBh
ZGp1c3RJbm5lclNwaW5CdXR0b25TdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBF
bGVtZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludElubmVyU3BpbkJ1dHRv
bihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisKKyAg
ICAgICAgdmlydHVhbCBib29sIHBvcHNNZW51QnlTcGFjZU9yUmV0dXJuKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQorCisjaWYgRU5BQkxFKFBST0dSRVNTX0VMRU1FTlQpCisgICAg
ICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCosIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKyNlbmRpZgorCisgICAgICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRPcGVuUGlja2VyV2l0aEY0S2V5KCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICAgICAg
c3RhdGljIHZvaWQgc2V0U2VsZWN0aW9uQ29sb3JzKHVuc2lnbmVkIGFjdGl2ZUJhY2tncm91bmRD
b2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFj
dGl2ZUZvcmVncm91bmRDb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGluYWN0aXZlQmFja2dyb3VuZENvbG9yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5hY3RpdmVGb3JlZ3JvdW5kQ29sb3IpOwor
CisgICAgcHJvdGVjdGVkOgorICAgICAgICBSZW5kZXJUaGVtZUNocm9taXVtTGludXgoKTsKKyAg
ICAgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCk7CisKKyAgICBwcml2YXRl
OgorICAgICAgICAvLyBBIGdlbmVyYWwgbWV0aG9kIGFza2luZyBpZiBhbnkgY29udHJvbCB0aW50
aW5nIGlzIHN1cHBvcnRlZCBhdCBhbGwuCisgICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Nv
bnRyb2xUaW50cygpIGNvbnN0OworCisgICAgICAgIHN0YXRpYyBkb3VibGUgbV9jYXJldEJsaW5r
SW50ZXJ2YWw7CisKKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIG1fYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yOworICAgICAgICBzdGF0aWMgdW5zaWduZWQgbV9hY3RpdmVTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3I7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBtX2luYWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yOworICAgICAgICBzdGF0aWMgdW5zaWduZWQgbV9pbmFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcjsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBSZW5kZXJUaGVtZUNocm9taXVtTGludXhfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwCmluZGV4IGE0Mzk2MDI1YTQwMzJlZTU0NTQ1M2Q2NTY3MTAwMzNiZGQ0YWUwNDMu
LmNiMTUzZWFiMGI4ZjBiZTdiYzU3N2VkZDZjNTc4YTQ0YmQwMTU3MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAKQEAgLTI5NCw2ICsyOTQsNyBAQAogICAgICAgICAgICAgICAgICdwdWJs
aWMvZ3RrL1dlYklucHV0RXZlbnRGYWN0b3J5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
bGludXgvV2ViRm9udFJlbmRlclN0eWxlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvbGlu
dXgvV2ViRm9udFJlbmRlcmluZy5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL2xpbnV4L1dl
YlJlbmRlclRoZW1lLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvbWFjL1dlYklucHV0RXZl
bnRGYWN0b3J5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvbWFjL1dlYlNhbmRib3hTdXBw
b3J0LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5
LmgnLApAQCAtNDM4LDYgKzQzOSw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9saW51eC9XZWJG
b250SW5mby5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvbGludXgvV2ViRm9udFJlbmRlcmlu
Zy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmNw
cCcsCisgICAgICAgICAgICAgICAgJ3NyYy9saW51eC9XZWJSZW5kZXJUaGVtZS5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMveDExL1dlYlNjcmVlbkluZm9GYWN0b3J5LmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0nLAogICAgICAgICAgICAg
ICAgICdzcmMvbWFjL1dlYlNjcmVlbkluZm9GYWN0b3J5Lm1tJywKQEAgLTg0NCw2ICs4NDYsMTAg
QEAKICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICB9XSwKICAgICAgICAg
ICAgICAgICBbJ3VzZV9kZWZhdWx0X3JlbmRlcl90aGVtZT09MScsIHsKKyAgICAgICAgICAgICAg
ICAgICAgJ3NvdXJjZXMvJzogWworICAgICAgICAgICAgICAgICAgICAgICAgWydleGNsdWRlJywg
J3NyYy9saW51eC9XZWJSZW5kZXJUaGVtZS5jcHAnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IFsnZXhjbHVkZScsICdwdWJsaWMvbGludXgvV2ViUmVuZGVyVGhlbWUuaCddLAorICAgICAgICAg
ICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9kaXJzJzogWwogICAg
ICAgICAgICAgICAgICAgICAgICAgJ3B1YmxpYy9kZWZhdWx0JywKICAgICAgICAgICAgICAgICAg
ICAgXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL2xpbnV4L1dl
YlJlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJS
ZW5kZXJUaGVtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNTE3YzY2NDc5ZDdlNGRiOTQ1MWNiZTllM2JlYTQ5
Zjg1YTA5ODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9saW51eC9XZWJSZW5kZXJUaGVtZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgSm9lbCBTdGFubGV5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUmVu
ZGVyVGhlbWVfaAorI2RlZmluZSBXZWJSZW5kZXJUaGVtZV9oCisKKyNpbmNsdWRlICIuLi9wbGF0
Zm9ybS9XZWJDb21tb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFNldCBjYXJldCBi
bGluayBpbnRlcnZhbCBmb3IgdGV4dCBpbnB1dCBhcmVhcy4KK1dFQktJVF9FWFBPUlQgdm9pZCBz
ZXRDYXJldEJsaW5rSW50ZXJ2YWwoZG91YmxlKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZv
cm0vbGludXgvV2ViVGhlbWVFbmdpbmUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L3BsYXRmb3JtL2xpbnV4L1dlYlRoZW1lRW5naW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc3YWU1Y2ViYTg3
YjM3NDEyZDQ3ZDA4NzdhOTk1MmMzMWFiZWU4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL2xpbnV4L1dlYlRoZW1lRW5naW5lLmgKQEAg
LTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
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
QUdFLgorICovCisKKyNpbmNsdWRlICIuLi8uLi8uLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvbGludXgvV2ViVGhlbWVFbmdpbmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAppbmRleCA0NDMxNDBjMDE0OWRiMWZjNDc0ODQ5YWZkODExNmZmNzQ0
NmM0OWRiLi41MzJiMjFiZmI1NTFjYWYzOGUyYWNmNDg2ZjExMWJjNjBkMGM1ZjIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xNzksNiArMTc5LDEw
IEBACiAjaW5jbHVkZSAiUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oIgogI2VuZGlmCiAjZWxzZQor
I2lmIE9TKFVOSVgpICYmICFPUyhEQVJXSU4pICYmICFFTkFCTEUoREVGQVVMVF9SRU5ERVJfVEhF
TUUpCisjaW5jbHVkZSAiUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXguaCIKKyNpbmNsdWRlICJS
ZW5kZXJUaGVtZUNocm9taXVtTGludXguaCIKKyNlbmRpZgogI2luY2x1ZGUgIlJlbmRlclRoZW1l
LmgiCiAjZW5kaWYKIApAQCAtMzU2NCw2ICszNTY4LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0
U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tDb2xvcikgewogI2lmIEVOQUJMRShE
RUZBVUxUX1JFTkRFUl9USEVNRSkKICAgICBQbGF0Zm9ybVRoZW1lQ2hyb21pdW1EZWZhdWx0Ojpz
ZXRTY3JvbGxiYXJDb2xvcnMoaW5hY3RpdmVDb2xvciwgYWN0aXZlQ29sb3IsIHRyYWNrQ29sb3Ip
OworI2VsaWYgT1MoVU5JWCkgJiYgIU9TKERBUldJTikgJiYgIU9TKEFORFJPSUQpCisgICAgUGxh
dGZvcm1UaGVtZUNocm9taXVtTGludXg6OnNldFNjcm9sbGJhckNvbG9ycyhpbmFjdGl2ZUNvbG9y
LCBhY3RpdmVDb2xvciwgdHJhY2tDb2xvcik7CiAjZW5kaWYKIH0KIApAQCAtMzU3NCw2ICszNTgw
LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2VsZWN0aW9uQ29sb3JzKHVuc2lnbmVkIGFjdGl2
ZUJhY2tncm91bmRDb2xvciwKICNpZiBFTkFCTEUoREVGQVVMVF9SRU5ERVJfVEhFTUUpCiAgICAg
UmVuZGVyVGhlbWVDaHJvbWl1bURlZmF1bHQ6OnNldFNlbGVjdGlvbkNvbG9ycyhhY3RpdmVCYWNr
Z3JvdW5kQ29sb3IsIGFjdGl2ZUZvcmVncm91bmRDb2xvciwgaW5hY3RpdmVCYWNrZ3JvdW5kQ29s
b3IsIGluYWN0aXZlRm9yZWdyb3VuZENvbG9yKTsKICAgICB0aGVtZSgpLT5wbGF0Zm9ybUNvbG9y
c0RpZENoYW5nZSgpOworI2VsaWYgT1MoVU5JWCkgJiYgIU9TKERBUldJTikgJiYgIU9TKEFORFJP
SUQpCisgICAgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzZXRTZWxlY3Rpb25Db2xvcnMoYWN0
aXZlQmFja2dyb3VuZENvbG9yLCBhY3RpdmVGb3JlZ3JvdW5kQ29sb3IsIGluYWN0aXZlQmFja2dy
b3VuZENvbG9yLCBpbmFjdGl2ZUZvcmVncm91bmRDb2xvcik7CisgICAgdGhlbWUoKS0+cGxhdGZv
cm1Db2xvcnNEaWRDaGFuZ2UoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9saW51eC9XZWJSZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9saW51eC9XZWJSZW5kZXJUaGVtZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZlYTIy
YzRiMzhjYjA0YjJiYjVkOWExYjQyOWRiMDdmODQxYmJmMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2xpbnV4L1dlYlJlbmRlclRoZW1lLmNwcApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEpvZWwgU3RhbmxleS4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVuZGVyVGhlbWUu
aCIKKworI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgorI2luY2x1ZGUgIldl
YlZpZXcuaCIKKwordXNpbmcgV2ViQ29yZTo6UmVuZGVyVGhlbWU7Cit1c2luZyBXZWJDb3JlOjpS
ZW5kZXJUaGVtZUNocm9taXVtTGludXg7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIHNl
dENhcmV0QmxpbmtJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpCit7CisgICAgUmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4OjpzZXRDYXJldEJsaW5rSW50ZXJ2YWwoaW50ZXJ2YWwpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAzNmJmYjlmZjJiZDI0YmFkYjFhM2Y2ODMyMzA2NGQ3OTU1NDIxNTI0Li4y
MjJhNzY0MjYwM2RjYjQwY2QwOTc2ZDllZGZmMzlkNTg1NGQwOTA4IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTIt
MTItMDYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzY3ODQgYW5kIHIxMzY4MDIuCisgICAgICAg
IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEzNjc4NAorICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzY4MDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDIzMQorCisgICAgICAgIGJyZWFrcyBjaHJvbWl1
bSBjYW5hcnkgKFJlcXVlc3RlZCBieSBtb3JyaXRhIG9uICN3ZWJraXQpLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2J1aWxkX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoU2hvdWxkQnVpbGRUZXN0KToKKwogMjAxMi0xMi0wNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgbXlzZWxmIHRvIHdhdGNoIGNoYW5nZXMgaW4gUGVy
Zm9ybWFuY2VUZXN0cy8qLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY29uZmlnL2J1aWxkX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY29uZmlnL2J1aWxkX3VuaXR0ZXN0LnB5CmluZGV4IDk3Mzk5NWRjN2ViYzUwNmIzMzE1ODlh
MjQ1NjZlMDdjZmM3OTkwN2EuLmJiNjM0ZDMxMDMyMTE1ZDZhOWU2ZWNmMTAxNDZjMDA2YzU1ZTJm
ZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9idWls
ZF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcv
YnVpbGRfdW5pdHRlc3QucHkKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgU2hvdWxkQnVpbGRUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgKFsiU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2ZvbyJdLCBbIm1hYy1sZW9wYXJkIiwgIm1hYy1saW9uIiwgICJtYWMtbW91
bnRhaW5saW9uIiwgIm1hYy1zbm93bGVvcGFyZCJdKSwKICAgICAgICAgKFsiU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3gvd3hjb2RlL3dpbi9mb28iXSwgW10pLAogICAgICAgICAoWyJTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0iLCAiU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgiXSwgWyJtYWMtbGVvcGFyZCIsICJtYWMtbGlvbiIsICAi
bWFjLW1vdW50YWlubGlvbiIsICJtYWMtc25vd2xlb3BhcmQiXSksCi0gICAgICAgIChbIlNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtRGVmYXVsdC5oIl0sIFsiY2hy
b21pdW0tbGludXgiXSksCisgICAgICAgIChbIlNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtTGludXguaCJdLCBbImNocm9taXVtLWxpbnV4Il0pLAogICAgICAgICAo
WyJTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oIl0sIFtdKSwKICAg
ICAgICAgKFsiVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvTGVha3NWaWV3ZXIvTGVha3NWaWV3ZXIuanMiXSwgW10pLAogICAgIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>