<?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>77571</bug_id>
          
          <creation_ts>2012-02-01 12:39:15 -0800</creation_ts>
          <short_desc>REGRESSION(r106382): Causing chromium crashes in PNGImageDecoder (Requested by japhet on #webkit).</short_desc>
          <delta_ts>2012-02-01 13:18:42 -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>76885</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>fishd</cc>
    
    <cc>jbates</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547293</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-01 12:39:15 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/106382 broke the build:
Causing chromium crashes in PNGImageDecoder (Requested by japhet 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>547295</commentid>
    <comment_count>1</comment_count>
      <attachid>124992</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-01 12:39:49 -0800</bug_when>
    <thetext>Created attachment 124992
ROLLOUT of r106382

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>547319</commentid>
    <comment_count>2</comment_count>
      <attachid>124992</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-01 13:18:37 -0800</bug_when>
    <thetext>Comment on attachment 124992
ROLLOUT of r106382

Clearing flags on attachment: 124992

Committed r106487: &lt;http://trac.webkit.org/changeset/106487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547320</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-01 13:18:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124992</attachid>
            <date>2012-02-01 12:39:49 -0800</date>
            <delta_ts>2012-02-01 13:18:37 -0800</delta_ts>
            <desc>ROLLOUT of r106382</desc>
            <filename>bug-77571-20120201204113.patch</filename>
            <type>text/plain</type>
            <size>54684</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUzZDBmZTBkYmZmMDg3
OGY5ZjQ3YzU5ZDA3YTM4NTFjZWQyNGRlNy4uMjMyOTI1ZWZiYTIxYmVkNzlmYjE2ZGE5YTc1NzU3
YjYxNTMwNmMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAyLTAxICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTA2MzgyLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMDYzODIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3NTcxCisKKyAgICAgICAgQ2F1c2luZyBjaHJvbWl1bSBjcmFzaGVzIGluIFBO
R0ltYWdlRGVjb2RlciAoUmVxdWVzdGVkIGJ5CisgICAgICAgIGphcGhldCBvbiAjd2Via2l0KS4K
KworICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhQcm94eTo6ZXZhbHVhdGUpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb25zb2xlOjp0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OnRp
bWVFbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1RyYWNlRXZlbnQuaDoKKyAgICAgICAgKGludGVy
bmFsKToKKyAgICAgICAgKFNjb3BlVHJhY2VyKToKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFs
OjpTY29wZVRyYWNlcjo6U2NvcGVUcmFjZXIpOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWw6
OlNjb3BlVHJhY2VyOjp+U2NvcGVUcmFjZXIpOgorCiAyMDEyLTAyLTAxICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDliOTdiMjhkM2E2N2Q3OTM1NjU3NTA2
MTNlMjY0MDc2MmI2NDgwZmEuLjA3NGIyZDE3ODc1NmE4YzM0NzYzNDNiY2NiZWNkODc2MWQ2ZTYx
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDIt
MDEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDYzODIuCisgICAgICAgIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzEwNjM4MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NzEKKworICAgICAgICBDYXVzaW5nIGNocm9taXVtIGNyYXNo
ZXMgaW4gUE5HSW1hZ2VEZWNvZGVyIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgamFwaGV0IG9uICN3
ZWJraXQpLgorCisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9y
dC5oOgorICAgICAgICAoV2ViS2l0UGxhdGZvcm1TdXBwb3J0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViS2l0UGxhdGZvcm1TdXBwb3J0Ojppc1RyYWNlRXZlbnRFbmFibGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViS2l0UGxhdGZvcm1TdXBwb3J0Ojp0cmFjZUV2ZW50QmVnaW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OnRyYWNlRXZlbnRFbmQpOgorICAgICAgICAq
IHNyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBw
b3J0Ojppc1RyYWNlRXZlbnRFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0Ojp0cmFjZUV2ZW50QmVnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1TdXBwb3J0Ojp0cmFjZUV2ZW50RW5kKToKKwogMjAxMi0wMi0wMSAgRGly
ayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBUZXN0V2ViS2l0QVBJ
IGlzbid0IGJlaW5nIGJ1aWx0IG9uIGNocm9taXVtIGJvdHMgYW55IG1vcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhQcm94eS5jcHAKaW5kZXggNGE3YzZlN2NjNDM0YTM4NmE3OGY4YzZiMzYz
NjM0NGI5YThjNWM2Yy4uNDdkYjE1YzVhMTRkMWQ5YTlmYThkMTFhZDk2NWQ1MzVlMWVhNjdmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTcxLDEwICs3MSw2IEBA
CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50Lmgi
Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgVjhFeHRlbnNpb25zJiBz
dGF0aWNFeHRlbnNpb25zTGlzdCgpCkBAIC0zMzksNyArMzM1LDcgQEAgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gVjhQcm94eTo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlLCBO
b2RlKiBub2QKICAgICAgICAgLy8gQ29tcGlsZSB0aGUgc2NyaXB0LgogICAgICAgICB2ODo6TG9j
YWw8djg6OlN0cmluZz4gY29kZSA9IHY4RXh0ZXJuYWxTdHJpbmcoc291cmNlLnNvdXJjZSgpKTsK
ICNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgVFJBQ0VfRVZFTlRfQkVHSU4wKCJ2OCIs
ICJ2OC5jb21waWxlIik7CisgICAgICAgIFBsYXRmb3JtU3VwcG9ydDo6dHJhY2VFdmVudEJlZ2lu
KCJ2OC5jb21waWxlIiwgbm9kZSwgIiIpOwogI2VuZGlmCiAgICAgICAgIE93blB0cjx2ODo6U2Ny
aXB0RGF0YT4gc2NyaXB0RGF0YSA9IHByZWNvbXBpbGVTY3JpcHQoY29kZSwgc291cmNlLmNhY2hl
ZFNjcmlwdCgpKTsKIApAQCAtMzQ3LDExICszNDMsMTUgQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
VjhQcm94eTo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlLCBOb2RlKiBu
b2QKICAgICAgICAgLy8gMSwgd2hlcmVhcyB2OCBzdGFydHMgYXQgMC4KICAgICAgICAgdjg6Okhh
bmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQgPSBjb21waWxlU2NyaXB0KGNvZGUsIHNvdXJjZS51cmwo
KSwgc291cmNlLnN0YXJ0UG9zaXRpb24oKSwgc2NyaXB0RGF0YS5nZXQoKSk7CiAjaWYgUExBVEZP
Uk0oQ0hST01JVU0pCi0gICAgICAgIFRSQUNFX0VWRU5UX0VORDAoInY4IiwgInY4LmNvbXBpbGUi
KTsKLSAgICAgICAgVFJBQ0VfRVZFTlQwKCJ2OCIsICJ2OC5ydW4iKTsKKyAgICAgICAgUGxhdGZv
cm1TdXBwb3J0Ojp0cmFjZUV2ZW50RW5kKCJ2OC5jb21waWxlIiwgbm9kZSwgIiIpOworCisgICAg
ICAgIFBsYXRmb3JtU3VwcG9ydDo6dHJhY2VFdmVudEJlZ2luKCJ2OC5ydW4iLCBub2RlLCAiIik7
CiAjZW5kaWYKICAgICAgICAgcmVzdWx0ID0gcnVuU2NyaXB0KHNjcmlwdCk7CiAgICAgfQorI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQorICAgIFBsYXRmb3JtU3VwcG9ydDo6dHJhY2VFdmVudEVuZCgi
djgucnVuIiwgbm9kZSwgIiIpOworI2VuZGlmCiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZEV2YWx1YXRlU2NyaXB0KGNvb2tpZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCmlu
ZGV4IDUxNWFiMzRkN2EwNmQ0YWMyMmI1M2Y0Y2Y4ZDlmODRhZjFjNWY3NzEuLjI0ZTEzYTVmZGJh
NTMwMWJiNzUyOTRjZTM0MGI1YTBmZWFkMjQ5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29uc29sZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcApA
QCAtMjk5LDE0ICsyOTksMTYgQEAgdm9pZCBDb25zb2xlOjp0aW1lKGNvbnN0IFN0cmluZyYgdGl0
bGUpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNvbGVUaW1pbmco
cGFnZSgpLCB0aXRsZSk7CiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlRf
Q09QWV9CRUdJTjAoIndlYmtpdCIsIHRpdGxlLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChQbGF0
Zm9ybVN1cHBvcnQ6OmlzVHJhY2VFdmVudEVuYWJsZWQoKSkKKyAgICAgICAgUGxhdGZvcm1TdXBw
b3J0Ojp0cmFjZUV2ZW50QmVnaW4odGl0bGUudXRmOCgpLmRhdGEoKSwgMCwgMCk7CiAjZW5kaWYK
IH0KIAogdm9pZCBDb25zb2xlOjp0aW1lRW5kKGNvbnN0IFN0cmluZyYgdGl0bGUsIFBhc3NSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
aykKIHsKICNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVF9DT1BZX0VORDAo
IndlYmtpdCIsIHRpdGxlLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChQbGF0Zm9ybVN1cHBvcnQ6
OmlzVHJhY2VFdmVudEVuYWJsZWQoKSkKKyAgICAgICAgUGxhdGZvcm1TdXBwb3J0Ojp0cmFjZUV2
ZW50RW5kKHRpdGxlLnV0ZjgoKS5kYXRhKCksIDAsIDApOwogI2VuZGlmCiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpzdG9wQ29uc29sZVRpbWluZyhwYWdlKCksIHRpdGxlLCBjYWxsU3Rh
Y2spOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxh
dGZvcm1TdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9y
bVN1cHBvcnQuaAppbmRleCBlNjljYjEyNmQ4ZjRlY2M3ZDRlMjVlNDk2ZjhkZTU5NjI5YmFjMDJm
Li4xZjM5NmM1ZDM2OTE5MGZkOTViMWM5NjkzMDEwZDcxOGZmMjZiZmQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaApAQCAtNDE2
LDE4ICs0MTYsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIC8vIFRyYWNlIEV2ZW50IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGdldFRyYWNlQ2F0ZWdvcnlFbmFibGVkRmxhZyhj
b25zdCBjaGFyKiBjYXRlZ29yeU5hbWUpOwotICAgIHN0YXRpYyBpbnQgYWRkVHJhY2VFdmVudChj
aGFyIHBoYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBj
aGFyKiBjYXRlZ29yeUVuYWJsZWRGbGFnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
b25nIGxvbmcgaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1BcmdzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiogYXJnTmFtZXMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcqIGFy
Z1ZhbHVlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRocmVzaG9sZEJlZ2lu
SWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aHJlc2hvbGQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpOworICAgIHN0
YXRpYyBib29sIGlzVHJhY2VFdmVudEVuYWJsZWQoKTsKKyAgICBzdGF0aWMgdm9pZCB0cmFjZUV2
ZW50QmVnaW4oY29uc3QgY2hhciogbmFtZSwgdm9pZCosIGNvbnN0IGNoYXIqIGV4dHJhKTsKKyAg
ICBzdGF0aWMgdm9pZCB0cmFjZUV2ZW50RW5kKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQqLCBjb25z
dCBjaGFyKiBleHRyYSk7CiAKICAgICAvLyBWaXNpdGVkIGxpbmtzIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIHN0YXRpYyBMaW5rSGFz
aCB2aXNpdGVkTGlua0hhc2goY29uc3QgVUNoYXIqIHVybCwgdW5zaWduZWQgbGVuZ3RoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1RyYWNlRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1RyYWNlRXZlbnQuaAppbmRleCA1YmI2
MDBmYjM4NjdkZGE3Njk5ZTI5YTA5OGI5YjY3OTMzYjc4ODNiLi42NTJmNTQwN2NhM2Y1NzUxNGNm
YWEzZDZhOGJkZDA2ODI1N2I5Njk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9UcmFjZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vVHJhY2VFdmVudC5oCkBAIC0yMiw4NDMgKzIyLDUzIEBACiAgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KLQotLy8gVHJhY2UgZXZlbnRzIGFyZSBmb3IgdHJhY2tpbmcg
YXBwbGljYXRpb24gcGVyZm9ybWFuY2UgYW5kIHJlc291cmNlIHVzYWdlLgotLy8gTWFjcm9zIGFy
ZSBwcm92aWRlZCB0byB0cmFjazoKLS8vICAgIEJlZ2luIGFuZCBlbmQgb2YgZnVuY3Rpb24gY2Fs
bHMKLS8vICAgIENvdW50ZXJzCi0vLwotLy8gRXZlbnRzIGFyZSBpc3N1ZWQgYWdhaW5zdCBjYXRl
Z29yaWVzLiBXaGVyZWFzIExPRydzCi0vLyBjYXRlZ29yaWVzIGFyZSBzdGF0aWNhbGx5IGRlZmlu
ZWQsIFRSQUNFIGNhdGVnb3JpZXMgYXJlIGNyZWF0ZWQKLS8vIGltcGxpY2l0bHkgd2l0aCBhIHN0
cmluZy4gRm9yIGV4YW1wbGU6Ci0vLyAgIFRSQUNFX0VWRU5UX0lOU1RBTlQwKCJNWV9TVUJTWVNU
RU0iLCAiU29tZUltcG9ydGFudEV2ZW50IikKLS8vCi0vLyBFdmVudHMgY2FuIGJlIElOU1RBTlQs
IG9yIGNhbiBiZSBwYWlycyBvZiBCRUdJTiBhbmQgRU5EIGluIHRoZSBzYW1lIHNjb3BlOgotLy8g
ICBUUkFDRV9FVkVOVF9CRUdJTjAoIk1ZX1NVQlNZU1RFTSIsICJTb21ldGhpbmdDb3N0bHkiKQot
Ly8gICBkb1NvbWV0aGluZ0Nvc3RseSgpCi0vLyAgIFRSQUNFX0VWRU5UX0VORDAoIk1ZX1NVQlNZ
U1RFTSIsICJTb21ldGhpbmdDb3N0bHkiKQotLy8gTm90ZTogb3VyIHRvb2xzIGNhbid0IGFsd2F5
cyBkZXRlcm1pbmUgdGhlIGNvcnJlY3QgQkVHSU4vRU5EIHBhaXJzIHVubGVzcwotLy8gdGhlc2Ug
YXJlIHVzZWQgaW4gdGhlIHNhbWUgc2NvcGUuIFVzZSBTVEFSVC9GSU5JU0ggbWFjcm9zIGlmIHlv
dSBuZWVkIHRoZW0KLS8vIHRvIGJlIGluIHNlcGFyYXRlIHNjb3Blcy4KLS8vCi0vLyBBIGNvbW1v
biB1c2UgY2FzZSBpcyB0byB0cmFjZSBlbnRpcmUgZnVuY3Rpb24gc2NvcGVzLiBUaGlzCi0vLyBp
c3N1ZXMgYSB0cmFjZSBCRUdJTiBhbmQgRU5EIGF1dG9tYXRpY2FsbHk6Ci0vLyAgIHZvaWQgZG9T
b21ldGhpbmdDb3N0bHkoKSB7Ci0vLyAgICAgVFJBQ0VfRVZFTlQwKCJNWV9TVUJTWVNURU0iLCAi
ZG9Tb21ldGhpbmdDb3N0bHkiKTsKLS8vICAgICAuLi4KLS8vICAgfQotLy8KLS8vIEFkZGl0aW9u
YWwgcGFyYW1ldGVycyBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGFuIGV2ZW50OgotLy8gICB2b2lk
IGRvU29tZXRoaW5nQ29zdGx5MihpbnQgaG93TXVjaCkgewotLy8gICAgIFRSQUNFX0VWRU5UMSgi
TVlfU1VCU1lTVEVNIiwgImRvU29tZXRoaW5nQ29zdGx5IiwKLS8vICAgICAgICAgImhvd011Y2gi
LCBob3dNdWNoKTsKLS8vICAgICAuLi4KLS8vICAgfQotLy8KLS8vIFRoZSB0cmFjZSBzeXN0ZW0g
d2lsbCBhdXRvbWF0aWNhbGx5IGFkZCB0byB0aGlzIGluZm9ybWF0aW9uIHRoZQotLy8gY3VycmVu
dCBwcm9jZXNzIGlkLCB0aHJlYWQgaWQsIGFuZCBhIHRpbWVzdGFtcCBpbiBtaWNyb3NlY29uZHMu
Ci0vLwotLy8gVG8gdHJhY2UgYW4gYXN5bmNocm9ub3VzIHByb2NlZHVyZSBzdWNoIGFzIGFuIElQ
QyBzZW5kL3JlY2VpdmUsIHVzZSBTVEFSVCBhbmQKLS8vIEZJTklTSDoKLS8vICAgW3NpbmdsZSB0
aHJlYWRlZCBzZW5kZXIgY29kZV0KLS8vICAgICBzdGF0aWMgaW50IHNlbmRfY291bnQgPSAwOwot
Ly8gICAgICsrc2VuZF9jb3VudDsKLS8vICAgICBUUkFDRV9FVkVOVF9TVEFSVDAoImlwYyIsICJt
ZXNzYWdlIiwgc2VuZF9jb3VudCk7Ci0vLyAgICAgU2VuZChuZXcgTXlNZXNzYWdlKHNlbmRfY291
bnQpKTsKLS8vICAgW3JlY2VpdmUgY29kZV0KLS8vICAgICB2b2lkIE9uTXlNZXNzYWdlKHNlbmRf
Y291bnQpIHsKLS8vICAgICAgIFRSQUNFX0VWRU5UX0ZJTklTSDAoImlwYyIsICJtZXNzYWdlIiwg
c2VuZF9jb3VudCk7Ci0vLyAgICAgfQotLy8gVGhlIHRoaXJkIHBhcmFtZXRlciBpcyBhIHVuaXF1
ZSBJRCB0byBtYXRjaCBTVEFSVC9GSU5JU0ggcGFpcnMuCi0vLyBTVEFSVCBhbmQgRklOSVNIIGNh
biBvY2N1ciBvbiBhbnkgdGhyZWFkIG9mIGFueSB0cmFjZWQgcHJvY2Vzcy4gUG9pbnRlcnMgY2Fu
Ci0vLyBiZSB1c2VkIGZvciB0aGUgSUQgcGFyYW1ldGVyLCBhbmQgdGhleSB3aWxsIGJlIG1hbmds
ZWQgaW50ZXJuYWxseSBzbyB0aGF0Ci0vLyB0aGUgc2FtZSBwb2ludGVyIG9uIHR3byBkaWZmZXJl
bnQgcHJvY2Vzc2VzIHdpbGwgbm90IG1hdGNoLiBGb3IgZXhhbXBsZToKLS8vICAgY2xhc3MgTXlU
cmFjZWRDbGFzcyB7Ci0vLyAgICBwdWJsaWM6Ci0vLyAgICAgTXlUcmFjZWRDbGFzcygpIHsKLS8v
ICAgICAgIFRSQUNFX0VWRU5UX1NUQVJUMCgiY2F0ZWdvcnkiLCAiTXlUcmFjZWRDbGFzcyIsIHRo
aXMpOwotLy8gICAgIH0KLS8vICAgICB+TXlUcmFjZWRDbGFzcygpIHsKLS8vICAgICAgIFRSQUNF
X0VWRU5UX0ZJTklTSDAoImNhdGVnb3J5IiwgIk15VHJhY2VkQ2xhc3MiLCB0aGlzKTsKLS8vICAg
ICB9Ci0vLyAgIH0KLS8vCi0vLyBUcmFjZSBldmVudCBhbHNvIHN1cHBvcnRzIGNvdW50ZXJzLCB3
aGljaCBpcyBhIHdheSB0byB0cmFjayBhIHF1YW50aXR5Ci0vLyBhcyBpdCB2YXJpZXMgb3ZlciB0
aW1lLiBDb3VudGVycyBhcmUgY3JlYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgbWFjcm86Ci0vLyAg
IFRSQUNFX0NPVU5URVIxKCJNWV9TVUJTWVNURU0iLCAibXlDb3VudGVyIiwgZ19teUNvdW50ZXJW
YWx1ZSk7Ci0vLwotLy8gQ291bnRlcnMgYXJlIHByb2Nlc3Mtc3BlY2lmaWMuIFRoZSBtYWNybyBp
dHNlbGYgY2FuIGJlIGlzc3VlZCBmcm9tIGFueQotLy8gdGhyZWFkLCBob3dldmVyLgotLy8KLS8v
IFNvbWV0aW1lcywgeW91IHdhbnQgdG8gdHJhY2sgdHdvIGNvdW50ZXJzIGF0IG9uY2UuIFlvdSBj
YW4gZG8gdGhpcyB3aXRoIHR3bwotLy8gY291bnRlciBtYWNyb3M6Ci0vLyAgIFRSQUNFX0NPVU5U
RVIxKCJNWV9TVUJTWVNURU0iLCAibXlDb3VudGVyMCIsIGdfbXlDb3VudGVyVmFsdWVbMF0pOwot
Ly8gICBUUkFDRV9DT1VOVEVSMSgiTVlfU1VCU1lTVEVNIiwgIm15Q291bnRlcjEiLCBnX215Q291
bnRlclZhbHVlWzFdKTsKLS8vIE9yIHlvdSBjYW4gZG8gaXQgd2l0aCBhIGNvbWJpbmVkIG1hY3Jv
OgotLy8gICBUUkFDRV9DT1VOVEVSMigiTVlfU1VCU1lTVEVNIiwgIm15Q291bnRlciIsCi0vLyAg
ICAgICAiYnl0ZXNQaW5uZWQiLCBnX215Q291bnRlclZhbHVlWzBdLAotLy8gICAgICAgImJ5dGVz
QWxsb2NhdGVkIiwgZ19teUNvdW50ZXJWYWx1ZVsxXSk7Ci0vLyBUaGlzIGluZGljYXRlcyB0byB0
aGUgdHJhY2luZyBVSSB0aGF0IHRoZXNlIGNvdW50ZXJzIHNob3VsZCBiZSBkaXNwbGF5ZWQKLS8v
IGluIGEgc2luZ2xlIGdyYXBoLCBhcyBhIHN1bW1lZCBhcmVhIGNoYXJ0LgotLy8KLS8vIFNpbmNl
IGNvdW50ZXJzIGFyZSBpbiBhIGdsb2JhbCBuYW1lc3BhY2UsIHlvdSBtYXkgd2FudCB0byBkaXNl
bWJpZ3VhdGUgd2l0aCBhCi0vLyB1bmlxdWUgSUQsIGJ5IHVzaW5nIHRoZSBUUkFDRV9DT1VOVEVS
X0lEKiB2YXJpYXRpb25zLgotLy8KLS8vIEJ5IGRlZmF1bHQsIHRyYWNlIGNvbGxlY3Rpb24gaXMg
Y29tcGlsZWQgaW4sIGJ1dCB0dXJuZWQgb2ZmIGF0IHJ1bnRpbWUuCi0vLyBDb2xsZWN0aW5nIHRy
YWNlIGRhdGEgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBlbWJlZGRpbmcKLS8vIGFwcGxp
Y2F0aW9uLiBJbiBDaHJvbWUncyBjYXNlLCBuYXZpZ2F0aW5nIHRvIGFib3V0OnRyYWNpbmcgd2ls
bCB0dXJuIG9uCi0vLyB0cmFjaW5nIGFuZCBkaXNwbGF5IGRhdGEgY29sbGVjdGVkIGFjcm9zcyBh
bGwgYWN0aXZlIHByb2Nlc3Nlcy4KLS8vCi0vLwotLy8gTWVtb3J5IHNjb3Bpbmcgbm90ZToKLS8v
IFRyYWNpbmcgY29waWVzIHRoZSBwb2ludGVycywgbm90IHRoZSBzdHJpbmcgY29udGVudCwgb2Yg
dGhlIHN0cmluZ3MgcGFzc2VkCi0vLyBpbiBmb3IgY2F0ZWdvcnksIG5hbWUsIGFuZCBhcmdfbmFt
ZXMuIFRodXMsIHRoZSBmb2xsb3dpbmcgY29kZSB3aWxsCi0vLyBjYXVzZSBwcm9ibGVtczoKLS8v
ICAgICBjaGFyKiBzdHIgPSBzdHJkdXAoImltcHBydGFudE5hbWUiKTsKLS8vICAgICBUUkFDRV9F
VkVOVF9JTlNUQU5UMCgiU1VCU1lTVEVNIiwgc3RyKTsgIC8vIEJBRCEKLS8vICAgICBmcmVlKHN0
cik7ICAgICAgICAgICAgICAgICAgIC8vIFRyYWNlIHN5c3RlbSBub3cgaGFzIGRhbmdsaW5nIHBv
aW50ZXIKLS8vCi0vLyBUbyBhdm9pZCB0aGlzIGlzc3VlIHdpdGggdGhlIHxuYW1lfCBhbmQgfGFy
Z19uYW1lfCBwYXJhbWV0ZXJzLCB1c2UgdGhlCi0vLyBUUkFDRV9FVkVOVF9DT1BZX1hYWCBvdmVy
bG9hZHMgb2YgdGhlIG1hY3JvcyBhdCBhZGRpdGlvbmFsIHJ1bnRpbWUgb3ZlcmhlYWQuCi0vLyBO
b3RlczogVGhlIGNhdGVnb3J5IG11c3QgYWx3YXlzIGJlIGluIGEgbG9uZy1saXZlZCBjaGFyKiAo
aS5lLiBzdGF0aWMgY29uc3QpLgotLy8gICAgICAgIFRoZSB8YXJnX3ZhbHVlc3wsIHdoZW4gdXNl
ZCwgYXJlIGFsd2F5cyBkZWVwIGNvcGllZCB3aXRoIHRoZSBfQ09QWQotLy8gICAgICAgIG1hY3Jv
cy4KLS8vCi0vLyBXaGVuIGFyZSBzdHJpbmcgYXJndW1lbnQgdmFsdWVzIGNvcGllZDoKLS8vIGNv
bnN0IGNoYXIqIGFyZ192YWx1ZXMgYXJlIG9ubHkgcmVmZXJlbmNlZCBieSBkZWZhdWx0OgotLy8g
ICAgIFRSQUNFX0VWRU5UMSgiY2F0ZWdvcnkiLCAibmFtZSIsCi0vLyAgICAgICAgICAgICAgICAg
ICJhcmcxIiwgImxpdGVyYWwgc3RyaW5nIGlzIG9ubHkgcmVmZXJlbmNlZCIpOwotLy8gVXNlIFRS
QUNFX1NUUl9DT1BZIHRvIGZvcmNlIGNvcHlpbmcgb2YgYSBjb25zdCBjaGFyKjoKLS8vICAgICBU
UkFDRV9FVkVOVDEoImNhdGVnb3J5IiwgIm5hbWUiLAotLy8gICAgICAgICAgICAgICAgICAiYXJn
MSIsIFRSQUNFX1NUUl9DT1BZKCJzdHJpbmcgd2lsbCBiZSBjb3BpZWQiKSk7Ci0vLyBzdGQ6OnN0
cmluZyBhcmdfdmFsdWVzIGFyZSBhbHdheXMgY29waWVkOgotLy8gICAgIFRSQUNFX0VWRU5UMSgi
Y2F0ZWdvcnkiLCAibmFtZSIsCi0vLyAgICAgICAgICAgICAgICAgICJhcmcxIiwgc3RkOjpzdHJp
bmcoInN0cmluZyB3aWxsIGJlIGNvcGllZCIpKTsKLS8vCi0vLwotLy8gVGhyZWFkIFNhZmV0eToK
LS8vIEEgdGhyZWFkIHNhZmUgc2luZ2xldG9uIGFuZCBtdXRleCBhcmUgdXNlZCBmb3IgdGhyZWFk
IHNhZmV0eS4gQ2F0ZWdvcnkKLS8vIGVuYWJsZWQgZmxhZ3MgYXJlIHVzZWQgdG8gbGltaXQgdGhl
IHBlcmZvcm1hbmNlIGltcGFjdCB3aGVuIHRoZSBzeXN0ZW0KLS8vIGlzIG5vdCBlbmFibGVkLgot
Ly8KLS8vIFRSQUNFX0VWRU5UIG1hY3JvcyBmaXJzdCBjYWNoZSBhIHBvaW50ZXIgdG8gYSBjYXRl
Z29yeS4gVGhlIGNhdGVnb3JpZXMgYXJlCi0vLyBzdGF0aWNhbGx5IGFsbG9jYXRlZCBhbmQgc2Fm
ZSBhdCBhbGwgdGltZXMsIGV2ZW4gYWZ0ZXIgZXhpdC4gRmV0Y2hpbmcgYQotLy8gY2F0ZWdvcnkg
aXMgcHJvdGVjdGVkIGJ5IHRoZSBUcmFjZUxvZzo6bG9ja18uIE11bHRpcGxlIHRocmVhZHMgaW5p
dGlhbGl6aW5nCi0vLyB0aGUgc3RhdGljIHZhcmlhYmxlIGlzIHNhZmUsIGFzIHRoZXkgd2lsbCBi
ZSBzZXJpYWxpemVkIGJ5IHRoZSBsb2NrIGFuZAotLy8gbXVsdGlwbGUgY2FsbHMgd2lsbCByZXR1
cm4gdGhlIHNhbWUgcG9pbnRlciB0byB0aGUgY2F0ZWdvcnkuCi0vLwotLy8gVGhlbiB0aGUgY2F0
ZWdvcnlfZW5hYmxlZCBmbGFnIGlzIGNoZWNrZWQuIFRoaXMgaXMgYSB1bnNpZ25lZCBjaGFyLCBh
bmQKLS8vIG5vdCBpbnRlbmRlZCB0byBiZSBtdWx0aXRocmVhZCBzYWZlLiBJdCBvcHRpbWl6ZXMg
YWNjZXNzIHRvIGFkZFRyYWNlRXZlbnQKLS8vIHdoaWNoIGlzIHRocmVhZHNhZmUgaW50ZXJuYWxs
eSB2aWEgVHJhY2VMb2c6OmxvY2tfLiBUaGUgZW5hYmxlZCBmbGFnIG1heQotLy8gY2F1c2Ugc29t
ZSB0aHJlYWRzIHRvIGluY29ycmVjdGx5IGNhbGwgb3Igc2tpcCBjYWxsaW5nIGFkZFRyYWNlRXZl
bnQgbmVhcgotLy8gdGhlIHRpbWUgb2YgdGhlIHN5c3RlbSBiZWluZyBlbmFibGVkIG9yIGRpc2Fi
bGVkLiBUaGlzIGlzIGFjY2VwdGFibGUgYXMKLS8vIHdlIHRvbGVyYXRlIHNvbWUgZGF0YSBsb3Nz
IHdoaWxlIHRoZSBzeXN0ZW0gaXMgYmVpbmcgZW5hYmxlZC9kaXNhYmxlZCBhbmQKLS8vIGJlY2F1
c2UgYWRkVHJhY2VFdmVudCBpcyB0aHJlYWRzYWZlIGludGVybmFsbHkgYW5kIGNoZWNrcyB0aGUg
ZW5hYmxlZCBzdGF0ZQotLy8gYWdhaW4gdW5kZXIgbG9jay4KLS8vCi0vLyBXaXRob3V0IHRoZSB1
c2Ugb2YgdGhlc2Ugc3RhdGljIGNhdGVnb3J5IHBvaW50ZXJzIGFuZCBlbmFibGVkIGZsYWdzIGFs
bAotLy8gdHJhY2UgcG9pbnRzIHdvdWxkIGNhcnJ5IGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2Ug
Y29zdCBvZiBhcXVpcmluZyBhIGxvY2sKLS8vIGFuZCByZXNvbHZpbmcgdGhlIGNhdGVnb3J5Lgot
CiAjaWZuZGVmIFRyYWNlRXZlbnRfaAogI2RlZmluZSBUcmFjZUV2ZW50X2gKIAotI2luY2x1ZGUg
IkR5bmFtaWNBbm5vdGF0aW9ucy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3VwcG9ydC5oIgotCi0j
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi0vLyBJc3N1ZXMgYmVnaW4gdHJhY2UgZXZl
bnQgaGVyZSBhbmQgZW5kIHRyYWNlIGV2ZW50IHdoZW4gdGhlIGN1cnJlbnQgc2NvcGUgZW5kcy4K
LSNkZWZpbmUgVFJBQ0VfRVZFTlQobmFtZSwgaWQsIGV4dHJhKSBUUkFDRV9FVkVOVDIoIndlYmtp
dCIsIG5hbWUsICJpZCIsIGlkLCAiZXh0cmEiLCBleHRyYSkKLQotLy8gQnkgZGVmYXVsdCwgY29u
c3QgY2hhciogYXJndW1lbnQgdmFsdWVzIGFyZSBhc3N1bWVkIHRvIGhhdmUgbG9uZy1saXZlZCBz
Y29wZQotLy8gYW5kIHdpbGwgbm90IGJlIGNvcGllZC4gVXNlIHRoaXMgbWFjcm8gdG8gZm9yY2Ug
YSBjb25zdCBjaGFyKiB0byBiZSBjb3BpZWQuCi0jZGVmaW5lIFRSQUNFX1NUUl9DT1BZKHN0cikg
XAotICAgIFdlYkNvcmU6OlRyYWNlRXZlbnQ6OlRyYWNlU3RyaW5nV2l0aENvcHkoc3RyKQotCi0v
LyBSZWNvcmRzIGEgcGFpciBvZiBiZWdpbiBhbmQgZW5kIGV2ZW50cyBjYWxsZWQgIm5hbWUiIGZv
ciB0aGUgY3VycmVudAotLy8gc2NvcGUsIHdpdGggMCwgMSBvciAyIGFzc29jaWF0ZWQgYXJndW1l
bnRzLiBJZiB0aGUgY2F0ZWdvcnkgaXMgbm90Ci0vLyBlbmFibGVkLCB0aGVuIHRoaXMgZG9lcyBu
b3RoaW5nLgotLy8gLSBjYXRlZ29yeSBhbmQgbmFtZSBzdHJpbmdzIG11c3QgaGF2ZSBhcHBsaWNh
dGlvbiBsaWZldGltZSAoc3RhdGljcyBvcgotLy8gICBsaXRlcmFscykuIFRoZXkgbWF5IG5vdCBp
bmNsdWRlICIgY2hhcnMuCi0jZGVmaW5lIFRSQUNFX0VWRU5UMChjYXRlZ29yeSwgbmFtZSkgXAot
ICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERF9TQ09QRUQoY2F0ZWdvcnksIG5hbWUpCi0jZGVm
aW5lIFRSQUNFX0VWRU5UMShjYXRlZ29yeSwgbmFtZSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCkgXAot
ICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERF9TQ09QRUQoY2F0ZWdvcnksIG5hbWUsIGFyZzFf
bmFtZSwgYXJnMV92YWwpCi0jZGVmaW5lIFRSQUNFX0VWRU5UMihjYXRlZ29yeSwgbmFtZSwgYXJn
MV9uYW1lLCBhcmcxX3ZhbCwgYXJnMl9uYW1lLCBhcmcyX3ZhbCkgXAotICAgIElOVEVSTkFMX1RS
QUNFX0VWRU5UX0FERF9TQ09QRUQoY2F0ZWdvcnksIG5hbWUsIGFyZzFfbmFtZSwgYXJnMV92YWws
IFwKLSAgICAgICAgYXJnMl9uYW1lLCBhcmcyX3ZhbCkKLQotLy8gUmVjb3JkcyBhIHNpbmdsZSBl
dmVudCBjYWxsZWQgIm5hbWUiIGltbWVkaWF0ZWx5LCB3aXRoIDAsIDEgb3IgMgotLy8gYXNzb2Np
YXRlZCBhcmd1bWVudHMuIElmIHRoZSBjYXRlZ29yeSBpcyBub3QgZW5hYmxlZCwgdGhlbiB0aGlz
Ci0vLyBkb2VzIG5vdGhpbmcuCi0vLyAtIGNhdGVnb3J5IGFuZCBuYW1lIHN0cmluZ3MgbXVzdCBo
YXZlIGFwcGxpY2F0aW9uIGxpZmV0aW1lIChzdGF0aWNzIG9yCi0vLyAgIGxpdGVyYWxzKS4gVGhl
eSBtYXkgbm90IGluY2x1ZGUgIiBjaGFycy4KLSNkZWZpbmUgVFJBQ0VfRVZFTlRfSU5TVEFOVDAo
Y2F0ZWdvcnksIG5hbWUpIFwKLSAgICBJTlRFUk5BTF9UUkFDRV9FVkVOVF9BREQoVFJBQ0VfRVZF
TlRfUEhBU0VfSU5TVEFOVCwgXAotICAgICAgICBjYXRlZ29yeSwgbmFtZSwgVFJBQ0VfRVZFTlRf
RkxBR19OT05FKQotI2RlZmluZSBUUkFDRV9FVkVOVF9JTlNUQU5UMShjYXRlZ29yeSwgbmFtZSwg
YXJnMV9uYW1lLCBhcmcxX3ZhbCkgXAotICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERChUUkFD
RV9FVkVOVF9QSEFTRV9JTlNUQU5ULCBcCi0gICAgICAgIGNhdGVnb3J5LCBuYW1lLCBUUkFDRV9F
VkVOVF9GTEFHX05PTkUsIGFyZzFfbmFtZSwgYXJnMV92YWwpCi0jZGVmaW5lIFRSQUNFX0VWRU5U
X0lOU1RBTlQyKGNhdGVnb3J5LCBuYW1lLCBhcmcxX25hbWUsIGFyZzFfdmFsLCBcCi0gICAgICAg
IGFyZzJfbmFtZSwgYXJnMl92YWwpIFwKLSAgICBJTlRFUk5BTF9UUkFDRV9FVkVOVF9BREQoVFJB
Q0VfRVZFTlRfUEhBU0VfSU5TVEFOVCwgXAotICAgICAgICBjYXRlZ29yeSwgbmFtZSwgVFJBQ0Vf
RVZFTlRfRkxBR19OT05FLCBhcmcxX25hbWUsIGFyZzFfdmFsLCBcCi0gICAgICAgIGFyZzJfbmFt
ZSwgYXJnMl92YWwpCi0jZGVmaW5lIFRSQUNFX0VWRU5UX0NPUFlfSU5TVEFOVDAoY2F0ZWdvcnks
IG5hbWUpIFwKLSAgICBJTlRFUk5BTF9UUkFDRV9FVkVOVF9BREQoVFJBQ0VfRVZFTlRfUEhBU0Vf
SU5TVEFOVCwgXAotICAgICAgICBjYXRlZ29yeSwgbmFtZSwgVFJBQ0VfRVZFTlRfRkxBR19DT1BZ
KQotI2RlZmluZSBUUkFDRV9FVkVOVF9DT1BZX0lOU1RBTlQxKGNhdGVnb3J5LCBuYW1lLCBhcmcx
X25hbWUsIGFyZzFfdmFsKSBcCi0gICAgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREKFRSQUNFX0VW
RU5UX1BIQVNFX0lOU1RBTlQsIFwKLSAgICAgICAgY2F0ZWdvcnksIG5hbWUsIFRSQUNFX0VWRU5U
X0ZMQUdfQ09QWSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCkKLSNkZWZpbmUgVFJBQ0VfRVZFTlRfQ09Q
WV9JTlNUQU5UMihjYXRlZ29yeSwgbmFtZSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCwgXAotICAgICAg
ICBhcmcyX25hbWUsIGFyZzJfdmFsKSBcCi0gICAgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREKFRS
QUNFX0VWRU5UX1BIQVNFX0lOU1RBTlQsIFwKLSAgICAgICAgY2F0ZWdvcnksIG5hbWUsIFRSQUNF
X0VWRU5UX0ZMQUdfQ09QWSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCwgXAotICAgICAgICBhcmcyX25h
bWUsIGFyZzJfdmFsKQotCi0vLyBSZWNvcmRzIGEgc2luZ2xlIEJFR0lOIGV2ZW50IGNhbGxlZCAi
bmFtZSIgaW1tZWRpYXRlbHksIHdpdGggMCwgMSBvciAyCi0vLyBhc3NvY2lhdGVkIGFyZ3VtZW50
cy4gSWYgdGhlIGNhdGVnb3J5IGlzIG5vdCBlbmFibGVkLCB0aGVuIHRoaXMKLS8vIGRvZXMgbm90
aGluZy4KLS8vIC0gY2F0ZWdvcnkgYW5kIG5hbWUgc3RyaW5ncyBtdXN0IGhhdmUgYXBwbGljYXRp
b24gbGlmZXRpbWUgKHN0YXRpY3Mgb3IKLS8vICAgbGl0ZXJhbHMpLiBUaGV5IG1heSBub3QgaW5j
bHVkZSAiIGNoYXJzLgotI2RlZmluZSBUUkFDRV9FVkVOVF9CRUdJTjAoY2F0ZWdvcnksIG5hbWUp
IFwKLSAgICBJTlRFUk5BTF9UUkFDRV9FVkVOVF9BREQoVFJBQ0VfRVZFTlRfUEhBU0VfQkVHSU4s
IFwKLSAgICAgICAgY2F0ZWdvcnksIG5hbWUsIFRSQUNFX0VWRU5UX0ZMQUdfTk9ORSkKLSNkZWZp
bmUgVFJBQ0VfRVZFTlRfQkVHSU4xKGNhdGVnb3J5LCBuYW1lLCBhcmcxX25hbWUsIGFyZzFfdmFs
KSBcCi0gICAgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREKFRSQUNFX0VWRU5UX1BIQVNFX0JFR0lO
LCBcCi0gICAgICAgIGNhdGVnb3J5LCBuYW1lLCBUUkFDRV9FVkVOVF9GTEFHX05PTkUsIGFyZzFf
bmFtZSwgYXJnMV92YWwpCi0jZGVmaW5lIFRSQUNFX0VWRU5UX0JFR0lOMihjYXRlZ29yeSwgbmFt
ZSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCwgXAotICAgICAgICBhcmcyX25hbWUsIGFyZzJfdmFsKSBc
Ci0gICAgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREKFRSQUNFX0VWRU5UX1BIQVNFX0JFR0lOLCBc
Ci0gICAgICAgIGNhdGVnb3J5LCBuYW1lLCBUUkFDRV9FVkVOVF9GTEFHX05PTkUsIGFyZzFfbmFt
ZSwgYXJnMV92YWwsIFwKLSAgICAgICAgYXJnMl9uYW1lLCBhcmcyX3ZhbCkKLSNkZWZpbmUgVFJB
Q0VfRVZFTlRfQ09QWV9CRUdJTjAoY2F0ZWdvcnksIG5hbWUpIFwKLSAgICBJTlRFUk5BTF9UUkFD
RV9FVkVOVF9BREQoVFJBQ0VfRVZFTlRfUEhBU0VfQkVHSU4sIFwKLSAgICAgICAgY2F0ZWdvcnks
IG5hbWUsIFRSQUNFX0VWRU5UX0ZMQUdfQ09QWSkKLSNkZWZpbmUgVFJBQ0VfRVZFTlRfQ09QWV9C
RUdJTjEoY2F0ZWdvcnksIG5hbWUsIGFyZzFfbmFtZSwgYXJnMV92YWwpIFwKLSAgICBJTlRFUk5B
TF9UUkFDRV9FVkVOVF9BREQoVFJBQ0VfRVZFTlRfUEhBU0VfQkVHSU4sIFwKLSAgICAgICAgY2F0
ZWdvcnksIG5hbWUsIFRSQUNFX0VWRU5UX0ZMQUdfQ09QWSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCkK
LSNkZWZpbmUgVFJBQ0VfRVZFTlRfQ09QWV9CRUdJTjIoY2F0ZWdvcnksIG5hbWUsIGFyZzFfbmFt
ZSwgYXJnMV92YWwsIFwKLSAgICAgICAgYXJnMl9uYW1lLCBhcmcyX3ZhbCkgXAotICAgIElOVEVS
TkFMX1RSQUNFX0VWRU5UX0FERChUUkFDRV9FVkVOVF9QSEFTRV9CRUdJTiwgXAotICAgICAgICBj
YXRlZ29yeSwgbmFtZSwgVFJBQ0VfRVZFTlRfRkxBR19DT1BZLCBhcmcxX25hbWUsIGFyZzFfdmFs
LCBcCi0gICAgICAgIGFyZzJfbmFtZSwgYXJnMl92YWwpCi0KLS8vIFJlY29yZHMgYSBzaW5nbGUg
RU5EIGV2ZW50IGZvciAibmFtZSIgaW1tZWRpYXRlbHkuIElmIHRoZSBjYXRlZ29yeQotLy8gaXMg
bm90IGVuYWJsZWQsIHRoZW4gdGhpcyBkb2VzIG5vdGhpbmcuCi0vLyAtIGNhdGVnb3J5IGFuZCBu
YW1lIHN0cmluZ3MgbXVzdCBoYXZlIGFwcGxpY2F0aW9uIGxpZmV0aW1lIChzdGF0aWNzIG9yCi0v
LyAgIGxpdGVyYWxzKS4gVGhleSBtYXkgbm90IGluY2x1ZGUgIiBjaGFycy4KLSNkZWZpbmUgVFJB
Q0VfRVZFTlRfRU5EMChjYXRlZ29yeSwgbmFtZSkgXAotICAgIElOVEVSTkFMX1RSQUNFX0VWRU5U
X0FERChUUkFDRV9FVkVOVF9QSEFTRV9FTkQsIFwKLSAgICAgICAgY2F0ZWdvcnksIG5hbWUsIFRS
QUNFX0VWRU5UX0ZMQUdfTk9ORSkKLSNkZWZpbmUgVFJBQ0VfRVZFTlRfRU5EMShjYXRlZ29yeSwg
bmFtZSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCkgXAotICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FE
RChUUkFDRV9FVkVOVF9QSEFTRV9FTkQsIFwKLSAgICAgICAgY2F0ZWdvcnksIG5hbWUsIFRSQUNF
X0VWRU5UX0ZMQUdfTk9ORSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCkKLSNkZWZpbmUgVFJBQ0VfRVZF
TlRfRU5EMihjYXRlZ29yeSwgbmFtZSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCwgXAotICAgICAgICBh
cmcyX25hbWUsIGFyZzJfdmFsKSBcCi0gICAgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREKFRSQUNF
X0VWRU5UX1BIQVNFX0VORCwgXAotICAgICAgICBjYXRlZ29yeSwgbmFtZSwgVFJBQ0VfRVZFTlRf
RkxBR19OT05FLCBhcmcxX25hbWUsIGFyZzFfdmFsLCBcCi0gICAgICAgIGFyZzJfbmFtZSwgYXJn
Ml92YWwpCi0jZGVmaW5lIFRSQUNFX0VWRU5UX0NPUFlfRU5EMChjYXRlZ29yeSwgbmFtZSkgXAot
ICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERChUUkFDRV9FVkVOVF9QSEFTRV9FTkQsIFwKLSAg
ICAgICAgY2F0ZWdvcnksIG5hbWUsIFRSQUNFX0VWRU5UX0ZMQUdfQ09QWSkKLSNkZWZpbmUgVFJB
Q0VfRVZFTlRfQ09QWV9FTkQxKGNhdGVnb3J5LCBuYW1lLCBhcmcxX25hbWUsIGFyZzFfdmFsKSBc
Ci0gICAgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREKFRSQUNFX0VWRU5UX1BIQVNFX0VORCwgXAot
ICAgICAgICBjYXRlZ29yeSwgbmFtZSwgVFJBQ0VfRVZFTlRfRkxBR19DT1BZLCBhcmcxX25hbWUs
IGFyZzFfdmFsKQotI2RlZmluZSBUUkFDRV9FVkVOVF9DT1BZX0VORDIoY2F0ZWdvcnksIG5hbWUs
IGFyZzFfbmFtZSwgYXJnMV92YWwsIFwKLSAgICAgICAgYXJnMl9uYW1lLCBhcmcyX3ZhbCkgXAot
ICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERChUUkFDRV9FVkVOVF9QSEFTRV9FTkQsIFwKLSAg
ICAgICAgY2F0ZWdvcnksIG5hbWUsIFRSQUNFX0VWRU5UX0ZMQUdfQ09QWSwgYXJnMV9uYW1lLCBh
cmcxX3ZhbCwgXAotICAgICAgICBhcmcyX25hbWUsIGFyZzJfdmFsKQotCi0vLyBUaW1lIHRocmVz
aG9sZCBldmVudDoKLS8vIE9ubHkgcmVjb3JkIHRoZSBldmVudCBpZiB0aGUgZHVyYXRpb24gaXMg
Z3JlYXRlciB0aGFuIHRoZSBzcGVjaWZpZWQKLS8vIHRocmVzaG9sZF91cyAodGltZSBpbiBtaWNy
b3NlY29uZHMpLgotLy8gUmVjb3JkcyBhIHBhaXIgb2YgYmVnaW4gYW5kIGVuZCBldmVudHMgY2Fs
bGVkICJuYW1lIiBmb3IgdGhlIGN1cnJlbnQKLS8vIHNjb3BlLCB3aXRoIDAsIDEgb3IgMiBhc3Nv
Y2lhdGVkIGFyZ3VtZW50cy4gSWYgdGhlIGNhdGVnb3J5IGlzIG5vdAotLy8gZW5hYmxlZCwgdGhl
biB0aGlzIGRvZXMgbm90aGluZy4KLS8vIC0gY2F0ZWdvcnkgYW5kIG5hbWUgc3RyaW5ncyBtdXN0
IGhhdmUgYXBwbGljYXRpb24gbGlmZXRpbWUgKHN0YXRpY3Mgb3IKLS8vICAgbGl0ZXJhbHMpLiBU
aGV5IG1heSBub3QgaW5jbHVkZSAiIGNoYXJzLgotI2RlZmluZSBUUkFDRV9FVkVOVF9JRl9MT05H
RVJfVEhBTjAodGhyZXNob2xkX3VzLCBjYXRlZ29yeSwgbmFtZSkgXAotICAgIElOVEVSTkFMX1RS
QUNFX0VWRU5UX0FERF9TQ09QRURfSUZfTE9OR0VSX1RIQU4odGhyZXNob2xkX3VzLCBjYXRlZ29y
eSwgbmFtZSkKLSNkZWZpbmUgVFJBQ0VfRVZFTlRfSUZfTE9OR0VSX1RIQU4xKCBcCi0gICAgdGhy
ZXNob2xkX3VzLCBjYXRlZ29yeSwgbmFtZSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCkgXAotICAgIElO
VEVSTkFMX1RSQUNFX0VWRU5UX0FERF9TQ09QRURfSUZfTE9OR0VSX1RIQU4oIFwKLSAgICAgICAg
dGhyZXNob2xkX3VzLCBjYXRlZ29yeSwgbmFtZSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCkKLSNkZWZp
bmUgVFJBQ0VfRVZFTlRfSUZfTE9OR0VSX1RIQU4yKCBcCi0gICAgdGhyZXNob2xkX3VzLCBjYXRl
Z29yeSwgbmFtZSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCwgYXJnMl9uYW1lLCBhcmcyX3ZhbCkgXAot
ICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERF9TQ09QRURfSUZfTE9OR0VSX1RIQU4oIFwKLSAg
ICAgICAgdGhyZXNob2xkX3VzLCBjYXRlZ29yeSwgbmFtZSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCwg
YXJnMl9uYW1lLCBhcmcyX3ZhbCkKLQotLy8gUmVjb3JkcyB0aGUgdmFsdWUgb2YgYSBjb3VudGVy
IGNhbGxlZCAibmFtZSIgaW1tZWRpYXRlbHkuIFZhbHVlCi0vLyBtdXN0IGJlIHJlcHJlc2VudGFi
bGUgYXMgYSAzMiBiaXQgaW50ZWdlci4KLS8vIC0gY2F0ZWdvcnkgYW5kIG5hbWUgc3RyaW5ncyBt
dXN0IGhhdmUgYXBwbGljYXRpb24gbGlmZXRpbWUgKHN0YXRpY3Mgb3IKLS8vICAgbGl0ZXJhbHMp
LiBUaGV5IG1heSBub3QgaW5jbHVkZSAiIGNoYXJzLgotI2RlZmluZSBUUkFDRV9DT1VOVEVSMShj
YXRlZ29yeSwgbmFtZSwgdmFsdWUpIFwKLSAgICBJTlRFUk5BTF9UUkFDRV9FVkVOVF9BREQoVFJB
Q0VfRVZFTlRfUEhBU0VfQ09VTlRFUiwgXAotICAgICAgICBjYXRlZ29yeSwgbmFtZSwgVFJBQ0Vf
RVZFTlRfRkxBR19OT05FLCBcCi0gICAgICAgICJ2YWx1ZSIsIHN0YXRpY19jYXN0PGludD4odmFs
dWUpKQotI2RlZmluZSBUUkFDRV9DT1BZX0NPVU5URVIxKGNhdGVnb3J5LCBuYW1lLCB2YWx1ZSkg
XAotICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERChUUkFDRV9FVkVOVF9QSEFTRV9DT1VOVEVS
LCBcCi0gICAgICAgIGNhdGVnb3J5LCBuYW1lLCBUUkFDRV9FVkVOVF9GTEFHX0NPUFksIFwKLSAg
ICAgICAgInZhbHVlIiwgc3RhdGljX2Nhc3Q8aW50Pih2YWx1ZSkpCi0KLS8vIFJlY29yZHMgdGhl
IHZhbHVlcyBvZiBhIG11bHRpLXBhcnRlZCBjb3VudGVyIGNhbGxlZCAibmFtZSIgaW1tZWRpYXRl
bHkuCi0vLyBUaGUgVUkgd2lsbCB0cmVhdCB2YWx1ZTEgYW5kIHZhbHVlMiBhcyBwYXJ0cyBvZiBh
IHdob2xlLCBkaXNwbGF5aW5nIHRoZWlyCi0vLyB2YWx1ZXMgYXMgYSBzdGFja2VkLWJhciBjaGFy
dC4KLS8vIC0gY2F0ZWdvcnkgYW5kIG5hbWUgc3RyaW5ncyBtdXN0IGhhdmUgYXBwbGljYXRpb24g
bGlmZXRpbWUgKHN0YXRpY3Mgb3IKLS8vICAgbGl0ZXJhbHMpLiBUaGV5IG1heSBub3QgaW5jbHVk
ZSAiIGNoYXJzLgotI2RlZmluZSBUUkFDRV9DT1VOVEVSMihjYXRlZ29yeSwgbmFtZSwgdmFsdWUx
X25hbWUsIHZhbHVlMV92YWwsIFwKLSAgICAgICAgdmFsdWUyX25hbWUsIHZhbHVlMl92YWwpIFwK
LSAgICBJTlRFUk5BTF9UUkFDRV9FVkVOVF9BREQoVFJBQ0VfRVZFTlRfUEhBU0VfQ09VTlRFUiwg
XAotICAgICAgICBjYXRlZ29yeSwgbmFtZSwgVFJBQ0VfRVZFTlRfRkxBR19OT05FLCBcCi0gICAg
ICAgIHZhbHVlMV9uYW1lLCBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVlMV92YWwpLCBcCi0gICAgICAg
IHZhbHVlMl9uYW1lLCBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVlMl92YWwpKQotI2RlZmluZSBUUkFD
RV9DT1BZX0NPVU5URVIyKGNhdGVnb3J5LCBuYW1lLCB2YWx1ZTFfbmFtZSwgdmFsdWUxX3ZhbCwg
XAotICAgICAgICB2YWx1ZTJfbmFtZSwgdmFsdWUyX3ZhbCkgXAotICAgIElOVEVSTkFMX1RSQUNF
X0VWRU5UX0FERChUUkFDRV9FVkVOVF9QSEFTRV9DT1VOVEVSLCBcCi0gICAgICAgIGNhdGVnb3J5
LCBuYW1lLCBUUkFDRV9FVkVOVF9GTEFHX0NPUFksIFwKLSAgICAgICAgdmFsdWUxX25hbWUsIHN0
YXRpY19jYXN0PGludD4odmFsdWUxX3ZhbCksIFwKLSAgICAgICAgdmFsdWUyX25hbWUsIHN0YXRp
Y19jYXN0PGludD4odmFsdWUyX3ZhbCkpCi0KLS8vIFJlY29yZHMgdGhlIHZhbHVlIG9mIGEgY291
bnRlciBjYWxsZWQgIm5hbWUiIGltbWVkaWF0ZWx5LiBWYWx1ZQotLy8gbXVzdCBiZSByZXByZXNl
bnRhYmxlIGFzIGEgMzIgYml0IGludGVnZXIuCi0vLyAtIGNhdGVnb3J5IGFuZCBuYW1lIHN0cmlu
Z3MgbXVzdCBoYXZlIGFwcGxpY2F0aW9uIGxpZmV0aW1lIChzdGF0aWNzIG9yCi0vLyAgIGxpdGVy
YWxzKS4gVGhleSBtYXkgbm90IGluY2x1ZGUgIiBjaGFycy4KLS8vIC0gfGlkfCBpcyB1c2VkIHRv
IGRpc2FtYmlndWF0ZSBjb3VudGVycyB3aXRoIHRoZSBzYW1lIG5hbWUuIEl0IG11c3QgZWl0aGVy
Ci0vLyAgIGJlIGEgcG9pbnRlciBvciBhbiBpbnRlZ2VyIHZhbHVlIHVwIHRvIDY0IGJpdHMuIElm
IGl0J3MgYSBwb2ludGVyLCB0aGUgYml0cwotLy8gICB3aWxsIGJlIHhvcmVkIHdpdGggYSBoYXNo
IG9mIHRoZSBwcm9jZXNzIElEIHNvIHRoYXQgdGhlIHNhbWUgcG9pbnRlciBvbgotLy8gICB0d28g
ZGlmZmVyZW50IHByb2Nlc3NlcyB3aWxsIG5vdCBjb2xsaWRlLgotI2RlZmluZSBUUkFDRV9DT1VO
VEVSX0lEMShjYXRlZ29yeSwgbmFtZSwgaWQsIHZhbHVlKSBcCi0gICAgSU5URVJOQUxfVFJBQ0Vf
RVZFTlRfQUREX1dJVEhfSUQoVFJBQ0VfRVZFTlRfUEhBU0VfQ09VTlRFUiwgXAotICAgICAgICBj
YXRlZ29yeSwgbmFtZSwgaWQsIFRSQUNFX0VWRU5UX0ZMQUdfTk9ORSwgXAotICAgICAgICAidmFs
dWUiLCBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVlKSkKLSNkZWZpbmUgVFJBQ0VfQ09QWV9DT1VOVEVS
X0lEMShjYXRlZ29yeSwgbmFtZSwgaWQsIHZhbHVlKSBcCi0gICAgSU5URVJOQUxfVFJBQ0VfRVZF
TlRfQUREX1dJVEhfSUQoVFJBQ0VfRVZFTlRfUEhBU0VfQ09VTlRFUiwgXAotICAgICAgICBjYXRl
Z29yeSwgbmFtZSwgaWQsIFRSQUNFX0VWRU5UX0ZMQUdfQ09QWSwgXAotICAgICAgICAidmFsdWUi
LCBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVlKSkKLQotLy8gUmVjb3JkcyB0aGUgdmFsdWVzIG9mIGEg
bXVsdGktcGFydGVkIGNvdW50ZXIgY2FsbGVkICJuYW1lIiBpbW1lZGlhdGVseS4KLS8vIFRoZSBV
SSB3aWxsIHRyZWF0IHZhbHVlMSBhbmQgdmFsdWUyIGFzIHBhcnRzIG9mIGEgd2hvbGUsIGRpc3Bs
YXlpbmcgdGhlaXIKLS8vIHZhbHVlcyBhcyBhIHN0YWNrZWQtYmFyIGNoYXJ0LgotLy8gLSBjYXRl
Z29yeSBhbmQgbmFtZSBzdHJpbmdzIG11c3QgaGF2ZSBhcHBsaWNhdGlvbiBsaWZldGltZSAoc3Rh
dGljcyBvcgotLy8gICBsaXRlcmFscykuIFRoZXkgbWF5IG5vdCBpbmNsdWRlICIgY2hhcnMuCi0v
LyAtIHxpZHwgaXMgdXNlZCB0byBkaXNhbWJpZ3VhdGUgY291bnRlcnMgd2l0aCB0aGUgc2FtZSBu
YW1lLiBJdCBtdXN0IGVpdGhlcgotLy8gICBiZSBhIHBvaW50ZXIgb3IgYW4gaW50ZWdlciB2YWx1
ZSB1cCB0byA2NCBiaXRzLiBJZiBpdCdzIGEgcG9pbnRlciwgdGhlIGJpdHMKLS8vICAgd2lsbCBi
ZSB4b3JlZCB3aXRoIGEgaGFzaCBvZiB0aGUgcHJvY2VzcyBJRCBzbyB0aGF0IHRoZSBzYW1lIHBv
aW50ZXIgb24KLS8vICAgdHdvIGRpZmZlcmVudCBwcm9jZXNzZXMgd2lsbCBub3QgY29sbGlkZS4K
LSNkZWZpbmUgVFJBQ0VfQ09VTlRFUl9JRDIoY2F0ZWdvcnksIG5hbWUsIGlkLCB2YWx1ZTFfbmFt
ZSwgdmFsdWUxX3ZhbCwgXAotICAgICAgICB2YWx1ZTJfbmFtZSwgdmFsdWUyX3ZhbCkgXAotICAg
IElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERF9XSVRIX0lEKFRSQUNFX0VWRU5UX1BIQVNFX0NPVU5U
RVIsIFwKLSAgICAgICAgY2F0ZWdvcnksIG5hbWUsIGlkLCBUUkFDRV9FVkVOVF9GTEFHX05PTkUs
IFwKLSAgICAgICAgdmFsdWUxX25hbWUsIHN0YXRpY19jYXN0PGludD4odmFsdWUxX3ZhbCksIFwK
LSAgICAgICAgdmFsdWUyX25hbWUsIHN0YXRpY19jYXN0PGludD4odmFsdWUyX3ZhbCkpCi0jZGVm
aW5lIFRSQUNFX0NPUFlfQ09VTlRFUl9JRDIoY2F0ZWdvcnksIG5hbWUsIGlkLCB2YWx1ZTFfbmFt
ZSwgdmFsdWUxX3ZhbCwgXAotICAgICAgICB2YWx1ZTJfbmFtZSwgdmFsdWUyX3ZhbCkgXAotICAg
IElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERF9XSVRIX0lEKFRSQUNFX0VWRU5UX1BIQVNFX0NPVU5U
RVIsIFwKLSAgICAgICAgY2F0ZWdvcnksIG5hbWUsIGlkLCBUUkFDRV9FVkVOVF9GTEFHX0NPUFks
IFwKLSAgICAgICAgdmFsdWUxX25hbWUsIHN0YXRpY19jYXN0PGludD4odmFsdWUxX3ZhbCksIFwK
LSAgICAgICAgdmFsdWUyX25hbWUsIHN0YXRpY19jYXN0PGludD4odmFsdWUyX3ZhbCkpCi0KLS8v
IFJlY29yZHMgYSBzaW5nbGUgU1RBUlQgZXZlbnQgY2FsbGVkICJuYW1lIiBpbW1lZGlhdGVseSwg
d2l0aCAwLCAxIG9yIDIKLS8vIGFzc29jaWF0ZWQgYXJndW1lbnRzLiBJZiB0aGUgY2F0ZWdvcnkg
aXMgbm90IGVuYWJsZWQsIHRoZW4gdGhpcwotLy8gZG9lcyBub3RoaW5nLgotLy8gLSBjYXRlZ29y
eSBhbmQgbmFtZSBzdHJpbmdzIG11c3QgaGF2ZSBhcHBsaWNhdGlvbiBsaWZldGltZSAoc3RhdGlj
cyBvcgotLy8gICBsaXRlcmFscykuIFRoZXkgbWF5IG5vdCBpbmNsdWRlICIgY2hhcnMuCi0vLyAt
IHxpZHwgaXMgdXNlZCB0byBtYXRjaCB0aGUgU1RBUlQgZXZlbnQgd2l0aCB0aGUgRklOSVNIIGV2
ZW50LiBJdCBtdXN0IGVpdGhlcgotLy8gICBiZSBhIHBvaW50ZXIgb3IgYW4gaW50ZWdlciB2YWx1
ZSB1cCB0byA2NCBiaXRzLiBJZiBpdCdzIGEgcG9pbnRlciwgdGhlIGJpdHMKLS8vICAgd2lsbCBi
ZSB4b3JlZCB3aXRoIGEgaGFzaCBvZiB0aGUgcHJvY2VzcyBJRCBzbyB0aGF0IHRoZSBzYW1lIHBv
aW50ZXIgb24KLS8vICAgdHdvIGRpZmZlcmVudCBwcm9jZXNzZXMgd2lsbCBub3QgY29sbGlkZS4K
LSNkZWZpbmUgVFJBQ0VfRVZFTlRfU1RBUlQwKGNhdGVnb3J5LCBuYW1lLCBpZCkgXAotICAgIElO
VEVSTkFMX1RSQUNFX0VWRU5UX0FERF9XSVRIX0lEKFRSQUNFX0VWRU5UX1BIQVNFX1NUQVJULCBc
Ci0gICAgICAgIGNhdGVnb3J5LCBuYW1lLCBpZCwgVFJBQ0VfRVZFTlRfRkxBR19OT05FKQotI2Rl
ZmluZSBUUkFDRV9FVkVOVF9TVEFSVDEoY2F0ZWdvcnksIG5hbWUsIGlkLCBhcmcxX25hbWUsIGFy
ZzFfdmFsKSBcCi0gICAgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREX1dJVEhfSUQoVFJBQ0VfRVZF
TlRfUEhBU0VfU1RBUlQsIFwKLSAgICAgICAgY2F0ZWdvcnksIG5hbWUsIGlkLCBUUkFDRV9FVkVO
VF9GTEFHX05PTkUsIGFyZzFfbmFtZSwgYXJnMV92YWwpCi0jZGVmaW5lIFRSQUNFX0VWRU5UX1NU
QVJUMihjYXRlZ29yeSwgbmFtZSwgaWQsIGFyZzFfbmFtZSwgYXJnMV92YWwsIFwKLSAgICAgICAg
YXJnMl9uYW1lLCBhcmcyX3ZhbCkgXAotICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERF9XSVRI
X0lEKFRSQUNFX0VWRU5UX1BIQVNFX1NUQVJULCBcCi0gICAgICAgIGNhdGVnb3J5LCBuYW1lLCBp
ZCwgVFJBQ0VfRVZFTlRfRkxBR19OT05FLCBcCi0gICAgICAgIGFyZzFfbmFtZSwgYXJnMV92YWws
IGFyZzJfbmFtZSwgYXJnMl92YWwpCi0jZGVmaW5lIFRSQUNFX0VWRU5UX0NPUFlfU1RBUlQwKGNh
dGVnb3J5LCBuYW1lLCBpZCkgXAotICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERF9XSVRIX0lE
KFRSQUNFX0VWRU5UX1BIQVNFX1NUQVJULCBcCi0gICAgICAgIGNhdGVnb3J5LCBuYW1lLCBpZCwg
VFJBQ0VfRVZFTlRfRkxBR19DT1BZKQotI2RlZmluZSBUUkFDRV9FVkVOVF9DT1BZX1NUQVJUMShj
YXRlZ29yeSwgbmFtZSwgaWQsIGFyZzFfbmFtZSwgYXJnMV92YWwpIFwKLSAgICBJTlRFUk5BTF9U
UkFDRV9FVkVOVF9BRERfV0lUSF9JRChUUkFDRV9FVkVOVF9QSEFTRV9TVEFSVCwgXAotICAgICAg
ICBjYXRlZ29yeSwgbmFtZSwgaWQsIFRSQUNFX0VWRU5UX0ZMQUdfQ09QWSwgXAotICAgICAgICBh
cmcxX25hbWUsIGFyZzFfdmFsKQotI2RlZmluZSBUUkFDRV9FVkVOVF9DT1BZX1NUQVJUMihjYXRl
Z29yeSwgbmFtZSwgaWQsIGFyZzFfbmFtZSwgYXJnMV92YWwsIFwKLSAgICAgICAgYXJnMl9uYW1l
LCBhcmcyX3ZhbCkgXAotICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERF9XSVRIX0lEKFRSQUNF
X0VWRU5UX1BIQVNFX1NUQVJULCBcCi0gICAgICAgIGNhdGVnb3J5LCBuYW1lLCBpZCwgVFJBQ0Vf
RVZFTlRfRkxBR19DT1BZLCBcCi0gICAgICAgIGFyZzFfbmFtZSwgYXJnMV92YWwsIGFyZzJfbmFt
ZSwgYXJnMl92YWwpCi0KLS8vIFJlY29yZHMgYSBzaW5nbGUgRklOSVNIIGV2ZW50IGZvciAibmFt
ZSIgaW1tZWRpYXRlbHkuIElmIHRoZSBjYXRlZ29yeQotLy8gaXMgbm90IGVuYWJsZWQsIHRoZW4g
dGhpcyBkb2VzIG5vdGhpbmcuCi0jZGVmaW5lIFRSQUNFX0VWRU5UX0ZJTklTSDAoY2F0ZWdvcnks
IG5hbWUsIGlkKSBcCi0gICAgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREX1dJVEhfSUQoVFJBQ0Vf
RVZFTlRfUEhBU0VfRklOSVNILCBcCi0gICAgICAgIGNhdGVnb3J5LCBuYW1lLCBpZCwgVFJBQ0Vf
RVZFTlRfRkxBR19OT05FKQotI2RlZmluZSBUUkFDRV9FVkVOVF9GSU5JU0gxKGNhdGVnb3J5LCBu
YW1lLCBpZCwgYXJnMV9uYW1lLCBhcmcxX3ZhbCkgXAotICAgIElOVEVSTkFMX1RSQUNFX0VWRU5U
X0FERF9XSVRIX0lEKFRSQUNFX0VWRU5UX1BIQVNFX0ZJTklTSCwgXAotICAgICAgICBjYXRlZ29y
eSwgbmFtZSwgaWQsIFRSQUNFX0VWRU5UX0ZMQUdfTk9ORSwgYXJnMV9uYW1lLCBhcmcxX3ZhbCkK
LSNkZWZpbmUgVFJBQ0VfRVZFTlRfRklOSVNIMihjYXRlZ29yeSwgbmFtZSwgaWQsIGFyZzFfbmFt
ZSwgYXJnMV92YWwsIFwKLSAgICAgICAgYXJnMl9uYW1lLCBhcmcyX3ZhbCkgXAotICAgIElOVEVS
TkFMX1RSQUNFX0VWRU5UX0FERF9XSVRIX0lEKFRSQUNFX0VWRU5UX1BIQVNFX0ZJTklTSCwgXAot
ICAgICAgICBjYXRlZ29yeSwgbmFtZSwgaWQsIFRSQUNFX0VWRU5UX0ZMQUdfTk9ORSwgXAotICAg
ICAgICBhcmcxX25hbWUsIGFyZzFfdmFsLCBhcmcyX25hbWUsIGFyZzJfdmFsKQotI2RlZmluZSBU
UkFDRV9FVkVOVF9DT1BZX0ZJTklTSDAoY2F0ZWdvcnksIG5hbWUsIGlkKSBcCi0gICAgSU5URVJO
QUxfVFJBQ0VfRVZFTlRfQUREX1dJVEhfSUQoVFJBQ0VfRVZFTlRfUEhBU0VfRklOSVNILCBcCi0g
ICAgICAgIGNhdGVnb3J5LCBuYW1lLCBpZCwgVFJBQ0VfRVZFTlRfRkxBR19DT1BZKQotI2RlZmlu
ZSBUUkFDRV9FVkVOVF9DT1BZX0ZJTklTSDEoY2F0ZWdvcnksIG5hbWUsIGlkLCBhcmcxX25hbWUs
IGFyZzFfdmFsKSBcCi0gICAgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREX1dJVEhfSUQoVFJBQ0Vf
RVZFTlRfUEhBU0VfRklOSVNILCBcCi0gICAgICAgIGNhdGVnb3J5LCBuYW1lLCBpZCwgVFJBQ0Vf
RVZFTlRfRkxBR19DT1BZLCBcCi0gICAgICAgIGFyZzFfbmFtZSwgYXJnMV92YWwpCi0jZGVmaW5l
IFRSQUNFX0VWRU5UX0NPUFlfRklOSVNIMihjYXRlZ29yeSwgbmFtZSwgaWQsIGFyZzFfbmFtZSwg
YXJnMV92YWwsIFwKLSAgICAgICAgYXJnMl9uYW1lLCBhcmcyX3ZhbCkgXAotICAgIElOVEVSTkFM
X1RSQUNFX0VWRU5UX0FERF9XSVRIX0lEKFRSQUNFX0VWRU5UX1BIQVNFX0ZJTklTSCwgXAotICAg
ICAgICBjYXRlZ29yeSwgbmFtZSwgaWQsIFRSQUNFX0VWRU5UX0ZMQUdfQ09QWSwgXAotICAgICAg
ICBhcmcxX25hbWUsIGFyZzFfdmFsLCBhcmcyX25hbWUsIGFyZzJfdmFsKQotCi0vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwotLy8gSW1wbGVtZW50YXRpb24gc3BlY2lmaWMgdHJhY2luZyBBUEkgZGVm
aW5pdGlvbnMuCi0KLS8vIEdldCBhIHBvaW50ZXIgdG8gdGhlIGVuYWJsZWQgc3RhdGUgb2YgdGhl
IGdpdmVuIHRyYWNlIGNhdGVnb3J5LiBPbmx5Ci0vLyBsb25nLWxpdmVkIGxpdGVyYWwgc3RyaW5n
cyBzaG91bGQgYmUgZ2l2ZW4gYXMgdGhlIGNhdGVnb3J5IG5hbWUuIFRoZSByZXR1cm5lZAotLy8g
cG9pbnRlciBjYW4gYmUgaGVsZCBwZXJtYW5lbnRseSBpbiBhIGxvY2FsIHN0YXRpYyBmb3IgZXhh
bXBsZS4gSWYgdGhlCi0vLyB1bnNpZ25lZCBjaGFyIGlzIG5vbi16ZXJvLCB0cmFjaW5nIGlzIGVu
YWJsZWQuIElmIHRyYWNpbmcgaXMgZW5hYmxlZCwKLS8vIFRSQUNFX0VWRU5UX0FQSV9BRERfVFJB
Q0VfRVZFTlQgY2FuIGJlIGNhbGxlZC4gSXQncyBPSyBpZiB0cmFjaW5nIGlzIGRpc2FibGVkCi0v
LyBiZXR3ZWVuIHRoZSBsb2FkIG9mIHRoZSB0cmFjaW5nIHN0YXRlIGFuZCB0aGUgY2FsbCB0bwot
Ly8gVFJBQ0VfRVZFTlRfQVBJX0FERF9UUkFDRV9FVkVOVCwgYmVjYXVzZSB0aGlzIGZsYWcgb25s
eSBwcm92aWRlcyBhbiBlYXJseSBvdXQKLS8vIGZvciBiZXN0IHBlcmZvcm1hbmNlIHdoZW4gdHJh
Y2luZyBpcyBkaXNhYmxlZC4KLS8vIGNvbnN0IHVuc2lnbmVkIGNoYXIqCi0vLyAgICAgVFJBQ0Vf
RVZFTlRfQVBJX0dFVF9DQVRFR09SWV9FTkFCTEVEKGNvbnN0IGNoYXIqIGNhdGVnb3J5X25hbWUp
Ci0jZGVmaW5lIFRSQUNFX0VWRU5UX0FQSV9HRVRfQ0FURUdPUllfRU5BQkxFRCBcCi0gICAgV2Vi
Q29yZTo6UGxhdGZvcm1TdXBwb3J0OjpnZXRUcmFjZUNhdGVnb3J5RW5hYmxlZEZsYWcKLQotLy8g
QWRkIGEgdHJhY2UgZXZlbnQgdG8gdGhlIHBsYXRmb3JtIHRyYWNpbmcgc3lzdGVtLiBSZXR1cm5z
IHRocmVzaG9sZEJlZ2luSWQKLS8vIGZvciB1c2UgaW4gYSBjb3JyZXNwb25kaW5nIGVuZCBUUkFD
RV9FVkVOVF9BUElfQUREX1RSQUNFX0VWRU5UIGNhbGwuCi0vLyBpbnQgVFJBQ0VfRVZFTlRfQVBJ
X0FERF9UUkFDRV9FVkVOVCgKLS8vICAgICAgICAgICAgICAgICAgICBjaGFyIHBoYXNlLAotLy8g
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGNhdGVnb3J5X2VuYWJsZWQs
Ci0vLyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSwKLS8vICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCi0vLyAgICAgICAgICAgICAgICAgICAgaW50
IG51bV9hcmdzLAotLy8gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqKiBhcmdfbmFtZXMs
Ci0vLyAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogYXJnX3R5cGVzLAot
Ly8gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyogYXJnX3ZhbHVl
cywKLS8vICAgICAgICAgICAgICAgICAgICBpbnQgdGhyZXNob2xkQmVnaW5JRCwKLS8vICAgICAg
ICAgICAgICAgICAgICBsb25nIGxvbmcgdGhyZXNob2xkLAotLy8gICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGNoYXIgZmxhZ3MpCi0jZGVmaW5lIFRSQUNFX0VWRU5UX0FQSV9BRERfVFJBQ0Vf
RVZFTlQgXAotICAgIFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6YWRkVHJhY2VFdmVudAotCi0v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCiAv
LyBJbXBsZW1lbnRhdGlvbiBkZXRhaWw6IHRyYWNlIGV2ZW50IG1hY3JvcyBjcmVhdGUgdGVtcG9y
YXJ5IHZhcmlhYmxlcwogLy8gdG8ga2VlcCBpbnN0cnVtZW50YXRpb24gb3ZlcmhlYWQgbG93LiBU
aGVzZSBtYWNyb3MgZ2l2ZSBlYWNoIHRlbXBvcmFyeQogLy8gdmFyaWFibGUgYSB1bmlxdWUgbmFt
ZSBiYXNlZCBvbiB0aGUgbGluZSBudW1iZXIgdG8gcHJldmVudCBuYW1lIGNvbGxpc3Npb25zLgot
I2RlZmluZSBJTlRFUk5BTF9UUkFDRV9FVkVOVF9VSUQzKGEsIGIpIFwKLSAgICB0cmFjZV9ldmVu
dF91bmlxdWVfIyNhIyNiCi0jZGVmaW5lIElOVEVSTkFMX1RSQUNFX0VWRU5UX1VJRDIoYSwgYikg
XAotICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX1VJRDMoYSwgYikKLSNkZWZpbmUgSU5URVJOQUxU
UkFDRUVWRU5UVUlEKG5hbWVfcHJlZml4KSBcCi0gICAgSU5URVJOQUxfVFJBQ0VfRVZFTlRfVUlE
MihuYW1lX3ByZWZpeCwgX19MSU5FX18pCi0KLS8vIEltcGxlbWVudGF0aW9uIGRldGFpbDogaW50
ZXJuYWwgbWFjcm8gdG8gY3JlYXRlIHN0YXRpYyBjYXRlZ29yeS4KLS8vIC0gV1RGX0FOTk9UQVRF
X0JFTklHTl9SQUNFLCBzZWUgVGhyZWFkIFNhZmV0eSBhYm92ZS4KLSNkZWZpbmUgSU5URVJOQUxf
VFJBQ0VfRVZFTlRfR0VUX0NBVEVHT1JZX0lORk8oY2F0ZWdvcnkpIFwKLSAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgY2hhciogSU5URVJOQUxUUkFDRUVWRU5UVUlEKGNhdHN0YXRpYykgPSAwOyBc
Ci0gICAgV1RGX0FOTk9UQVRFX0JFTklHTl9SQUNFKCZJTlRFUk5BTFRSQUNFRVZFTlRVSUQoY2F0
c3RhdGljKSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhY2VfZXZlbnQgY2F0
ZWdvcnkiKTsgXAotICAgIGlmICghSU5URVJOQUxUUkFDRUVWRU5UVUlEKGNhdHN0YXRpYykpIFwK
LSAgICAgIElOVEVSTkFMVFJBQ0VFVkVOVFVJRChjYXRzdGF0aWMpID0gXAotICAgICAgICAgIFRS
QUNFX0VWRU5UX0FQSV9HRVRfQ0FURUdPUllfRU5BQkxFRChjYXRlZ29yeSk7Ci0KLS8vIEltcGxl
bWVudGF0aW9uIGRldGFpbDogaW50ZXJuYWwgbWFjcm8gdG8gY3JlYXRlIHN0YXRpYyBjYXRlZ29y
eSBhbmQgYWRkCi0vLyBldmVudCBpZiB0aGUgY2F0ZWdvcnkgaXMgZW5hYmxlZC4KLSNpZiBDT01Q
SUxFUihNU1ZDN19PUl9MT1dFUikKLSNkZWZpbmUgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREKGln
bm9yZSkgKCh2b2lkKTApCi0jZWxzZQotI2RlZmluZSBJTlRFUk5BTF9UUkFDRV9FVkVOVF9BREQo
cGhhc2UsIGNhdGVnb3J5LCBuYW1lLCBmbGFncywgLi4uKSBcCi0gICAgSU5URVJOQUxfVFJBQ0Vf
RVZFTlRfR0VUX0NBVEVHT1JZX0lORk8oY2F0ZWdvcnkpOyBcCi0gICAgaWYgKCpJTlRFUk5BTFRS
QUNFRVZFTlRVSUQoY2F0c3RhdGljKSkgeyBcCi0gICAgICBXZWJDb3JlOjpUcmFjZUV2ZW50Ojph
ZGRUcmFjZUV2ZW50KCBcCi0gICAgICAgICAgcGhhc2UsIElOVEVSTkFMVFJBQ0VFVkVOVFVJRChj
YXRzdGF0aWMpLCBuYW1lLCBcCi0gICAgICAgICAgV2ViQ29yZTo6VHJhY2VFdmVudDo6bm9FdmVu
dElkLCBmbGFncywgIyNfX1ZBX0FSR1NfXyk7IFwKLSAgICB9Ci0jZW5kaWYKLQotLy8gSW1wbGVt
ZW50YXRpb24gZGV0YWlsOiBpbnRlcm5hbCBtYWNybyB0byBjcmVhdGUgc3RhdGljIGNhdGVnb3J5
IGFuZCBhZGQgYmVnaW4KLS8vIGV2ZW50IGlmIHRoZSBjYXRlZ29yeSBpcyBlbmFibGVkLiBBbHNv
IGFkZHMgdGhlIGVuZCBldmVudCB3aGVuIHRoZSBzY29wZQotLy8gZW5kcy4KLSNpZiBDT01QSUxF
UihNU1ZDN19PUl9MT1dFUikKLSNkZWZpbmUgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREX1NDT1BF
RChpZ25vcmUpICgodm9pZCkwKQotI2Vsc2UKLSNkZWZpbmUgSU5URVJOQUxfVFJBQ0VfRVZFTlRf
QUREX1NDT1BFRChjYXRlZ29yeSwgbmFtZSwgLi4uKSBcCi0gICAgSU5URVJOQUxfVFJBQ0VfRVZF
TlRfR0VUX0NBVEVHT1JZX0lORk8oY2F0ZWdvcnkpOyBcCi0gICAgV2ViQ29yZTo6VHJhY2VFdmVu
dDo6VHJhY2VFbmRPblNjb3BlQ2xvc2UgXAotICAgICAgICBJTlRFUk5BTFRSQUNFRVZFTlRVSUQo
cHJvZmlsZVNjb3BlKTsgXAotICAgIGlmICgqSU5URVJOQUxUUkFDRUVWRU5UVUlEKGNhdHN0YXRp
YykpIHsgXAotICAgICAgV2ViQ29yZTo6VHJhY2VFdmVudDo6YWRkVHJhY2VFdmVudCggXAotICAg
ICAgICAgIFRSQUNFX0VWRU5UX1BIQVNFX0JFR0lOLCBcCi0gICAgICAgICAgSU5URVJOQUxUUkFD
RUVWRU5UVUlEKGNhdHN0YXRpYyksIFwKLSAgICAgICAgICBuYW1lLCBXZWJDb3JlOjpUcmFjZUV2
ZW50Ojpub0V2ZW50SWQsIFwKLSAgICAgICAgICBUUkFDRV9FVkVOVF9GTEFHX05PTkUsICMjX19W
QV9BUkdTX18pOyBcCi0gICAgICBJTlRFUk5BTFRSQUNFRVZFTlRVSUQocHJvZmlsZVNjb3BlKS5p
bml0aWFsaXplKCBcCi0gICAgICAgICAgSU5URVJOQUxUUkFDRUVWRU5UVUlEKGNhdHN0YXRpYyks
IG5hbWUpOyBcCi0gICAgfQotI2VuZGlmCi0KLS8vIEltcGxlbWVudGF0aW9uIGRldGFpbDogaW50
ZXJuYWwgbWFjcm8gdG8gY3JlYXRlIHN0YXRpYyBjYXRlZ29yeSBhbmQgYWRkIGJlZ2luCi0vLyBl
dmVudCBpZiB0aGUgY2F0ZWdvcnkgaXMgZW5hYmxlZC4gQWxzbyBhZGRzIHRoZSBlbmQgZXZlbnQg
d2hlbiB0aGUgc2NvcGUKLS8vIGVuZHMuIElmIHRoZSBlbGFwc2VkIHRpbWUgaXMgPCB0aHJlc2hv
bGQgdGltZSwgdGhlIGJlZ2luL2VuZCBwYWlyIGlzIGVyYXNlZC4KLSNpZiBDT01QSUxFUihNU1ZD
N19PUl9MT1dFUikKLSNkZWZpbmUgSU5URVJOQUxfVFJBQ0VfRVZFTlRfQUREX1NDT1BFRF9JRl9M
T05HRVJfVEhBTihpZ25vcmUpICgodm9pZCkwKQotI2Vsc2UKLSNkZWZpbmUgSU5URVJOQUxfVFJB
Q0VfRVZFTlRfQUREX1NDT1BFRF9JRl9MT05HRVJfVEhBTih0aHJlc2hvbGQsIFwKLSAgICAgICAg
Y2F0ZWdvcnksIG5hbWUsIC4uLikgXAotICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0dFVF9DQVRF
R09SWV9JTkZPKGNhdGVnb3J5KTsgXAotICAgIFdlYkNvcmU6OlRyYWNlRXZlbnQ6OlRyYWNlRW5k
T25TY29wZUNsb3NlVGhyZXNob2xkIFwKLSAgICAgICAgSU5URVJOQUxUUkFDRUVWRU5UVUlEKHBy
b2ZpbGVTY29wZSk7IFwKLSAgICBpZiAoKklOVEVSTkFMVFJBQ0VFVkVOVFVJRChjYXRzdGF0aWMp
KSB7IFwKLSAgICAgIGludCBJTlRFUk5BTFRSQUNFRVZFTlRVSUQoYmVnaW5fZXZlbnRfaWQpID0g
XAotICAgICAgICBXZWJDb3JlOjpUcmFjZUV2ZW50OjphZGRUcmFjZUV2ZW50KCBcCi0gICAgICAg
ICAgICBUUkFDRV9FVkVOVF9QSEFTRV9CRUdJTiwgXAotICAgICAgICAgICAgSU5URVJOQUxUUkFD
RUVWRU5UVUlEKGNhdHN0YXRpYyksIFwKLSAgICAgICAgICAgIG5hbWUsIFdlYkNvcmU6OlRyYWNl
RXZlbnQ6Om5vRXZlbnRJZCwgXAotICAgICAgICAgICAgVFJBQ0VfRVZFTlRfRkxBR19OT05FLCAj
I19fVkFfQVJHU19fKTsgXAotICAgICAgSU5URVJOQUxUUkFDRUVWRU5UVUlEKHByb2ZpbGVTY29w
ZSkuaW5pdGlhbGl6ZSggXAotICAgICAgICAgIElOVEVSTkFMVFJBQ0VFVkVOVFVJRChjYXRzdGF0
aWMpLCBuYW1lLCBcCi0gICAgICAgICAgSU5URVJOQUxUUkFDRUVWRU5UVUlEKGJlZ2luX2V2ZW50
X2lkKSwgdGhyZXNob2xkKTsgXAotICAgIH0KLSNlbmRpZgotCi0vLyBJbXBsZW1lbnRhdGlvbiBk
ZXRhaWw6IGludGVybmFsIG1hY3JvIHRvIGNyZWF0ZSBzdGF0aWMgY2F0ZWdvcnkgYW5kIGFkZAot
Ly8gZXZlbnQgaWYgdGhlIGNhdGVnb3J5IGlzIGVuYWJsZWQuCi0jaWYgQ09NUElMRVIoTVNWQzdf
T1JfTE9XRVIpCi0jZGVmaW5lIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERF9XSVRIX0lEKGlnbm9y
ZSkgKCh2b2lkKTApCi0jZWxzZQotI2RlZmluZSBJTlRFUk5BTF9UUkFDRV9FVkVOVF9BRERfV0lU
SF9JRChwaGFzZSwgY2F0ZWdvcnksIG5hbWUsIGlkLCBmbGFncywgXAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pIFwKLSAgICBJTlRFUk5BTF9UUkFDRV9FVkVO
VF9HRVRfQ0FURUdPUllfSU5GTyhjYXRlZ29yeSk7IFwKLSAgICBpZiAoKklOVEVSTkFMVFJBQ0VF
VkVOVFVJRChjYXRzdGF0aWMpKSB7IFwKLSAgICAgIHVuc2lnbmVkIGNoYXIgdHJhY2VFdmVudEZs
YWdzID0gZmxhZ3MgfCBUUkFDRV9FVkVOVF9GTEFHX0hBU19JRDsgXAotICAgICAgV2ViQ29yZTo6
VHJhY2VFdmVudDo6VHJhY2VJRCB0cmFjZUV2ZW50VHJhY2VJRCggXAotICAgICAgICAgIGlkLCAm
dHJhY2VFdmVudEZsYWdzKTsgXAotICAgICAgV2ViQ29yZTo6VHJhY2VFdmVudDo6YWRkVHJhY2VF
dmVudCggXAotICAgICAgICAgIHBoYXNlLCBJTlRFUk5BTFRSQUNFRVZFTlRVSUQoY2F0c3RhdGlj
KSwgXAotICAgICAgICAgIG5hbWUsIHRyYWNlRXZlbnRUcmFjZUlELmRhdGEoKSwgdHJhY2VFdmVu
dEZsYWdzLCBcCi0gICAgICAgICAgIyNfX1ZBX0FSR1NfXyk7IFwKLSAgICB9Ci0jZW5kaWYKLQot
Ly8gTm90ZXMgcmVnYXJkaW5nIHRoZSBmb2xsb3dpbmcgZGVmaW5pdGlvbnM6Ci0vLyBOZXcgdmFs
dWVzIGNhbiBiZSBhZGRlZCBhbmQgcHJvcGFnYXRlZCB0byB0aGlyZCBwYXJ0eSBsaWJyYXJpZXMs
IGJ1dCBleGlzdGluZwotLy8gZGVmaW5pdGlvbnMgbXVzdCBuZXZlciBiZSBjaGFuZ2VkLCBiZWNh
dXNlIHRoaXJkIHBhcnR5IGxpYnJhcmllcyBtYXkgdXNlIG9sZAotLy8gZGVmaW5pdGlvbnMuCi0K
LS8vIFBoYXNlIGluZGljYXRlcyB0aGUgbmF0dXJlIG9mIGFuIGV2ZW50IGVudHJ5LiBFLmcuIHBh
cnQgb2YgYSBiZWdpbi9lbmQgcGFpci4KLSNkZWZpbmUgVFJBQ0VfRVZFTlRfUEhBU0VfQkVHSU4g
ICAgKCdCJykKLSNkZWZpbmUgVFJBQ0VfRVZFTlRfUEhBU0VfRU5EICAgICAgKCdFJykKLSNkZWZp
bmUgVFJBQ0VfRVZFTlRfUEhBU0VfSU5TVEFOVCAgKCdJJykKLSNkZWZpbmUgVFJBQ0VfRVZFTlRf
UEhBU0VfU1RBUlQgICAgKCdTJykKLSNkZWZpbmUgVFJBQ0VfRVZFTlRfUEhBU0VfRklOSVNIICAg
KCdGJykKLSNkZWZpbmUgVFJBQ0VfRVZFTlRfUEhBU0VfTUVUQURBVEEgKCdNJykKLSNkZWZpbmUg
VFJBQ0VfRVZFTlRfUEhBU0VfQ09VTlRFUiAgKCdDJykKLQotLy8gRmxhZ3MgZm9yIGNoYW5naW5n
IHRoZSBiZWhhdmlvciBvZiBUUkFDRV9FVkVOVF9BUElfQUREX1RSQUNFX0VWRU5ULgotI2RlZmlu
ZSBUUkFDRV9FVkVOVF9GTEFHX05PTkUgICAgICAgIChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFy
PigwKSkKLSNkZWZpbmUgVFJBQ0VfRVZFTlRfRkxBR19DT1BZICAgICAgICAoc3RhdGljX2Nhc3Q8
dW5zaWduZWQgY2hhcj4oMSA8PCAwKSkKLSNkZWZpbmUgVFJBQ0VfRVZFTlRfRkxBR19IQVNfSUQg
ICAgICAoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oMSA8PCAxKSkKLSNkZWZpbmUgVFJBQ0Vf
RVZFTlRfRkxBR19NQU5HTEVfSUQgICAoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oMSA8PCAy
KSkKLQotLy8gVHlwZSB2YWx1ZXMgZm9yIGlkZW50aWZ5aW5nIHR5cGVzIGluIHRoZSBUcmFjZVZh
bHVlIHVuaW9uLgotI2RlZmluZSBUUkFDRV9WQUxVRV9UWVBFX0JPT0wgICAgICAgICAoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgY2hhcj4oMSkpCi0jZGVmaW5lIFRSQUNFX1ZBTFVFX1RZUEVfVUlOVCAg
ICAgICAgIChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPigyKSkKLSNkZWZpbmUgVFJBQ0VfVkFM
VUVfVFlQRV9JTlQgICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KDMpKQotI2Rl
ZmluZSBUUkFDRV9WQUxVRV9UWVBFX0RPVUJMRSAgICAgICAoc3RhdGljX2Nhc3Q8dW5zaWduZWQg
Y2hhcj4oNCkpCi0jZGVmaW5lIFRSQUNFX1ZBTFVFX1RZUEVfUE9JTlRFUiAgICAgIChzdGF0aWNf
Y2FzdDx1bnNpZ25lZCBjaGFyPig1KSkKLSNkZWZpbmUgVFJBQ0VfVkFMVUVfVFlQRV9TVFJJTkcg
ICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KDYpKQotI2RlZmluZSBUUkFDRV9WQUxV
RV9UWVBFX0NPUFlfU1RSSU5HICAoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oNykpCisjZGVm
aW5lIFRSQUNFX0VWRU5UX01BS0VfVU5JUVVFX0lERU5USUZJRVIzKGEsIGIpIGEjI2IKKyNkZWZp
bmUgVFJBQ0VfRVZFTlRfTUFLRV9VTklRVUVfSURFTlRJRklFUjIoYSwgYikgVFJBQ0VfRVZFTlRf
TUFLRV9VTklRVUVfSURFTlRJRklFUjMoYSwgYikKKyNkZWZpbmUgVFJBQ0VfRVZFTlRfTUFLRV9V
TklRVUVfSURFTlRJRklFUihuYW1lX3ByZWZpeCkgVFJBQ0VfRVZFTlRfTUFLRV9VTklRVUVfSURF
TlRJRklFUjIobmFtZV9wcmVmaXgsIF9fTElORV9fKQogCisvLyBJc3N1ZXMgUGxhdGZvcm1TdXBw
b3J0Ojp0cmFjZUV2ZW50QmVnaW4gYW5kIHRyYWNlRXZlbnRFbmQgY2FsbHMgZm9yIHRoZSBlbmNs
b3Npbmcgc2NvcGUKKyNkZWZpbmUgVFJBQ0VfRVZFTlQobmFtZSwgaWQsIGV4dHJhKSBXZWJDb3Jl
OjppbnRlcm5hbDo6U2NvcGVUcmFjZXIgVFJBQ0VfRVZFTlRfTUFLRV9VTklRVUVfSURFTlRJRklF
UihfX3RyYWNlRXZlbnRTY29wZSkobmFtZSwgaWQsIGV4dHJhKTsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1uYW1lc3BhY2UgVHJhY2VFdmVudCB7Ci0KLS8vIFNwZWNpZnkgdGhlc2UgdmFsdWVz
IHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgYXJndW1lbnQgb2YgYWRkVHJhY2VFdmVudCBpcyBub3QK
LS8vIHVzZWQuCi1jb25zdCBpbnQgemVyb051bUFyZ3MgPSAwOwotY29uc3QgaW50IG5vVGhyZXNo
b2xkQmVnaW5JZCA9IC0xOwotY29uc3QgbG9uZyBsb25nIG5vVGhyZXNob2xkVmFsdWUgPSAwOwot
Y29uc3QgdW5zaWduZWQgbG9uZyBsb25nIG5vRXZlbnRJZCA9IDA7CituYW1lc3BhY2UgaW50ZXJu
YWwgewogCi0vLyBUcmFjZUlEIGVuY2Fwc3VsYXRlcyBhbiBJRCB0aGF0IGNhbiBlaXRoZXIgYmUg
YW4gaW50ZWdlciBvciBwb2ludGVyLiBQb2ludGVycwotLy8gYXJlIG1hbmdsZWQgd2l0aCB0aGUg
UHJvY2VzcyBJRCBzbyB0aGF0IHRoZXkgYXJlIHVubGlrZWx5IHRvIGNvbGxpZGUgd2hlbiB0aGUK
LS8vIHNhbWUgcG9pbnRlciBpcyB1c2VkIG9uIGRpZmZlcmVudCBwcm9jZXNzZXMuCi1jbGFzcyBU
cmFjZUlEIHsKKy8vIFVzZWQgYnkgVFJBQ0VfRVZFTlQgbWFjcm8uIERvIG5vdCB1c2UgZGlyZWN0
bHkuCitjbGFzcyBTY29wZVRyYWNlciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgVHJhY2VJRChj
b25zdCB2b2lkKiBpZCwgdW5zaWduZWQgY2hhciogZmxhZ3MpIDoKLSAgICAgICAgbV9kYXRhKHN0
YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4ocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBs
b25nPihpZCkpKQotICAgIHsKLSAgICAgICAgKmZsYWdzIHw9IFRSQUNFX0VWRU5UX0ZMQUdfTUFO
R0xFX0lEOwotICAgIH0KLSAgICBleHBsaWNpdCBUcmFjZUlEKHVuc2lnbmVkIGxvbmcgbG9uZyBp
ZCwgdW5zaWduZWQgY2hhciogZmxhZ3MpIDogbV9kYXRhKGlkKSB7ICh2b2lkKWZsYWdzOyB9Ci0g
ICAgZXhwbGljaXQgVHJhY2VJRCh1bnNpZ25lZCBsb25nIGlkLCB1bnNpZ25lZCBjaGFyKiBmbGFn
cykgOiBtX2RhdGEoaWQpIHsgKHZvaWQpZmxhZ3M7IH0KLSAgICBleHBsaWNpdCBUcmFjZUlEKHVu
c2lnbmVkIGludCBpZCwgdW5zaWduZWQgY2hhciogZmxhZ3MpIDogbV9kYXRhKGlkKSB7ICh2b2lk
KWZsYWdzOyB9Ci0gICAgZXhwbGljaXQgVHJhY2VJRCh1bnNpZ25lZCBzaG9ydCBpZCwgdW5zaWdu
ZWQgY2hhciogZmxhZ3MpIDogbV9kYXRhKGlkKSB7ICh2b2lkKWZsYWdzOyB9Ci0gICAgZXhwbGlj
aXQgVHJhY2VJRCh1bnNpZ25lZCBjaGFyIGlkLCB1bnNpZ25lZCBjaGFyKiBmbGFncykgOiBtX2Rh
dGEoaWQpIHsgKHZvaWQpZmxhZ3M7IH0KLSAgICBleHBsaWNpdCBUcmFjZUlEKGxvbmcgbG9uZyBp
ZCwgdW5zaWduZWQgY2hhciogZmxhZ3MpIDoKLSAgICAgICAgbV9kYXRhKHN0YXRpY19jYXN0PHVu
c2lnbmVkIGxvbmcgbG9uZz4oaWQpKSB7ICh2b2lkKWZsYWdzOyB9Ci0gICAgZXhwbGljaXQgVHJh
Y2VJRChsb25nIGlkLCB1bnNpZ25lZCBjaGFyKiBmbGFncykgOgotICAgICAgICBtX2RhdGEoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihpZCkpIHsgKHZvaWQpZmxhZ3M7IH0KLSAgICBl
eHBsaWNpdCBUcmFjZUlEKGludCBpZCwgdW5zaWduZWQgY2hhciogZmxhZ3MpIDoKLSAgICAgICAg
bV9kYXRhKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4oaWQpKSB7ICh2b2lkKWZsYWdz
OyB9Ci0gICAgZXhwbGljaXQgVHJhY2VJRChzaG9ydCBpZCwgdW5zaWduZWQgY2hhciogZmxhZ3Mp
IDoKLSAgICAgICAgbV9kYXRhKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4oaWQpKSB7
ICh2b2lkKWZsYWdzOyB9Ci0gICAgZXhwbGljaXQgVHJhY2VJRChzaWduZWQgY2hhciBpZCwgdW5z
aWduZWQgY2hhciogZmxhZ3MpIDoKLSAgICAgICAgbV9kYXRhKHN0YXRpY19jYXN0PHVuc2lnbmVk
IGxvbmcgbG9uZz4oaWQpKSB7ICh2b2lkKWZsYWdzOyB9Ci0KLSAgICB1bnNpZ25lZCBsb25nIGxv
bmcgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQotCi1wcml2YXRlOgotICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBtX2RhdGE7Ci19OwotCi0vLyBTaW1wbGUgdW5pb24gdG8gc3RvcmUgdmFy
aW91cyB0eXBlcyBhcyB1bnNpZ25lZCBsb25nIGxvbmcuCi11bmlvbiBUcmFjZVZhbHVlVW5pb24g
ewotICAgIGJvb2wgbV9ib29sOwotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3VpbnQ7Ci0gICAg
bG9uZyBsb25nIG1faW50OwotICAgIGRvdWJsZSBtX2RvdWJsZTsKLSAgICBjb25zdCB2b2lkKiBt
X3BvaW50ZXI7Ci0gICAgY29uc3QgY2hhciogbV9zdHJpbmc7Ci19OworICAgIFNjb3BlVHJhY2Vy
KGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQqLCBjb25zdCBjaGFyKiBleHRyYSk7CisgICAgflNjb3Bl
VHJhY2VyKCk7CiAKLS8vIFNpbXBsZSBjb250YWluZXIgZm9yIGNvbnN0IGNoYXIqIHRoYXQgc2hv
dWxkIGJlIGNvcGllZCBpbnN0ZWFkIG9mIHJldGFpbmVkLgotY2xhc3MgVHJhY2VTdHJpbmdXaXRo
Q29weSB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgVHJhY2VTdHJpbmdXaXRoQ29weShjb25zdCBj
aGFyKiBzdHIpIDogbV9zdHIoc3RyKSB7IH0KLSAgICBvcGVyYXRvciBjb25zdCBjaGFyKiAoKSBj
b25zdCB7IHJldHVybiBtX3N0cjsgfQogcHJpdmF0ZToKLSAgICBjb25zdCBjaGFyKiBtX3N0cjsK
KyAgICBjb25zdCBjaGFyKiBtX25hbWU7CisgICAgdm9pZCogbV9pZDsKKyAgICBPd25BcnJheVB0
cjxjaGFyPiBtX2V4dHJhOwogfTsKIAotLy8gRGVmaW5lIHNldFRyYWNlVmFsdWUgZm9yIGVhY2gg
YWxsb3dlZCB0eXBlLiBJdCBzdG9yZXMgdGhlIHR5cGUgYW5kCi0vLyB2YWx1ZSBpbiB0aGUgcmV0
dXJuIGFyZ3VtZW50cy4gVGhpcyBhbGxvd3MgdGhpcyBBUEkgdG8gYXZvaWQgZGVjbGFyaW5nIGFu
eQotLy8gc3RydWN0dXJlcyBzbyB0aGF0IGl0IGlzIHBvcnRhYmxlIHRvIHRoaXJkX3BhcnR5IGxp
YnJhcmllcy4KLSNkZWZpbmUgSU5URVJOQUxfREVDTEFSRV9TRVRfVFJBQ0VfVkFMVUUoYWN0dWFs
X3R5cGUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pb25f
bWVtYmVyLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVl
X3R5cGVfaWQpIFwKLSAgICBzdGF0aWMgaW5saW5lIHZvaWQgc2V0VHJhY2VWYWx1ZShhY3R1YWxf
dHlwZSBhcmcsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBjaGFyKiB0eXBlLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgbG9uZyBsb25nKiB2YWx1ZSkgeyBcCi0gICAgICAgIFRyYWNlVmFsdWVVbmlvbiB0eXBl
VmFsdWU7IFwKLSAgICAgICAgdHlwZVZhbHVlLnVuaW9uX21lbWJlciA9IGFyZzsgXAotICAgICAg
ICAqdHlwZSA9IHZhbHVlX3R5cGVfaWQ7IFwKLSAgICAgICAgKnZhbHVlID0gdHlwZVZhbHVlLm1f
dWludDsgXAotICAgIH0KLS8vIFNpbXBsZXIgZm9ybSBmb3IgaW50IHR5cGVzIHRoYXQgY2FuIGJl
IHNhZmVseSBjYXN0ZWQuCi0jZGVmaW5lIElOVEVSTkFMX0RFQ0xBUkVfU0VUX1RSQUNFX1ZBTFVF
X0lOVChhY3R1YWxfdHlwZSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFsdWVfdHlwZV9pZCkgXAotICAgIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRUcmFj
ZVZhbHVlKGFjdHVhbF90eXBlIGFyZywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGNoYXIqIHR5cGUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcqIHZhbHVlKSB7IFwKLSAgICAgICAgKnR5cGUg
PSB2YWx1ZV90eXBlX2lkOyBcCi0gICAgICAgICp2YWx1ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
IGxvbmcgbG9uZz4oYXJnKTsgXAotICAgIH0KLQotSU5URVJOQUxfREVDTEFSRV9TRVRfVFJBQ0Vf
VkFMVUVfSU5UKHVuc2lnbmVkIGxvbmcgbG9uZywgVFJBQ0VfVkFMVUVfVFlQRV9VSU5UKQotSU5U
RVJOQUxfREVDTEFSRV9TRVRfVFJBQ0VfVkFMVUVfSU5UKHVuc2lnbmVkIGludCwgVFJBQ0VfVkFM
VUVfVFlQRV9VSU5UKQotSU5URVJOQUxfREVDTEFSRV9TRVRfVFJBQ0VfVkFMVUVfSU5UKHVuc2ln
bmVkIHNob3J0LCBUUkFDRV9WQUxVRV9UWVBFX1VJTlQpCi1JTlRFUk5BTF9ERUNMQVJFX1NFVF9U
UkFDRV9WQUxVRV9JTlQodW5zaWduZWQgY2hhciwgVFJBQ0VfVkFMVUVfVFlQRV9VSU5UKQotSU5U
RVJOQUxfREVDTEFSRV9TRVRfVFJBQ0VfVkFMVUVfSU5UKGxvbmcgbG9uZywgVFJBQ0VfVkFMVUVf
VFlQRV9JTlQpCi1JTlRFUk5BTF9ERUNMQVJFX1NFVF9UUkFDRV9WQUxVRV9JTlQoaW50LCBUUkFD
RV9WQUxVRV9UWVBFX0lOVCkKLUlOVEVSTkFMX0RFQ0xBUkVfU0VUX1RSQUNFX1ZBTFVFX0lOVChz
aG9ydCwgVFJBQ0VfVkFMVUVfVFlQRV9JTlQpCi1JTlRFUk5BTF9ERUNMQVJFX1NFVF9UUkFDRV9W
QUxVRV9JTlQoc2lnbmVkIGNoYXIsIFRSQUNFX1ZBTFVFX1RZUEVfSU5UKQotSU5URVJOQUxfREVD
TEFSRV9TRVRfVFJBQ0VfVkFMVUUoYm9vbCwgbV9ib29sLCBUUkFDRV9WQUxVRV9UWVBFX0JPT0wp
Ci1JTlRFUk5BTF9ERUNMQVJFX1NFVF9UUkFDRV9WQUxVRShkb3VibGUsIG1fZG91YmxlLCBUUkFD
RV9WQUxVRV9UWVBFX0RPVUJMRSkKLUlOVEVSTkFMX0RFQ0xBUkVfU0VUX1RSQUNFX1ZBTFVFKGNv
bnN0IHZvaWQqLCBtX3BvaW50ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU
UkFDRV9WQUxVRV9UWVBFX1BPSU5URVIpCi1JTlRFUk5BTF9ERUNMQVJFX1NFVF9UUkFDRV9WQUxV
RShjb25zdCBjaGFyKiwgbV9zdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUUkFDRV9WQUxVRV9UWVBFX1NUUklORykKLUlOVEVSTkFMX0RFQ0xBUkVfU0VUX1RSQUNFX1ZB
TFVFKGNvbnN0IFRyYWNlU3RyaW5nV2l0aENvcHkmLCBtX3N0cmluZywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRSQUNFX1ZBTFVFX1RZUEVfQ09QWV9TVFJJTkcpCi0KLSN1bmRl
ZiBJTlRFUk5BTF9ERUNMQVJFX1NFVF9UUkFDRV9WQUxVRQotI3VuZGVmIElOVEVSTkFMX0RFQ0xB
UkVfU0VUX1RSQUNFX1ZBTFVFX0lOVAotCi0vLyBXVEY6OlN0cmluZyB2ZXJzaW9uIG9mIHNldFRy
YWNlVmFsdWUgc28gdGhhdCB0cmFjZSBhcmd1bWVudHMgY2FuIGJlIHN0cmluZ3MuCi1zdGF0aWMg
aW5saW5lIHZvaWQgc2V0VHJhY2VWYWx1ZShjb25zdCBXVEY6OkNTdHJpbmcmIGFyZywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIqIHR5cGUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcqIHZhbHVlKSB7Ci0g
ICAgVHJhY2VWYWx1ZVVuaW9uIHR5cGVWYWx1ZTsKLSAgICB0eXBlVmFsdWUubV9zdHJpbmcgPSBh
cmcuZGF0YSgpOwotICAgICp0eXBlID0gVFJBQ0VfVkFMVUVfVFlQRV9DT1BZX1NUUklORzsKLSAg
ICAqdmFsdWUgPSB0eXBlVmFsdWUubV91aW50OworaW5saW5lIFNjb3BlVHJhY2VyOjpTY29wZVRy
YWNlcihjb25zdCBjaGFyKiBuYW1lLCB2b2lkKiBpZCwgY29uc3QgY2hhciogZXh0cmEpCisgICAg
OiBtX25hbWUobmFtZSkKKyAgICAsIG1faWQoaWQpCit7CisgICAgUGxhdGZvcm1TdXBwb3J0Ojp0
cmFjZUV2ZW50QmVnaW4obmFtZSwgaWQsIGV4dHJhKTsgXAorICAgIGlmIChleHRyYSAmJiBQbGF0
Zm9ybVN1cHBvcnQ6OmlzVHJhY2VFdmVudEVuYWJsZWQoKSkKKyAgICAgICAgbV9leHRyYSA9IGFk
b3B0QXJyYXlQdHIoc3RyZHVwKGV4dHJhKSk7CiB9CiAKLS8vIFRoZXNlIGFkZFRyYWNlRXZlbnQg
dGVtcGxhdGUgZnVuY3Rpb25zIGFyZSBkZWZpbmVkIGhlcmUgaW5zdGVhZCBvZiBpbiB0aGUKLS8v
IG1hY3JvLCBiZWNhdXNlIHRoZSBhcmcgdmFsdWVzIGNvdWxkIGJlIHRlbXBvcmFyeSBzdHJpbmcg
b2JqZWN0cy4gSW4gb3JkZXIgdG8KLS8vIHN0b3JlIHBvaW50ZXJzIHRvIHRoZSBpbnRlcm5hbCBj
X3N0ciBhbmQgcGFzcyB0aHJvdWdoIHRvIHRoZSB0cmFjaW5nIEFQSSwgdGhlCi0vLyBhcmcgdmFs
dWVzIG11c3QgbGl2ZSB0aHJvdWdob3V0IHRoZXNlIHByb2NlZHVyZXMuCi0KLXN0YXRpYyBpbmxp
bmUgaW50IGFkZFRyYWNlRXZlbnQoY2hhciBwaGFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogY2F0ZWdvcnlFbmFibGVkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBuYW1lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgZmxhZ3MpIHsKLSAgICByZXR1cm4gVFJBQ0Vf
RVZFTlRfQVBJX0FERF9UUkFDRV9FVkVOVCgKLSAgICAgICAgcGhhc2UsIGNhdGVnb3J5RW5hYmxl
ZCwgbmFtZSwgaWQsCi0gICAgICAgIHplcm9OdW1BcmdzLCAwLCAwLCAwLAotICAgICAgICBub1Ro
cmVzaG9sZEJlZ2luSWQsIG5vVGhyZXNob2xkVmFsdWUsIGZsYWdzKTsKLX0KLQotdGVtcGxhdGU8
Y2xhc3MgQVJHMV9UWVBFPgotc3RhdGljIGlubGluZSBpbnQgYWRkVHJhY2VFdmVudChjaGFyIHBo
YXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFy
KiBjYXRlZ29yeUVuYWJsZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hh
ciBmbGFncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogYXJn
MU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFSRzFfVFlQRSYg
YXJnMVZhbCkgewotICAgIGNvbnN0IGludCBudW1BcmdzID0gMTsKLSAgICB1bnNpZ25lZCBjaGFy
IGFyZ1R5cGVzWzFdOwotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhcmdWYWx1ZXNbMV07Ci0gICAg
c2V0VHJhY2VWYWx1ZShhcmcxVmFsLCAmYXJnVHlwZXNbMF0sICZhcmdWYWx1ZXNbMF0pOwotICAg
IHJldHVybiBUUkFDRV9FVkVOVF9BUElfQUREX1RSQUNFX0VWRU5UKAotICAgICAgICBwaGFzZSwg
Y2F0ZWdvcnlFbmFibGVkLCBuYW1lLCBpZCwKLSAgICAgICAgbnVtQXJncywgJmFyZzFOYW1lLCBh
cmdUeXBlcywgYXJnVmFsdWVzLAotICAgICAgICBub1RocmVzaG9sZEJlZ2luSWQsIG5vVGhyZXNo
b2xkVmFsdWUsIGZsYWdzKTsKK2lubGluZSBTY29wZVRyYWNlcjo6flNjb3BlVHJhY2VyKCkKK3sK
KyAgICBQbGF0Zm9ybVN1cHBvcnQ6OnRyYWNlRXZlbnRFbmQobV9uYW1lLCBtX2lkLCBtX2V4dHJh
LmdldCgpKTsKIH0KIAotdGVtcGxhdGU8Y2xhc3MgQVJHMV9UWVBFLCBjbGFzcyBBUkcyX1RZUEU+
Ci1zdGF0aWMgaW5saW5lIGludCBhZGRUcmFjZUV2ZW50KGNoYXIgcGhhc2UsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGNhdGVnb3J5RW5hYmxl
ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGlkLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBhcmcxTmFtZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQVJHMV9UWVBFJiBhcmcxVmFsLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBhcmcyTmFtZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQVJHMl9UWVBFJiBhcmcyVmFsKSB7Ci0gICAg
Y29uc3QgaW50IG51bUFyZ3MgPSAyOwotICAgIGNvbnN0IGNoYXIqIGFyZ05hbWVzWzJdID0geyBh
cmcxTmFtZSwgYXJnMk5hbWUgfTsKLSAgICB1bnNpZ25lZCBjaGFyIGFyZ1R5cGVzWzJdOwotICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBhcmdWYWx1ZXNbMl07Ci0gICAgc2V0VHJhY2VWYWx1ZShhcmcx
VmFsLCAmYXJnVHlwZXNbMF0sICZhcmdWYWx1ZXNbMF0pOwotICAgIHNldFRyYWNlVmFsdWUoYXJn
MlZhbCwgJmFyZ1R5cGVzWzFdLCAmYXJnVmFsdWVzWzFdKTsKLSAgICByZXR1cm4gVFJBQ0VfRVZF
TlRfQVBJX0FERF9UUkFDRV9FVkVOVCgKLSAgICAgICAgcGhhc2UsIGNhdGVnb3J5RW5hYmxlZCwg
bmFtZSwgaWQsCi0gICAgICAgIG51bUFyZ3MsIGFyZ05hbWVzLCBhcmdUeXBlcywgYXJnVmFsdWVz
LAotICAgICAgICBub1RocmVzaG9sZEJlZ2luSWQsIG5vVGhyZXNob2xkVmFsdWUsIGZsYWdzKTsK
LX0KLQotLy8gVXNlZCBieSBUUkFDRV9FVkVOVHggbWFjcm8uIERvIG5vdCB1c2UgZGlyZWN0bHku
Ci1jbGFzcyBUcmFjZUVuZE9uU2NvcGVDbG9zZSB7Ci1wdWJsaWM6Ci0gICAgLy8gTm90ZTogbWVt
YmVycyBvZiBtX2RhdGEgaW50ZW50aW9uYWxseSBsZWZ0IHVuaW5pdGlhbGl6ZWQuIFNlZSBpbml0
aWFsaXplLgotICAgIFRyYWNlRW5kT25TY29wZUNsb3NlKCkgOiBtX3BkYXRhKDApIHsgfQotICAg
IH5UcmFjZUVuZE9uU2NvcGVDbG9zZSgpCi0gICAgewotICAgICAgICBpZiAobV9wZGF0YSkKLSAg
ICAgICAgICAgIGFkZEV2ZW50SWZFbmFibGVkKCk7Ci0gICAgfQotCi0gICAgdm9pZCBpbml0aWFs
aXplKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGNhdGVnb3J5RW5hYmxlZCwKLSAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciogbmFtZSkKLSAgICB7Ci0gICAgICAgIG1fZGF0YS5jYXRlZ29yeUVu
YWJsZWQgPSBjYXRlZ29yeUVuYWJsZWQ7Ci0gICAgICAgIG1fZGF0YS5uYW1lID0gbmFtZTsKLSAg
ICAgICAgbV9wZGF0YSA9ICZtX2RhdGE7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIC8vIEFkZCB0
aGUgZW5kIGV2ZW50IGlmIHRoZSBjYXRlZ29yeSBpcyBzdGlsbCBlbmFibGVkLgotICAgIHZvaWQg
YWRkRXZlbnRJZkVuYWJsZWQoKQotICAgIHsKLSAgICAgICAgLy8gT25seSBjYWxsZWQgd2hlbiBt
X3BkYXRhIGlzIG5vbi1udWxsLgotICAgICAgICBpZiAoKm1fcGRhdGEtPmNhdGVnb3J5RW5hYmxl
ZCkgewotICAgICAgICAgICAgVFJBQ0VfRVZFTlRfQVBJX0FERF9UUkFDRV9FVkVOVCgKLSAgICAg
ICAgICAgICAgICBUUkFDRV9FVkVOVF9QSEFTRV9FTkQsCi0gICAgICAgICAgICAgICAgbV9wZGF0
YS0+Y2F0ZWdvcnlFbmFibGVkLAotICAgICAgICAgICAgICAgIG1fcGRhdGEtPm5hbWUsIG5vRXZl
bnRJZCwKLSAgICAgICAgICAgICAgICB6ZXJvTnVtQXJncywgMCwgMCwgMCwKLSAgICAgICAgICAg
ICAgICBub1RocmVzaG9sZEJlZ2luSWQsIG5vVGhyZXNob2xkVmFsdWUsIFRSQUNFX0VWRU5UX0ZM
QUdfTk9ORSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBUaGlzIERhdGEgc3RydWN0IHdv
cmthcm91bmQgaXMgdG8gYXZvaWQgaW5pdGlhbGl6aW5nIGFsbCB0aGUgbWVtYmVycwotICAgIC8v
IGluIERhdGEgZHVyaW5nIGNvbnN0cnVjdGlvbiBvZiB0aGlzIG9iamVjdCwgc2luY2UgdGhpcyBv
YmplY3QgaXMgYWx3YXlzCi0gICAgLy8gY29uc3RydWN0ZWQsIGV2ZW4gd2hlbiB0cmFjaW5nIGlz
IGRpc2FibGVkLiBJZiB0aGUgbWVtYmVycyBvZiBEYXRhIHdlcmUKLSAgICAvLyBtZW1iZXJzIG9m
IHRoaXMgY2xhc3MgaW5zdGVhZCwgY29tcGlsZXIgd2FybmluZ3Mgb2NjdXIgYWJvdXQgcG90ZW50
aWFsCi0gICAgLy8gdW5pbml0aWFsaXplZCBhY2Nlc3Nlcy4KLSAgICBzdHJ1Y3QgRGF0YSB7Ci0g
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGNhdGVnb3J5RW5hYmxlZDsKLSAgICAgICAgY29u
c3QgY2hhciogbmFtZTsKLSAgICB9OwotICAgIERhdGEqIG1fcGRhdGE7Ci0gICAgRGF0YSBtX2Rh
dGE7Ci19OwotCi0vLyBVc2VkIGJ5IFRSQUNFX0VWRU5UeCBtYWNyby4gRG8gbm90IHVzZSBkaXJl
Y3RseS4KLWNsYXNzIFRyYWNlRW5kT25TY29wZUNsb3NlVGhyZXNob2xkIHsKLXB1YmxpYzoKLSAg
ICAvLyBOb3RlOiBtZW1iZXJzIG9mIG1fZGF0YSBpbnRlbnRpb25hbGx5IGxlZnQgdW5pbml0aWFs
aXplZC4gU2VlIGluaXRpYWxpemUuCi0gICAgVHJhY2VFbmRPblNjb3BlQ2xvc2VUaHJlc2hvbGQo
KSA6IG1fcGRhdGEoMCkgeyB9Ci0gICAgflRyYWNlRW5kT25TY29wZUNsb3NlVGhyZXNob2xkKCkK
LSAgICB7Ci0gICAgICAgIGlmIChtX3BkYXRhKQotICAgICAgICAgICAgYWRkRXZlbnRJZkVuYWJs
ZWQoKTsKLSAgICB9Ci0KLSAgICAvLyBDYWxsZWQgYnkgbWFjcm9zIG9ubHkgd2hlbiB0cmFjaW5n
IGlzIGVuYWJsZWQgYXQgdGhlIHBvaW50IHdoZW4gdGhlIGJlZ2luCi0gICAgLy8gZXZlbnQgaXMg
YWRkZWQuCi0gICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGNhdGVnb3J5
RW5hYmxlZCwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSwKLSAgICAgICAg
ICAgICAgICAgICAgaW50IHRocmVzaG9sZEJlZ2luSUQsCi0gICAgICAgICAgICAgICAgICAgIGxv
bmcgbG9uZyB0aHJlc2hvbGQpCi0gICAgewotICAgICAgICBtX2RhdGEuY2F0ZWdvcnlFbmFibGVk
ID0gY2F0ZWdvcnlFbmFibGVkOwotICAgICAgICBtX2RhdGEubmFtZSA9IG5hbWU7Ci0gICAgICAg
IG1fZGF0YS50aHJlc2hvbGRCZWdpbklEID0gdGhyZXNob2xkQmVnaW5JRDsKLSAgICAgICAgbV9k
YXRhLnRocmVzaG9sZCA9IHRocmVzaG9sZDsKLSAgICAgICAgbV9wZGF0YSA9ICZtX2RhdGE7Ci0g
ICAgfQotCi1wcml2YXRlOgotICAgIC8vIEFkZCB0aGUgZW5kIGV2ZW50IGlmIHRoZSBjYXRlZ29y
eSBpcyBzdGlsbCBlbmFibGVkLgotICAgIHZvaWQgYWRkRXZlbnRJZkVuYWJsZWQoKQotICAgIHsK
LSAgICAgICAgLy8gT25seSBjYWxsZWQgd2hlbiBtX3BkYXRhIGlzIG5vbi1udWxsLgotICAgICAg
ICBpZiAoKm1fcGRhdGEtPmNhdGVnb3J5RW5hYmxlZCkgewotICAgICAgICAgICAgVFJBQ0VfRVZF
TlRfQVBJX0FERF9UUkFDRV9FVkVOVCgKLSAgICAgICAgICAgICAgICBUUkFDRV9FVkVOVF9QSEFT
RV9FTkQsCi0gICAgICAgICAgICAgICAgbV9wZGF0YS0+Y2F0ZWdvcnlFbmFibGVkLAotICAgICAg
ICAgICAgICAgIG1fcGRhdGEtPm5hbWUsIG5vRXZlbnRJZCwKLSAgICAgICAgICAgICAgICB6ZXJv
TnVtQXJncywgMCwgMCwgMCwKLSAgICAgICAgICAgICAgICBtX3BkYXRhLT50aHJlc2hvbGRCZWdp
bklELCBtX3BkYXRhLT50aHJlc2hvbGQsCi0gICAgICAgICAgICAgICAgVFJBQ0VfRVZFTlRfRkxB
R19OT05FKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIFRoaXMgRGF0YSBzdHJ1Y3Qgd29y
a2Fyb3VuZCBpcyB0byBhdm9pZCBpbml0aWFsaXppbmcgYWxsIHRoZSBtZW1iZXJzCi0gICAgLy8g
aW4gRGF0YSBkdXJpbmcgY29uc3RydWN0aW9uIG9mIHRoaXMgb2JqZWN0LCBzaW5jZSB0aGlzIG9i
amVjdCBpcyBhbHdheXMKLSAgICAvLyBjb25zdHJ1Y3RlZCwgZXZlbiB3aGVuIHRyYWNpbmcgaXMg
ZGlzYWJsZWQuIElmIHRoZSBtZW1iZXJzIG9mIERhdGEgd2VyZQotICAgIC8vIG1lbWJlcnMgb2Yg
dGhpcyBjbGFzcyBpbnN0ZWFkLCBjb21waWxlciB3YXJuaW5ncyBvY2N1ciBhYm91dCBwb3RlbnRp
YWwKLSAgICAvLyB1bmluaXRpYWxpemVkIGFjY2Vzc2VzLgotICAgIHN0cnVjdCBEYXRhIHsKLSAg
ICAgICAgbG9uZyBsb25nIHRocmVzaG9sZDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciog
Y2F0ZWdvcnlFbmFibGVkOwotICAgICAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgICAgICBpbnQg
dGhyZXNob2xkQmVnaW5JRDsKLSAgICB9OwotICAgIERhdGEqIG1fcGRhdGE7Ci0gICAgRGF0YSBt
X2RhdGE7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBUcmFjZUV2ZW50Cit9IC8vIG5hbWVzcGFjZSBp
bnRlcm5hbAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBw
b3J0LmgKaW5kZXggODA1YzVlNDQ1YjE4N2VmZjg4MTI1Yzk4ZWEzYzlmMmE4NGZhYTY5My4uMGFj
YzllYWZhZjg5MDcxZTZlZWQyYTNmOTFhZGI0ZTUwMDliNDRlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZv
cm1TdXBwb3J0LmgKQEAgLTIzOCw3NiArMjM4LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGVjcmVtZW50U3RhdHNDb3VudGVyKGNvbnN0IGNoYXIqIG5hbWUpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBpbmNyZW1lbnRTdGF0c0NvdW50ZXIoY29uc3QgY2hhciogbmFtZSkgeyB9CiAKLSAg
ICAvLyBUcmFjaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIC8vIEdldCBhIHBvaW50ZXIgdG8gdGhlIGVuYWJsZWQg
c3RhdGUgb2YgdGhlIGdpdmVuIHRyYWNlIGNhdGVnb3J5LiBUaGUKLSAgICAvLyBlbWJlZGRlciBj
YW4gZHluYW1pY2FsbHkgY2hhbmdlIHRoZSBlbmFibGVkIHN0YXRlIGFzIHRyYWNlIGV2ZW50Ci0g
ICAgLy8gcmVjb3JkaW5nIGlzIHN0YXJ0ZWQgYW5kIHN0b3BwZWQgYnkgdGhlIGFwcGxpY2F0aW9u
LiBPbmx5IGxvbmctbGl2ZWQKLSAgICAvLyBsaXRlcmFsIHN0cmluZ3Mgc2hvdWxkIGJlIGdpdmVu
IGFzIHRoZSBjYXRlZ29yeSBuYW1lLiBUaGUgaW1wbGVtZW50YXRpb24KLSAgICAvLyBleHBlY3Rz
IHRoZSByZXR1cm5lZCBwb2ludGVyIHRvIGJlIGhlbGQgcGVybWFuZW50bHkgaW4gYSBsb2NhbCBz
dGF0aWMuIElmCi0gICAgLy8gdGhlIHVuc2lnbmVkIGNoYXIgaXMgbm9uLXplcm8sIHRyYWNpbmcg
aXMgZW5hYmxlZC4gSWYgdHJhY2luZyBpcyBlbmFibGVkLAotICAgIC8vIGFkZFRyYWNlRXZlbnQg
aXMgZXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGJ5IHRoZSB0cmFjZSBldmVudCBtYWNyb3MuCi0gICAg
dmlydHVhbCBjb25zdCB1bnNpZ25lZCBjaGFyKiBnZXRUcmFjZUNhdGVnb3J5RW5hYmxlZEZsYWco
Y29uc3QgY2hhciogY2F0ZWdvcnlOYW1lKSB7IHJldHVybiAwOyB9Ci0gICAgLy8gQWRkIGEgdHJh
Y2UgZXZlbnQgdG8gdGhlIHBsYXRmb3JtIHRyYWNpbmcgc3lzdGVtLiBEZXBlbmRpbmcgb24gdGhl
IGFjdHVhbAotICAgIC8vIGVuYWJsZWQgc3RhdGUsIHRoaXMgZXZlbnQgbWF5IGJlIHJlY29yZGVk
IG9yIGRyb3BwZWQuIFJldHVybnMKLSAgICAvLyB0aHJlc2hvbGRCZWdpbklkIGZvciB1c2UgaW4g
YSBjb3JyZXNwb25kaW5nIGVuZCBhZGRUcmFjZUV2ZW50IGNhbGwuCi0gICAgLy8gLSBwaGFzZSBz
cGVjaWZpZXMgdGhlIHR5cGUgb2YgZXZlbnQ6Ci0gICAgLy8gICAtIEJFR0lOICgnQicpOiBNYXJr
cyB0aGUgYmVnaW5uaW5nIG9mIGEgc2NvcGVkIGV2ZW50LgotICAgIC8vICAgLSBFTkQgKCdFJyk6
IE1hcmtzIHRoZSBlbmQgb2YgYSBzY29wZWQgZXZlbnQuCi0gICAgLy8gICAtIElOU1RBTlQgKCdJ
Jyk6IFN0YW5kYWxvbmUsIGluc3RhbnRhbmVvdXMgZXZlbnQuCi0gICAgLy8gICAtIFNUQVJUICgn
UycpOiBNYXJrcyB0aGUgYmVnaW5uaW5nIG9mIGFuIGFzeW5jaHJvbm91cyBldmVudCAodGhlIGVu
ZAotICAgIC8vICAgICBldmVudCBjYW4gb2NjdXIgaW4gYSBkaWZmZXJlbnQgc2NvcGUgb3IgdGhy
ZWFkKS4gVGhlIGlkIHBhcmFtZXRlciBpcwotICAgIC8vICAgICB1c2VkIHRvIG1hdGNoIFNUQVJU
L0ZJTklTSCBwYWlycy4KLSAgICAvLyAgIC0gRklOSVNIICgnRicpOiBNYXJrcyB0aGUgZW5kIG9m
IGFuIGFzeW5jaHJvbm91cyBldmVudC4KLSAgICAvLyAgIC0gQ09VTlRFUiAoJ0MnKTogVXNlZCB0
byB0cmFjZSBpbnRlZ2VyIHF1YW50aXRpZXMgdGhhdCBjaGFuZ2Ugb3ZlcgotICAgIC8vICAgICB0
aW1lLiBUaGUgYXJndW1lbnQgdmFsdWVzIGFyZSBleHBlY3RlZCB0byBiZSBvZiB0eXBlIGludC4K
LSAgICAvLyAgIC0gTUVUQURBVEEgKCdNJyk6IFJlc2VydmVkIGZvciBpbnRlcm5hbCB1c2UuCi0g
ICAgLy8gLSBjYXRlZ29yeUVuYWJsZWQgaXMgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgZ2V0VHJh
Y2VDYXRlZ29yeUVuYWJsZWRGbGFnLgotICAgIC8vIC0gbmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUg
ZXZlbnQuIEFsc28gdXNlZCB0byBtYXRjaCBCRUdJTi9FTkQgYW5kCi0gICAgLy8gICBTVEFSVC9G
SU5JU0ggcGFpcnMuCi0gICAgLy8gLSBpZCBvcHRpb25hbGx5IGFsbG93cyBldmVudHMgb2YgdGhl
IHNhbWUgbmFtZSB0byBiZSBkaXN0aW5ndWlzaGVkIGZyb20KLSAgICAvLyAgIGVhY2ggb3RoZXIu
IEZvciBleGFtcGxlLCB0byB0cmFjZSB0aGUgY29uc3V0cnVjdGlvbiBhbmQgZGVzdHJ1Y3Rpb24g
b2YKLSAgICAvLyAgIG9iamVjdHMsIHNwZWNpZnkgdGhlIHBvaW50ZXIgYXMgdGhlIGlkIHBhcmFt
ZXRlci4KLSAgICAvLyAtIG51bUFyZ3Mgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZWxlbWVudHMg
aW4gYXJnTmFtZXMsIGFyZ1R5cGVzLCBhbmQKLSAgICAvLyAgIGFyZ1ZhbHVlcy4KLSAgICAvLyAt
IGFyZ05hbWVzIGlzIHRoZSBhcnJheSBvZiBhcmd1bWVudCBuYW1lcy4gVXNlIGxvbmctbGl2ZWQg
bGl0ZXJhbCBzdHJpbmdzCi0gICAgLy8gICBvciBzcGVjaWZ5IHRoZSBDT1BZIGZsYWcuCi0gICAg
Ly8gLSBhcmdUeXBlcyBpcyB0aGUgYXJyYXkgb2YgYXJndW1lbnQgdHlwZXM6Ci0gICAgLy8gICAt
IEJPT0wgKDEpOiBib29sCi0gICAgLy8gICAtIFVJTlQgKDIpOiB1bnNpZ25lZCBsb25nIGxvbmcK
LSAgICAvLyAgIC0gSU5UICgzKTogbG9uZyBsb25nCi0gICAgLy8gICAtIERPVUJMRSAoNCk6IGRv
dWJsZQotICAgIC8vICAgLSBQT0lOVEVSICg1KTogdm9pZCoKLSAgICAvLyAgIC0gU1RSSU5HICg2
KTogY2hhciogKGxvbmctbGl2ZWQgbnVsbC10ZXJtaW5hdGVkIGNoYXIqIHN0cmluZykKLSAgICAv
LyAgIC0gQ09QWV9TVFJJTkcgKDcpOiBjaGFyKiAodGVtcG9yYXJ5IG51bGwtdGVybWluYXRlZCBj
aGFyKiBzdHJpbmcpCi0gICAgLy8gLSBhcmdWYWx1ZXMgaXMgdGhlIGFycmF5IG9mIGFyZ3VtZW50
IHZhbHVlcy4gRWFjaCB2YWx1ZSBpcyB0aGUgdW5zaWduZWQKLSAgICAvLyAgIGxvbmcgbG9uZyBt
ZW1iZXIgb2YgYSB1bmlvbiBvZiBhbGwgc3VwcG9ydGVkIHR5cGVzLgotICAgIC8vIC0gdGhyZXNo
b2xkQmVnaW5JZCBvcHRpb25hbGx5IHNwZWNpZmllcyB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgYSBw
cmV2aW91cwotICAgIC8vICAgY2FsbCB0byBhZGRUcmFjZUV2ZW50IHdpdGggYSBCRUdJTiBwaGFz
ZS4KLSAgICAvLyAtIHRocmVzaG9sZCBpcyB1c2VkIG9uIGFuIEVORCBwaGFzZSBldmVudCBpbiBj
b25qdW5jdGlvbiB3aXRoIHRoZQotICAgIC8vICAgdGhyZXNob2xkQmVnaW5JZCBvZiBhIHByaW9y
IEJFR0lOIGV2ZW50LiBUaGUgdGhyZXNob2xkIGlzIHRoZSBtaW5pbXVtCi0gICAgLy8gICBudW1i
ZXIgb2YgbWljcm9zZWNvbmRzIHRoYXQgbXVzdCBoYXZlIHBhc3NlZCBzaW5jZSB0aGUgQkVHSU4g
ZXZlbnQuIElmCi0gICAgLy8gICBsZXNzIHRoYW4gdGhyZXNob2xkIG1pY3Jvc2Vjb25kcyBoYXMg
cGFzc2VkLCB0aGUgQkVHSU4vRU5EIHBhaXIgaXMKLSAgICAvLyAgIGRyb3BwZWQuCi0gICAgLy8g
LSBmbGFncyBjYW4gYmUgMCBvciBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nLCBPUmVkIHRv
Z2V0aGVyOgotICAgIC8vICAgLSBDT1BZICgweDEpOiB0cmVhdCBhbGwgc3RyaW5ncyAobmFtZSwg
YXJnTmFtZXMgYW5kIGFyZ1ZhbHVlcyBvZiB0eXBlCi0gICAgLy8gICAgIHN0cmluZykgYXMgdGVt
cG9yYXJ5IHNvIHRoYXQgdGhleSB3aWxsIGJlIGNvcGllZCBieSBhZGRUcmFjZUV2ZW50LgotICAg
IC8vICAgLSBIQVNfSUQgKDB4Mik6IHVzZSB0aGUgaWQgYXJndW1lbnQgdG8gdW5pcXVlbHkgaWRl
bnRpZnkgdGhlIGV2ZW50IGZvcgotICAgIC8vICAgICBtYXRjaGluZyB3aXRoIG90aGVyIGV2ZW50
cyBvZiB0aGUgc2FtZSBuYW1lLgotICAgIC8vICAgLSBNQU5HTEVfSUQgKDB4NCk6IHNwZWNpZnkg
dGhpcyBmbGFnIGlmIHRoZSBpZCBwYXJhbWV0ZXIgaXMgdGhlIHZhbHVlCi0gICAgLy8gICAgIG9m
IGEgcG9pbnRlci4KLSAgICB2aXJ0dWFsIGludCBhZGRUcmFjZUV2ZW50KAotICAgICAgICBjaGFy
IHBoYXNlLAotICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBjYXRlZ29yeUVuYWJsZWRGbGFn
LAotICAgICAgICBjb25zdCBjaGFyKiBuYW1lLAotICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcg
aWQsCi0gICAgICAgIGludCBudW1BcmdzLAotICAgICAgICBjb25zdCBjaGFyKiogYXJnTmFtZXMs
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVzLAotICAgICAgICBjb25zdCB1
bnNpZ25lZCBsb25nIGxvbmcqIGFyZ1ZhbHVlcywKLSAgICAgICAgaW50IHRocmVzaG9sZEJlZ2lu
SWQsCi0gICAgICAgIGxvbmcgbG9uZyB0aHJlc2hvbGQsCi0gICAgICAgIHVuc2lnbmVkIGNoYXIg
ZmxhZ3MpIHsgcmV0dXJuIC0xOyB9CisgICAgLy8gQW4gZXZlbnQgaXMgaWRlbnRpZmllZCBieSB0
aGUgcGFpciAobmFtZSwgaWQpLiBUaGUgZXh0cmEgcGFyYW1ldGVyCisgICAgLy8gc3BlY2lmaWVz
IGFkZGl0aW9uYWwgZGF0YSB0byBsb2cgd2l0aCB0aGUgZXZlbnQuCisgICAgdmlydHVhbCBib29s
IGlzVHJhY2VFdmVudEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCB2b2lkIHRyYWNlRXZlbnRCZWdpbihjb25zdCBjaGFyKiBuYW1lLCB2b2lkKiBpZCwgY29uc3Qg
Y2hhciogZXh0cmEpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0cmFjZUV2ZW50RW5kKGNvbnN0IGNo
YXIqIG5hbWUsIHZvaWQqIGlkLCBjb25zdCBjaGFyKiBleHRyYSkgeyB9CiAKICAgICAvLyBDYWxs
YmFja3MgZm9yIHJlcG9ydGluZyBoaXN0b2dyYW0gZGF0YS4KICAgICAvLyBDdXN0b21Db3VudHMg
aGlzdG9ncmFtIGhhcyBleHBvbmVudGlhbCBidWNrZXQgc2l6ZXMsIHNvIHRoYXQgbWluPTEsIG1h
eD0xMDAwMDAwLCBidWNrZXRDb3VudD01MCB3b3VsZCBkby4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCmluZGV4IGViMTgyZmViZmQ4YjBlMDkyM2Vj
MTRkOWE2YzA3N2NmNjFlYzI2ZTcuLjdlZDgwYmIyNDVjNGI4M2RjNzMxMTM2MjJhNjQ3ZTcyMDcz
Mjk3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3Vw
cG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0
LmNwcApAQCAtOTQ3LDI0ICs5NDcsMTkgQEAgdm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50VGhl
bWVQYXJ0KAogCiAvLyBUcmFjZSBFdmVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWNvbnN0IHVuc2lnbmVkIGNoYXIq
IFBsYXRmb3JtU3VwcG9ydDo6Z2V0VHJhY2VDYXRlZ29yeUVuYWJsZWRGbGFnKGNvbnN0IGNoYXIq
IGNhdGVnb3J5TmFtZSkKLXsKLSAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmdl
dFRyYWNlQ2F0ZWdvcnlFbmFibGVkRmxhZyhjYXRlZ29yeU5hbWUpOwotfQotaW50IFBsYXRmb3Jt
U3VwcG9ydDo6YWRkVHJhY2VFdmVudChjaGFyIHBoYXNlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBjYXRlZ29yeUVuYWJsZWRGbGFnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBuYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgaWQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1BcmdzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiogYXJnTmFtZXMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGFyZ1R5cGVz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25n
IGxvbmcqIGFyZ1ZhbHVlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
IHRocmVzaG9sZEJlZ2luSWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
bmcgbG9uZyB0aHJlc2hvbGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGNoYXIgZmxhZ3MpCi17Ci0gICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgp
LT5hZGRUcmFjZUV2ZW50KAotICAgICAgICBwaGFzZSwgY2F0ZWdvcnlFbmFibGVkRmxhZywgbmFt
ZSwgaWQsIG51bUFyZ3MsIGFyZ05hbWVzLCBhcmdUeXBlcywgYXJnVmFsdWVzLCAgdGhyZXNob2xk
QmVnaW5JZCwgdGhyZXNob2xkLCBmbGFncyk7Citib29sIFBsYXRmb3JtU3VwcG9ydDo6aXNUcmFj
ZUV2ZW50RW5hYmxlZCgpCit7CisgICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5p
c1RyYWNlRXZlbnRFbmFibGVkKCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1TdXBwb3J0Ojp0cmFjZUV2
ZW50QmVnaW4oY29uc3QgY2hhciogbmFtZSwgdm9pZCogaWQsIGNvbnN0IGNoYXIqIGV4dHJhKQor
eworICAgIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT50cmFjZUV2ZW50QmVnaW4obmFtZSwgaWQs
IGV4dHJhKTsKK30KKwordm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OnRyYWNlRXZlbnRFbmQoY29uc3Qg
Y2hhciogbmFtZSwgdm9pZCogaWQsIGNvbnN0IGNoYXIqIGV4dHJhKQoreworICAgIHdlYktpdFBs
YXRmb3JtU3VwcG9ydCgpLT50cmFjZUV2ZW50RW5kKG5hbWUsIGlkLCBleHRyYSk7CiB9CiAKIC8v
IFZpc2l0ZWQgTGlua3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
      

    </bug>

</bugzilla>