<?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>258924</bug_id>
          
          <creation_ts>2023-07-06 06:33:00 -0700</creation_ts>
          <short_desc>REGRESSION(265586@main): Introduced a memory regression</short_desc>
          <delta_ts>2023-07-06 08:22:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>258932</dependson>
          <blocked>258606</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>keith_miller</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1965324</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-07-06 06:33:00 -0700</bug_when>
    <thetext>https://commits.webkit.org/265586@main introduced a regression:
Introduced a memory regression

This is an automatic bug report generated by webkitbot. 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 fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1965326</commentid>
    <comment_count>1</comment_count>
      <attachid>466944</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-07-06 06:33:09 -0700</bug_when>
    <thetext>Created attachment 466944
REVERT of 265586@main

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 revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert 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>1965328</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-07-06 06:38:08 -0700</bug_when>
    <thetext>Committed 265800@main (422ff29f1b4c): &lt;https://commits.webkit.org/265800@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 466944.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1965329</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-07-06 06:39:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/111845963&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1965354</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-07-06 08:22:46 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 258932</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466944</attachid>
            <date>2023-07-06 06:33:09 -0700</date>
            <delta_ts>2023-07-06 06:38:09 -0700</delta_ts>
            <desc>REVERT of 265586@main</desc>
            <filename>bug-258924-20230706133307.patch</filename>
            <type>text/plain</type>
            <size>58582</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSAyNmY2NzY1Y2EzNGRjM2RlMWZmZTk3ZjI3MzZhOWIwYWRlOWFmYzBmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUaHUsIDYgSnVsIDIwMjMgMTM6MzM6MDUgKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgMjY1NTg2QG1haW4uCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjU4OTI0CgpJbnRyb2R1Y2VkIGEgbWVtb3J5IHJlZ3Jlc3Npb24K
ClJldmVydGVkIGNoYW5nZXNldDoKCiJbSlNDXSBVc2UgSlNPTlZhbHVlcyBmb3IgQnl0ZWNvZGUg
UHJvZmlsZXIgb3V0cHV0IGluc3RlYWQgb2YgSlNDJ3MgSlNPTiIKaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODYwNgpodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8y
NjU1ODZAbWFpbgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCAgICAg
ICAgICB8ICAgMSAtCiAuLi4vSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiAgfCAgIDQgLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAg
IHwgIDEzICsrLQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwICAgICAgICAgICAg
IHwgIDEyICstCiAuLi4vcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZS5oICAgICAgICAgICAgICAg
fCAgIDUgKy0KIC4uLi9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlU2VxdWVuY2UuY3BwICAgICB8
ICAyOCArKystLQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5oICAgICAg
IHwgICA0ICstCiAuLi4vcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZXMuY3BwICAgICAgICAgICAg
fCAgMjkgKystLS0KIC4uLi9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5oICAgICAgICAgICAg
ICB8ICAgMiArLQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwICAgICAgICAg
IHwgMTA5ICsrKysrKysrKysrLS0tLS0tLQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRp
b24uaCAgICAgICAgICAgIHwgICAzICstCiAuLi4vcHJvZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5
dGVjb2RlLmNwcCAgICAgfCAgMTQgKy0tCiAuLi4vcHJvZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5
dGVjb2RlLmggICAgICAgfCAgIDYgKy0KIC4uLi9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNw
cCAgICAgICAgICAgICB8ICA3MyArKysrKysrKy0tLS0KIC4uLi9wcm9maWxlci9Qcm9maWxlckRh
dGFiYXNlLmggICAgICAgICAgICAgICB8ICAxNiArKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckR1bXBlci5oICB8ICA5NSAtLS0tLS0tLS0tLS0tLS0KIC4uLi9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckV2ZW50LmNwcCB8ICAyMCArKy0tCiAuLi4vSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5oICAgfCAgIDMgKy0KIC4uLi9wcm9maWxl
ci9Qcm9maWxlck9TUkV4aXQuY3BwICAgICAgICAgICAgICB8ICAxNyArLS0KIC4uLi9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXQuaCB8ICAgNSArLQogLi4uL3Byb2ZpbGVy
L1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwICAgICAgICAgIHwgIDEzICsrLQogLi4uL3Byb2ZpbGVy
L1Byb2ZpbGVyT1NSRXhpdFNpdGUuaCAgICAgICAgICAgIHwgICA1ICstCiAuLi4vcHJvZmlsZXIv
UHJvZmlsZXJPcmlnaW4uY3BwICAgICAgICAgICAgICAgfCAgMTAgKy0KIC4uLi9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5oICB8ICAgMyArLQogLi4uL3Byb2ZpbGVyL1By
b2ZpbGVyT3JpZ2luU3RhY2suY3BwICAgICAgICAgIHwgIDE1ICsrLQogLi4uL3Byb2ZpbGVyL1By
b2ZpbGVyT3JpZ2luU3RhY2suaCAgICAgICAgICAgIHwgICAzICstCiAuLi4vcHJvZmlsZXIvUHJv
ZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgICAgfCAgMTIgKy0KIC4uLi9wcm9maWxlci9Qcm9m
aWxlclByb2ZpbGVkQnl0ZWNvZGVzLmggICAgICB8ICAgMiArLQogLi4uL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyVUlELmNwcCAgIHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQuaCAgfCAgIDYgKy0KIC4uLi9ydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmggICAgICAgICAgICAgICB8ICAyOCArKysrKwogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaCAgIHwgICAyIC0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmNwcCAgICAgICAgICB8ICAxNCArLS0KIFNvdXJjZS9XVEYvd3RmL0pTT05W
YWx1ZXMuY3BwICAgICAgICAgICAgICAgICB8IDEwMyArKysrKysrKy0tLS0tLS0tLQogU291cmNl
L1dURi93dGYvSlNPTlZhbHVlcy5oICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCAgfCAgIDIgKy0KIDM2IGZpbGVz
IGNoYW5nZWQsIDMzNCBpbnNlcnRpb25zKCspLCAzNTQgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9k
ZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRHVtcGVyLmgK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYTY0YzA5YjVkNDcwLi5iOWQ3
ODBmMDJlNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTkzMCw3ICs5
MzAsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHByb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgKICAgICBwcm9maWxlci9Qcm9maWxl
ckNvbXBpbGVkQnl0ZWNvZGUuaAogICAgIHByb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaAotICAg
IHByb2ZpbGVyL1Byb2ZpbGVyRHVtcGVyLmgKICAgICBwcm9maWxlci9Qcm9maWxlckV2ZW50LmgK
ICAgICBwcm9maWxlci9Qcm9maWxlckV4ZWN1dGlvbkNvdW50ZXIuaAogICAgIHByb2ZpbGVyL1By
b2ZpbGVySmV0dGlzb25SZWFzb24uaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAx
NGYyZjI4N2I3ZDQuLjM5NjA5NjIwZWYxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE5NDEsNyArMTk0MSw2IEBACiAJCUUzQkZBNUQwMjFFODUzQTEwMDlDMEVCQSAvKiBERkdE
ZXNpcmVkR2xvYmFsUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzQkZBNUNEMjFFODUzQTEwMDlDMEVCQSAvKiBERkdEZXNpcmVkR2xvYmFs
UHJvcGVydHkuaCAqLzsgfTsKIAkJRTNCRkQwQkMxREFGODA4RTAwNjVERUEyIC8qIEFjY2Vzc0Nh
c2VTbmlwcGV0UGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0JGRDBCQTFEQUY4MDdDMDA2NURFQTIgLyogQWNjZXNzQ2FzZVNuaXBwZXRQYXJh
bXMuaCAqLzsgfTsKIAkJRTNDMDkxRTkyOUIwN0Q0QzAwQ0Q2RDk3IC8qIFdhc21CQlFKSVQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVENUZBMzMy
OUEwODU5QzAwNzk4QTdGIC8qIFdhc21CQlFKSVQuY3BwICovOyB9OwotCQlFM0MwRUNDQTJBNEMw
MUU5MDAyQzlEMkIgLyogUHJvZmlsZXJEdW1wZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzBFQ0M5MkE0QzAxRTgwMDJDOUQyQiAvKiBQcm9maWxl
ckR1bXBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUzQzI5NUREMUVEMkNCREEwMEQzMDE2RiAvKiBPYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0
aXZlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNDMjk1REMxRUQyQ0JBQTAwRDMwMTZGIC8qIE9iamVjdFByb3BlcnR5Q2hhbmdlQWRh
cHRpdmVXYXRjaHBvaW50LmggKi87IH07CiAJCUUzQzQxMzFEMjg5RTA4RUEwMDExNTBGOCAvKiBT
eW50aGV0aWNNb2R1bGVSZWNvcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzQzQxMzFDMjg5RTA4RTUwMDExNTBGOCAvKiBTeW50aGV0aWNNb2R1bGVS
ZWNvcmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFM0M2OTRCMzIzMDI2ODc3MDA2RkJFNDIgLyogV2FzbU9TUkVudHJ5RGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDNjk0QjEyMzAyNjg3MzAw
NkZCRTQyIC8qIFdhc21PU1JFbnRyeURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTQ3Myw3ICs1NDcyLDYgQEAKIAkJRTNCRkE1Q0QyMUU4
NTNBMTAwOUMwRUJBIC8qIERGR0Rlc2lyZWRHbG9iYWxQcm9wZXJ0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdEZXNpcmVkR2xvYmFsUHJvcGVydHkuaDsgcGF0aCA9IGRm
Zy9ERkdEZXNpcmVkR2xvYmFsUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTNCRkQwQjkxREFGODA3QzAwNjVERUEyIC8qIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc0Nhc2VTbmlwcGV0
UGFyYW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCRkQwQkExREFGODA3
QzAwNjVERUEyIC8qIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUUzQzBFQ0M5MkE0QzAxRTgwMDJDOUQyQiAvKiBQcm9maWxlckR1bXBl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlckR1bXBlci5oOyBw
YXRoID0gcHJvZmlsZXIvUHJvZmlsZXJEdW1wZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNDMjk1REMxRUQyQ0JBQTAwRDMwMTZGIC8qIE9iamVjdFByb3BlcnR5Q2hhbmdlQWRh
cHRpdmVXYXRjaHBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9iamVj
dFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzQzQxMzFCMjg5RTA4RTUwMDExNTBGOCAvKiBTeW50aGV0aWNNb2R1bGVSZWNv
cmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3ludGhldGljTW9kdWxlUmVjb3JkLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDNDEzMUMyODlFMDhFNTAwMTE1MEY4IC8qIFN5
bnRoZXRpY01vZHVsZVJlY29yZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0aWNNb2R1bGVSZWNv
cmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4MzksNyArODgzNyw2IEBACiAJ
CQkJMEZGNzI5OUIxNjZBRDM0NzAwMEY1QkEzIC8qIFByb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5o
ICovLAogCQkJCTBGRjcyOTlDMTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlckRhdGFiYXNlLmNw
cCAqLywKIAkJCQkwRkY3Mjk5RDE2NkFEMzQ3MDAwRjVCQTMgLyogUHJvZmlsZXJEYXRhYmFzZS5o
ICovLAotCQkJCUUzQzBFQ0M5MkE0QzAxRTgwMDJDOUQyQiAvKiBQcm9maWxlckR1bXBlci5oICov
LAogCQkJCURDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCAqLywK
IAkJCQlEQzYwNUI1QTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5oICovLAogCQkJ
CTBGRjcyOTlFMTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlckV4ZWN1dGlvbkNvdW50ZXIuaCAq
LywKQEAgLTEwOTc0LDcgKzEwOTcxLDYgQEAKIAkJCQkwRkY3MjlCQjE2NkFEMzYwMDAwRjVCQTMg
LyogUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcyOUJD
MTY2QUQzNjAwMDBGNUJBMyAvKiBQcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRjcyOUJEMTY2QUQzNjAwMDBGNUJBMyAvKiBQcm9maWxlckRhdGFiYXNlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlFM0MwRUNDQTJBNEMwMUU5MDAyQzlEMkIgLyogUHJvZmlsZXJE
dW1wZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCURDNjA1QjVFMUNFMjZFQTIwMDU5MzcxOCAvKiBQ
cm9maWxlckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY3MjlCRTE2NkFEMzYwMDAwRjVC
QTMgLyogUHJvZmlsZXJFeGVjdXRpb25Db3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE5
MENBRDE4OUQ4MkY2MDAwQUU1RjAgLyogUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmlu
ZGV4IDg3N2Y0NzgwOWY5ZS4uNGVhZTQwMDI4NzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMTQwLDExICsxNDAsMTYgQEAgQ1N0cmluZyBD
b2RlQmxvY2s6OnNvdXJjZUNvZGVGb3JUb29scygpIGNvbnN0CiB7CiAgICAgaWYgKGNvZGVUeXBl
KCkgIT0gRnVuY3Rpb25Db2RlKQogICAgICAgICByZXR1cm4gb3duZXJFeGVjdXRhYmxlKCktPnNv
dXJjZSgpLnRvVVRGOCgpOwotCisgICAgCisgICAgU291cmNlUHJvdmlkZXIqIHByb3ZpZGVyID0g
c291cmNlKCkucHJvdmlkZXIoKTsKICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUg
PSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4ob3duZXJFeGVjdXRhYmxlKCkpOwotICAgIHJl
dHVybiBleGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLT5nZXRSYW5nZSgKLSAgICAgICAg
ZXhlY3V0YWJsZS0+ZnVuY3Rpb25TdGFydCgpLAotICAgICAgICBleGVjdXRhYmxlLT5wYXJhbWV0
ZXJzU3RhcnRPZmZzZXQoKSArIGV4ZWN1dGFibGUtPnNvdXJjZSgpLmxlbmd0aCgpKS51dGY4KCk7
CisgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIHVubGlua2VkID0gZXhlY3V0YWJsZS0+
dW5saW5rZWRFeGVjdXRhYmxlKCk7CisgICAgdW5zaWduZWQgdW5saW5rZWRTdGFydE9mZnNldCA9
IHVubGlua2VkLT5zdGFydE9mZnNldCgpOworICAgIHVuc2lnbmVkIGxpbmtlZFN0YXJ0T2Zmc2V0
ID0gZXhlY3V0YWJsZS0+c291cmNlKCkuc3RhcnRPZmZzZXQoKTsKKyAgICBpbnQgZGVsdGEgPSBs
aW5rZWRTdGFydE9mZnNldCAtIHVubGlua2VkU3RhcnRPZmZzZXQ7CisgICAgdW5zaWduZWQgcmFu
Z2VTdGFydCA9IGRlbHRhICsgdW5saW5rZWQtPnVubGlua2VkRnVuY3Rpb25TdGFydCgpOworICAg
IHVuc2lnbmVkIHJhbmdlRW5kID0gZGVsdGEgKyB1bmxpbmtlZC0+c3RhcnRPZmZzZXQoKSArIHVu
bGlua2VkLT5zb3VyY2VMZW5ndGgoKTsKKyAgICByZXR1cm4gcHJvdmlkZXItPnNvdXJjZSgpLnN1
YnN0cmluZyhyYW5nZVN0YXJ0LCByYW5nZUVuZCAtIHJhbmdlU3RhcnQpLnV0ZjgoKTsKIH0KIAog
Q1N0cmluZyBDb2RlQmxvY2s6OnNvdXJjZUNvZGVPbk9uZUxpbmUoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwCmluZGV4
IDEyOGViZmJjMTRlMi4uNWE4Nzg1MjY2M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwCkBAIC0yOSwxNiArMjksMTYgQEAK
ICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIK
ICNpbmNsdWRlICJPcGNvZGUuaCIKLSNpbmNsdWRlICJQcm9maWxlckR1bXBlci5oIgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIAotUmVmPEpTT046OlZhbHVlPiBCeXRl
Y29kZTo6dG9KU09OKER1bXBlciYgZHVtcGVyKSBjb25zdAorSlNWYWx1ZSBCeXRlY29kZTo6dG9K
UyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAogewotICAgIGF1dG8gcmVzdWx0
ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKLSAgICByZXN1bHQtPnNldERvdWJsZShkdW1wZXIu
a2V5cygpLm1fYnl0ZWNvZGVJbmRleCwgbV9ieXRlY29kZUluZGV4KTsKLSAgICByZXN1bHQtPnNl
dFN0cmluZyhkdW1wZXIua2V5cygpLm1fb3Bjb2RlLCBTdHJpbmc6OmZyb21VVEY4KG9wY29kZU5h
bWVzW21fb3Bjb2RlSURdKSk7Ci0gICAgcmVzdWx0LT5zZXRTdHJpbmcoZHVtcGVyLmtleXMoKS5t
X2Rlc2NyaXB0aW9uLCBTdHJpbmc6OmZyb21VVEY4KG1fZGVzY3JpcHRpb24pKTsKKyAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVj
dEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmJ5dGVjb2RlSW5kZXgsIGpzTnVtYmVyKG1fYnl0ZWNvZGVJbmRleCkp
OworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5vcGNvZGUsIGpz
U3RyaW5nKHZtLCBTdHJpbmc6OmZyb21VVEY4KG9wY29kZU5hbWVzW21fb3Bjb2RlSURdKSkpOwor
ICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5kZXNjcmlwdGlvbiwg
anNTdHJpbmcodm0sIFN0cmluZzo6ZnJvbVVURjgobV9kZXNjcmlwdGlvbikpKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJCeXRlY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyQnl0ZWNvZGUuaAppbmRleCAzY2ZiODhjYmMwNWQuLjA3YmI5ZTU2MjVhMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZS5oCkBA
IC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIK
LSNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zNSw4ICszNCw2IEBAIGVudW0gT3Bjb2RlSUQgOiB1
bnNpZ25lZDsKIAogbmFtZXNwYWNlIFByb2ZpbGVyIHsKIAotY2xhc3MgRHVtcGVyOwotCiBjbGFz
cyBCeXRlY29kZSB7CiBwdWJsaWM6CiAgICAgQnl0ZWNvZGUoKQpAQCAtNTUsNyArNTIsNyBAQCBw
dWJsaWM6CiAgICAgT3Bjb2RlSUQgb3Bjb2RlSUQoKSBjb25zdCB7IHJldHVybiBtX29wY29kZUlE
OyB9CiAgICAgY29uc3QgQ1N0cmluZyYgZGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rl
c2NyaXB0aW9uOyB9CiAgICAgCi0gICAgUmVmPEpTT046OlZhbHVlPiB0b0pTT04oRHVtcGVyJikg
Y29uc3Q7CisgICAgSlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiBwcml2YXRl
OgogICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVJbmRleDsKICAgICBPcGNvZGVJRCBtX29wY29kZUlE
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0
ZWNvZGVTZXF1ZW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZVNlcXVlbmNlLmNwcAppbmRleCA0ZmNjZjcyZDIzMTIuLmJlOWRjMTcxODBkNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNv
ZGVTZXF1ZW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAKQEAgLTc0LDE3ICs3NCwyNSBAQCBjb25zdCBCeXRlY29k
ZSYgQnl0ZWNvZGVTZXF1ZW5jZTo6Zm9yQnl0ZWNvZGVJbmRleCh1bnNpZ25lZCBieXRlY29kZUlu
ZGV4KSBjb25zdAogICAgIHJldHVybiBhdChpbmRleEZvckJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJ
bmRleCkpOwogfQogCi12b2lkIEJ5dGVjb2RlU2VxdWVuY2U6OmFkZFNlcXVlbmNlUHJvcGVydGll
cyhEdW1wZXImIGR1bXBlciwgSlNPTjo6T2JqZWN0JiByZXN1bHQpIGNvbnN0Cit2b2lkIEJ5dGVj
b2RlU2VxdWVuY2U6OmFkZFNlcXVlbmNlUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU09iamVjdCogcmVzdWx0KSBjb25zdAogewotICAgIGF1dG8gaGVhZGVyID0gSlNP
Tjo6QXJyYXk6OmNyZWF0ZSgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2hlYWRl
ci5zaXplKCk7ICsraSkKLSAgICAgICAgaGVhZGVyLT5wdXNoU3RyaW5nKFN0cmluZzo6ZnJvbVVU
RjgobV9oZWFkZXJbaV0pKTsKLSAgICByZXN1bHQuc2V0VmFsdWUoZHVtcGVyLmtleXMoKS5tX2hl
YWRlciwgV1RGTW92ZShoZWFkZXIpKTsKLQotICAgIGF1dG8gc2VxdWVuY2UgPSBKU09OOjpBcnJh
eTo6Y3JlYXRlKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2VxdWVuY2Uuc2l6
ZSgpOyArK2kpCi0gICAgICAgIHNlcXVlbmNlLT5wdXNoVmFsdWUobV9zZXF1ZW5jZVtpXS50b0pT
T04oZHVtcGVyKSk7Ci0gICAgcmVzdWx0LnNldFZhbHVlKGR1bXBlci5rZXlzKCkubV9ieXRlY29k
ZSwgV1RGTW92ZShzZXF1ZW5jZSkpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNBcnJheSog
aGVhZGVyID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1faGVhZGVyLnNpemUoKTsgKytpKSB7CisgICAgICAgIGhlYWRlci0+cHV0RGly
ZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpLCBqc1N0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOCht
X2hlYWRlcltpXSkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgp
KTsKKyAgICB9CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmhl
YWRlciwgaGVhZGVyKTsKKyAgICAKKyAgICBKU0FycmF5KiBzZXF1ZW5jZSA9IGNvbnN0cnVjdEVt
cHR5QXJyYXkoZ2xvYmFsT2JqZWN0LCBudWxscHRyKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB2b2lkKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3NlcXVlbmNl
LnNpemUoKTsgKytpKSB7CisgICAgICAgIHNlcXVlbmNlLT5wdXREaXJlY3RJbmRleChnbG9iYWxP
YmplY3QsIGksIG1fc2VxdWVuY2VbaV0udG9KUyhnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAgICB9CisgICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ5dGVjb2RlLCBzZXF1ZW5jZSk7CiB9CiAKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpQcm9maWxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5oCmluZGV4IDYxNmM3
NTQwMGQ1MC4uMzg4OTQ0ZmY5NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5oCkBAIC0zNiw4ICszNiw2
IEBAIGNsYXNzIENvZGVCbG9jazsKIAogbmFtZXNwYWNlIFByb2ZpbGVyIHsKIAotY2xhc3MgRHVt
cGVyOwotCiBjbGFzcyBCeXRlY29kZVNlcXVlbmNlIHsKIHB1YmxpYzoKICAgICBCeXRlY29kZVNl
cXVlbmNlKENvZGVCbG9jayopOwpAQCAtNTEsNyArNDksNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
Qnl0ZWNvZGUmIGZvckJ5dGVjb2RlSW5kZXgodW5zaWduZWQgYnl0ZWNvZGVJbmRleCkgY29uc3Q7
CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIGFkZFNlcXVlbmNlUHJvcGVydGllcyhEdW1wZXImLCBK
U09OOjpPYmplY3QmKSBjb25zdDsKKyAgICB2b2lkIGFkZFNlcXVlbmNlUHJvcGVydGllcyhKU0ds
b2JhbE9iamVjdCosIEpTT2JqZWN0KikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgogICAgIFZlY3Rv
cjxDU3RyaW5nPiBtX2hlYWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZXJCeXRlY29kZXMuY3BwCmluZGV4IGMwMGRkODlhMjNiYy4uNjNjMmI2NWNj
YTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJC
eXRlY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
ckJ5dGVjb2Rlcy5jcHAKQEAgLTI5LDkgKzI5LDcgQEAKICNpbmNsdWRlICJDb2RlQmxvY2suaCIK
ICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIK
LSNpbmNsdWRlICJQcm9maWxlckR1bXBlci5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0
cmVhbS5oPgotI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogCkBAIC01MiwyMyArNTAsMTggQEAgdm9p
ZCBCeXRlY29kZXM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBvdXQucHJpbnQo
IiMiLCBtX2hhc2gsICIoIiwgbV9pZCwgIikiKTsKIH0KIAotUmVmPEpTT046OlZhbHVlPiBCeXRl
Y29kZXM6OnRvSlNPTihEdW1wZXImIGR1bXBlcikgY29uc3QKK0pTVmFsdWUgQnl0ZWNvZGVzOjp0
b0pTKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiB7Ci0gICAgYXV0byByZXN1
bHQgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwotCi0gICAgcmVzdWx0LT5zZXREb3VibGUoZHVt
cGVyLmtleXMoKS5tX2J5dGVjb2Rlc0lELCBtX2lkKTsKLSAgICByZXN1bHQtPnNldFN0cmluZyhk
dW1wZXIua2V5cygpLm1faW5mZXJyZWROYW1lLCBTdHJpbmc6OmZyb21VVEY4KG1faW5mZXJyZWRO
YW1lKSk7Ci0gICAgU3RyaW5nIHNvdXJjZUNvZGUgPSBTdHJpbmc6OmZyb21VVEY4KG1fc291cmNl
Q29kZSk7Ci0gICAgaWYgKE9wdGlvbnM6OmFiYnJldmlhdGVTb3VyY2VDb2RlRm9yUHJvZmlsZXIo
KSkgewotICAgICAgICB1bnNpZ25lZCBzaXplID0gT3B0aW9uczo6YWJicmV2aWF0ZVNvdXJjZUNv
ZGVGb3JQcm9maWxlcigpOwotICAgICAgICBpZiAoc291cmNlQ29kZS5sZW5ndGgoKSA+IHNpemUp
Ci0gICAgICAgICAgICBzb3VyY2VDb2RlID0gbWFrZVN0cmluZyhTdHJpbmdWaWV3KHNvdXJjZUNv
ZGUpLmxlZnQoc2l6ZSAtIDEpLCBob3Jpem9udGFsRWxsaXBzaXMpOwotICAgIH0KLSAgICByZXN1
bHQtPnNldFN0cmluZyhkdW1wZXIua2V5cygpLm1fc291cmNlQ29kZSwgV1RGTW92ZShzb3VyY2VD
b2RlKSk7Ci0gICAgcmVzdWx0LT5zZXRTdHJpbmcoZHVtcGVyLmtleXMoKS5tX2hhc2gsIFN0cmlu
Zzo6ZnJvbVVURjgodG9DU3RyaW5nKG1faGFzaCkpKTsKLSAgICByZXN1bHQtPnNldERvdWJsZShk
dW1wZXIua2V5cygpLm1faW5zdHJ1Y3Rpb25Db3VudCwgbV9pbnN0cnVjdGlvbkNvdW50KTsKLSAg
ICBhZGRTZXF1ZW5jZVByb3BlcnRpZXMoZHVtcGVyLCByZXN1bHQuZ2V0KCkpOwotCisgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1
Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QpOworICAgIAorICAgIHJlc3VsdC0+cHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5ieXRlY29kZXNJRCwganNOdW1iZXIobV9pZCkpOworICAg
IHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pbmZlcnJlZE5hbWUsIGpz
U3RyaW5nKHZtLCBTdHJpbmc6OmZyb21VVEY4KG1faW5mZXJyZWROYW1lKSkpOworICAgIHJlc3Vs
dC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zb3VyY2VDb2RlLCBqc1N0cmluZyh2
bSwgU3RyaW5nOjpmcm9tVVRGOChtX3NvdXJjZUNvZGUpKSk7CisgICAgcmVzdWx0LT5wdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmhhc2gsIGpzU3RyaW5nKHZtLCBTdHJpbmc6OmZyb21V
VEY4KHRvQ1N0cmluZyhtX2hhc2gpKSkpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5pbnN0cnVjdGlvbkNvdW50LCBqc051bWJlcihtX2luc3RydWN0aW9uQ291
bnQpKTsKKyAgICBhZGRTZXF1ZW5jZVByb3BlcnRpZXMoZ2xvYmFsT2JqZWN0LCByZXN1bHQpOwor
ICAgIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVzLmgKaW5kZXggNmNhMmQyMDYwODVlLi44OGY2
NmI2MTA4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckJ5dGVjb2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckJ5dGVjb2Rlcy5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHVt
cChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAotICAgIFJlZjxKU09OOjpWYWx1ZT4gdG9KU09O
KER1bXBlciYpIGNvbnN0OworICAgIEpTVmFsdWUgdG9KUyhKU0dsb2JhbE9iamVjdCopIGNvbnN0
OwogICAgIAogcHJpdmF0ZToKICAgICBzaXplX3QgbV9pZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAppbmRleCAxYmRm
ODVkNTM5MGQuLjczNWMxZGU1MjZmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcApAQCAtMjksNyArMjksNiBAQAog
I2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgog
I2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJQcm9maWxlckR1bXBlci5o
IgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIFByb2ZpbGVyIHsKQEAgLTExMSw1MCArMTEwLDc2IEBAIHZvaWQgQ29tcGlsYXRp
b246OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBvdXQucHJpbnQoIkNvbXAiLCBt
X3VpZCk7CiB9CiAKLVJlZjxKU09OOjpWYWx1ZT4gQ29tcGlsYXRpb246OnRvSlNPTihEdW1wZXIm
IGR1bXBlcikgY29uc3QKK0pTVmFsdWUgQ29tcGlsYXRpb246OnRvSlMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkgY29uc3QKIHsKLSAgICBhdXRvIHJlc3VsdCA9IEpTT046Ok9iamVjdDo6
Y3JlYXRlKCk7Ci0gICAgcmVzdWx0LT5zZXREb3VibGUoZHVtcGVyLmtleXMoKS5tX2J5dGVjb2Rl
c0lELCBtX2J5dGVjb2Rlcy0+aWQoKSk7Ci0gICAgcmVzdWx0LT5zZXRTdHJpbmcoZHVtcGVyLmtl
eXMoKS5tX2NvbXBpbGF0aW9uS2luZCwgU3RyaW5nOjpmcm9tVVRGOCh0b0NTdHJpbmcobV9raW5k
KSkpOwotCi0gICAgYXV0byBwcm9maWxlZEJ5dGVjb2RlcyA9IEpTT046OkFycmF5OjpjcmVhdGUo
KTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGJ5dGVjb2RlIDogbV9wcm9maWxlZEJ5dGVjb2RlcykK
LSAgICAgICAgcHJvZmlsZWRCeXRlY29kZXMtPnB1c2hWYWx1ZShieXRlY29kZS50b0pTT04oZHVt
cGVyKSk7Ci0gICAgcmVzdWx0LT5zZXRWYWx1ZShkdW1wZXIua2V5cygpLm1fcHJvZmlsZWRCeXRl
Y29kZXMsIFdURk1vdmUocHJvZmlsZWRCeXRlY29kZXMpKTsKLQotICAgIGF1dG8gZGVzY3JpcHRp
b25zID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOwotICAgIGZvciAoY29uc3QgYXV0byYgZGVzY3Jp
cHRpb24gOiBtX2Rlc2NyaXB0aW9ucykKLSAgICAgICAgZGVzY3JpcHRpb25zLT5wdXNoVmFsdWUo
ZGVzY3JpcHRpb24udG9KU09OKGR1bXBlcikpOwotICAgIHJlc3VsdC0+c2V0VmFsdWUoZHVtcGVy
LmtleXMoKS5tX2Rlc2NyaXB0aW9ucywgV1RGTW92ZShkZXNjcmlwdGlvbnMpKTsKLQotICAgIGF1
dG8gY291bnRlcnMgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7Ci0gICAgZm9yIChjb25zdCBhdXRv
JiBba2V5LCB2YWx1ZV0gOiBtX2NvdW50ZXJzKSB7Ci0gICAgICAgIGF1dG8gY291bnRlckVudHJ5
ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKLSAgICAgICAgY291bnRlckVudHJ5LT5zZXRWYWx1
ZShkdW1wZXIua2V5cygpLm1fb3JpZ2luLCBrZXkudG9KU09OKGR1bXBlcikpOwotICAgICAgICBj
b3VudGVyRW50cnktPnNldERvdWJsZShkdW1wZXIua2V5cygpLm1fZXhlY3V0aW9uQ291bnQsIHZh
bHVlLT5jb3VudCgpKTsKLSAgICAgICAgY291bnRlcnMtPnB1c2hWYWx1ZShXVEZNb3ZlKGNvdW50
ZXJFbnRyeSkpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNPYmplY3QqIHJlc3VsdCA9IGNv
bnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+Ynl0ZWNvZGVzSUQsIGpzTnVtYmVyKG1fYnl0ZWNvZGVzLT5pZCgpKSk7CisgICAgcmVzdWx0
LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbXBpbGF0aW9uS2luZCwganNTdHJp
bmcodm0sIFN0cmluZzo6ZnJvbVVURjgodG9DU3RyaW5nKG1fa2luZCkpKSk7CisgICAgCisgICAg
SlNBcnJheSogcHJvZmlsZWRCeXRlY29kZXMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2JhbE9i
amVjdCwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wcm9maWxlZEJ5dGVjb2Rlcy5zaXplKCk7ICsr
aSkgeworICAgICAgICBhdXRvIHZhbHVlID0gbV9wcm9maWxlZEJ5dGVjb2Rlc1tpXS50b0pTKGds
b2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Cisg
ICAgICAgIHByb2ZpbGVkQnl0ZWNvZGVzLT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGks
IHZhbHVlKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9
CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb2ZpbGVkQnl0
ZWNvZGVzLCBwcm9maWxlZEJ5dGVjb2Rlcyk7CisgICAgCisgICAgSlNBcnJheSogZGVzY3JpcHRp
b25zID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1fZGVzY3JpcHRpb25zLnNpemUoKTsgKytpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSBt
X2Rlc2NyaXB0aW9uc1tpXS50b0pTKGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgIGRlc2NyaXB0aW9ucy0+cHV0RGlyZWN0SW5k
ZXgoZ2xvYmFsT2JqZWN0LCBpLCB2YWx1ZSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CisgICAgfQorICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5kZXNjcmlwdGlvbnMsIGRlc2NyaXB0aW9ucyk7CisgICAgCisgICAgSlNBcnJheSog
Y291bnRlcnMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2JhbE9iamVjdCwgbnVsbHB0cik7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBmb3IgKGF1dG8gaXQgPSBt
X2NvdW50ZXJzLmJlZ2luKCksIGVuZCA9IG1fY291bnRlcnMuZW5kKCk7IGl0ICE9IGVuZDsgKytp
dCkgeworICAgICAgICBKU09iamVjdCogY291bnRlckVudHJ5ID0gY29uc3RydWN0RW1wdHlPYmpl
Y3QoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKKyAgICAgICAgYXV0byB2YWx1ZSA9IGl0LT5rZXkudG9KUyhnbG9iYWxPYmplY3QpOworICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgICAgICBjb3VudGVyRW50
cnktPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+b3JpZ2luLCB2YWx1ZSk7CisgICAg
ICAgIGNvdW50ZXJFbnRyeS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5leGVjdXRp
b25Db3VudCwganNOdW1iZXIoaXQtPnZhbHVlLT5jb3VudCgpKSk7CisgICAgICAgIGNvdW50ZXJz
LT5wdXNoKGdsb2JhbE9iamVjdCwgY291bnRlckVudHJ5KTsKKyAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmNvdW50ZXJzLCBjb3VudGVycyk7CisgICAgCisgICAgSlNBcnJheSog
ZXhpdFNpdGVzID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fb3NyRXhpdFNpdGVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGF1dG8gdmFs
dWUgPSBtX29zckV4aXRTaXRlc1tpXS50b0pTKGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgIGV4aXRTaXRlcy0+cHV0RGlyZWN0
SW5kZXgoZ2xvYmFsT2JqZWN0LCBpLCB2YWx1ZSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CiAgICAgfQotICAgIHJlc3VsdC0+c2V0VmFsdWUoZHVtcGVyLmtleXMo
KS5tX2NvdW50ZXJzLCBXVEZNb3ZlKGNvdW50ZXJzKSk7Ci0KLSAgICBhdXRvIGV4aXRTaXRlcyA9
IEpTT046OkFycmF5OjpjcmVhdGUoKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIG9zckV4aXRTaXRl
IDogbV9vc3JFeGl0U2l0ZXMpCi0gICAgICAgIGV4aXRTaXRlcy0+cHVzaFZhbHVlKG9zckV4aXRT
aXRlLnRvSlNPTihkdW1wZXIpKTsKLSAgICByZXN1bHQtPnNldFZhbHVlKGR1bXBlci5rZXlzKCku
bV9vc3JFeGl0U2l0ZXMsIFdURk1vdmUoZXhpdFNpdGVzKSk7Ci0KLSAgICBhdXRvIGV4aXRzID0g
SlNPTjo6QXJyYXk6OmNyZWF0ZSgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX29z
ckV4aXRzLnNpemUoKTsgKytpKQotICAgICAgICBleGl0cy0+cHVzaFZhbHVlKG1fb3NyRXhpdHNb
aV0udG9KU09OKGR1bXBlcikpOwotICAgIHJlc3VsdC0+c2V0VmFsdWUoZHVtcGVyLmtleXMoKS5t
X29zckV4aXRzLCBXVEZNb3ZlKGV4aXRzKSk7Ci0KLSAgICByZXN1bHQtPnNldERvdWJsZShkdW1w
ZXIua2V5cygpLm1fbnVtSW5saW5lZEdldEJ5SWRzLCBtX251bUlubGluZWRHZXRCeUlkcyk7Ci0g
ICAgcmVzdWx0LT5zZXREb3VibGUoZHVtcGVyLmtleXMoKS5tX251bUlubGluZWRQdXRCeUlkcywg
bV9udW1JbmxpbmVkUHV0QnlJZHMpOwotICAgIHJlc3VsdC0+c2V0RG91YmxlKGR1bXBlci5rZXlz
KCkubV9udW1JbmxpbmVkQ2FsbHMsIG1fbnVtSW5saW5lZENhbGxzKTsKLSAgICByZXN1bHQtPnNl
dFN0cmluZyhkdW1wZXIua2V5cygpLm1famV0dGlzb25SZWFzb24sIFN0cmluZzo6ZnJvbVVURjgo
dG9DU3RyaW5nKG1famV0dGlzb25SZWFzb24pKSk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPm9zckV4aXRTaXRlcywgZXhpdFNpdGVzKTsKKyAgICAKKyAgICBK
U0FycmF5KiBleGl0cyA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZ2xvYmFsT2JqZWN0LCBudWxscHRy
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX29zckV4aXRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGV4aXRzLT5w
dXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGksIG1fb3NyRXhpdHNbaV0udG9KUyhnbG9iYWxP
YmplY3QpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9
CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm9zckV4aXRzLCBl
eGl0cyk7CisgICAgCisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
Pm51bUlubGluZWRHZXRCeUlkcywganNOdW1iZXIobV9udW1JbmxpbmVkR2V0QnlJZHMpKTsKKyAg
ICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bnVtSW5saW5lZFB1dEJ5
SWRzLCBqc051bWJlcihtX251bUlubGluZWRQdXRCeUlkcykpOworICAgIHJlc3VsdC0+cHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5udW1JbmxpbmVkQ2FsbHMsIGpzTnVtYmVyKG1fbnVt
SW5saW5lZENhbGxzKSk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmpldHRpc29uUmVhc29uLCBqc1N0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOCh0b0NTdHJp
bmcobV9qZXR0aXNvblJlYXNvbikpKSk7CiAgICAgaWYgKCFtX2FkZGl0aW9uYWxKZXR0aXNvblJl
YXNvbi5pc051bGwoKSkKLSAgICAgICAgcmVzdWx0LT5zZXRTdHJpbmcoZHVtcGVyLmtleXMoKS5t
X2FkZGl0aW9uYWxKZXR0aXNvblJlYXNvbiwgU3RyaW5nOjpmcm9tVVRGOChtX2FkZGl0aW9uYWxK
ZXR0aXNvblJlYXNvbikpOwotCi0gICAgcmVzdWx0LT5zZXRWYWx1ZShkdW1wZXIua2V5cygpLm1f
dWlkLCBtX3VpZC50b0pTT04oZHVtcGVyKSk7Ci0KKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmFkZGl0aW9uYWxKZXR0aXNvblJlYXNvbiwganNTdHJpbmco
dm0sIFN0cmluZzo6ZnJvbVVURjgobV9hZGRpdGlvbmFsSmV0dGlzb25SZWFzb24pKSk7CisgICAg
CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnVpZCwgbV91aWQu
dG9KUyhnbG9iYWxPYmplY3QpKTsKKyAgICAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24u
aAppbmRleCAyNzk3ZjkwMWI1MTMuLjI4MzQ3ODY2MDY3MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5oCkBAIC00Nyw3ICs0
Nyw2IEBAIG5hbWVzcGFjZSBQcm9maWxlciB7CiAKIGNsYXNzIEJ5dGVjb2RlczsKIGNsYXNzIERh
dGFiYXNlOwotY2xhc3MgRHVtcGVyOwogCiAvLyBSZXByZXNlbnRzIHRoZSBhY3Qgb2YgZXhlY3V0
aW5nIHNvbWUgYnl0ZWNvZGVzIGluIHNvbWUgZW5naW5lLCBhbmQgZG9lcwogLy8gYWxsIG9mIHRo
ZSBjb3VudGluZyBmb3IgdGhvc2UgZXhlY3V0aW9ucy4KQEAgLTc5LDcgKzc4LDcgQEAgcHVibGlj
OgogICAgIFVJRCB1aWQoKSBjb25zdCB7IHJldHVybiBtX3VpZDsgfQogICAgIAogICAgIHZvaWQg
ZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwotICAgIFJlZjxKU09OOjpWYWx1ZT4gdG9KU09OKER1
bXBlciYpIGNvbnN0OworICAgIEpTVmFsdWUgdG9KUyhKU0dsb2JhbE9iamVjdCopIGNvbnN0Owog
ICAgIAogcHJpdmF0ZToKICAgICBDb21waWxhdGlvbktpbmQgbV9raW5kOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVj
b2RlLmNwcAppbmRleCA5YjI2MGMzY2YzMGEuLmI4YzE4ZDZkZmIwMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRl
Y29kZS5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNp
bmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIlByb2ZpbGVyRHVtcGVyLmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogCkBAIC00MiwxMyArNDEs
MTQgQEAgQ29tcGlsZWRCeXRlY29kZTo6fkNvbXBpbGVkQnl0ZWNvZGUoKQogewogfQogCi1SZWY8
SlNPTjo6VmFsdWU+IENvbXBpbGVkQnl0ZWNvZGU6OnRvSlNPTihEdW1wZXImIGR1bXBlcikgY29u
c3QKK0pTVmFsdWUgQ29tcGlsZWRCeXRlY29kZTo6dG9KUyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KSBjb25zdAogewotICAgIGF1dG8gcmVzdWx0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUo
KTsKLQotICAgIHJlc3VsdC0+c2V0VmFsdWUoZHVtcGVyLmtleXMoKS5tX29yaWdpbiwgbV9vcmln
aW4udG9KU09OKGR1bXBlcikpOwotICAgIHJlc3VsdC0+c2V0U3RyaW5nKGR1bXBlci5rZXlzKCku
bV9kZXNjcmlwdGlvbiwgU3RyaW5nOjpmcm9tVVRGOChtX2Rlc2NyaXB0aW9uKSk7Ci0KKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0
cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgCisgICAgcmVzdWx0LT5wdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm9yaWdpbiwgbV9vcmlnaW4udG9KUyhnbG9iYWxPYmpl
Y3QpKTsKKyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+ZGVzY3Jp
cHRpb24sIGpzU3RyaW5nKHZtLCBTdHJpbmc6OmZyb21VVEY4KG1fZGVzY3JpcHRpb24pKSk7Cisg
ICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5oCmluZGV4IGIzYWNk
NzE1OGZhNy4uZDYzNzU5ZmM4YWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5oCkBAIC00MCw5ICs0MCw5
IEBAIHB1YmxpYzoKICAgICAKICAgICBjb25zdCBPcmlnaW5TdGFjayYgb3JpZ2luU3RhY2soKSBj
b25zdCB7IHJldHVybiBtX29yaWdpbjsgfQogICAgIGNvbnN0IENTdHJpbmcmIGRlc2NyaXB0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQotCi0gICAgUmVmPEpTT046OlZhbHVl
PiB0b0pTT04oRHVtcGVyJikgY29uc3Q7Ci0KKyAgICAKKyAgICBKU1ZhbHVlIHRvSlMoSlNHbG9i
YWxPYmplY3QqKSBjb25zdDsKKyAgICAKIHByaXZhdGU6CiAgICAgT3JpZ2luU3RhY2sgbV9vcmln
aW47CiAgICAgQ1N0cmluZyBtX2Rlc2NyaXB0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3BwCmluZGV4IDAyOTk2MjlhZmVlMi4u
NDFiNDNmYjA3MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiSlNDSW5s
aW5lcy5oIgogI2luY2x1ZGUgIkpTT05PYmplY3QuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1
Y3Rvci5oIgotI2luY2x1ZGUgIlByb2ZpbGVyRHVtcGVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZpbGVQ
cmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKQEAg
LTk1LDM1ICs5NCw2OSBAQCB2b2lkIERhdGFiYXNlOjphZGRDb21waWxhdGlvbihDb2RlQmxvY2sq
IGNvZGVCbG9jaywgUmVmPENvbXBpbGF0aW9uPiYmIGNvbXBpbGF0aQogICAgIG1fY29tcGlsYXRp
b25NYXAuc2V0KGNvZGVCbG9jaywgV1RGTW92ZShjb21waWxhdGlvbikpOwogfQogCi1SZWY8SlNP
Tjo6VmFsdWU+IERhdGFiYXNlOjp0b0pTT04oKSBjb25zdAorSlNWYWx1ZSBEYXRhYmFzZTo6dG9K
UyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAogewotICAgIER1bXBlciBkdW1w
ZXIoKnRoaXMpOwotICAgIGF1dG8gcmVzdWx0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKLQot
ICAgIGF1dG8gYnl0ZWNvZGVzID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOwotICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX2J5dGVjb2Rlcy5zaXplKCk7ICsraSkKLSAgICAgICAgYnl0ZWNv
ZGVzLT5wdXNoVmFsdWUobV9ieXRlY29kZXNbaV0udG9KU09OKGR1bXBlcikpOwotICAgIHJlc3Vs
dC0+c2V0VmFsdWUoZHVtcGVyLmtleXMoKS5tX2J5dGVjb2RlcywgV1RGTW92ZShieXRlY29kZXMp
KTsKLQotICAgIGF1dG8gY29tcGlsYXRpb25zID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOwotICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NvbXBpbGF0aW9ucy5zaXplKCk7ICsraSkKLSAg
ICAgICAgY29tcGlsYXRpb25zLT5wdXNoVmFsdWUobV9jb21waWxhdGlvbnNbaV0tPnRvSlNPTihk
dW1wZXIpKTsKLSAgICByZXN1bHQtPnNldFZhbHVlKGR1bXBlci5rZXlzKCkubV9jb21waWxhdGlv
bnMsIFdURk1vdmUoY29tcGlsYXRpb25zKSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBKU09i
amVjdCogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0KTsKKyAgICAK
KyAgICBKU0FycmF5KiBieXRlY29kZXMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2JhbE9iamVj
dCwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9ieXRlY29kZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgYXV0byB2YWx1ZSA9IG1fYnl0ZWNvZGVzW2ldLnRvSlMoZ2xvYmFsT2JqZWN0KTsKKyAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgYnl0ZWNvZGVzLT5w
dXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGksIHZhbHVlKTsKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmJ5dGVjb2RlcywgYnl0ZWNvZGVzKTsKKyAgICAKKyAgICBKU0Fy
cmF5KiBjb21waWxhdGlvbnMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2JhbE9iamVjdCwgbnVs
bHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbV9jb21waWxhdGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
YXV0byB2YWx1ZSA9IG1fY29tcGlsYXRpb25zW2ldLT50b0pTKGdsb2JhbE9iamVjdCk7CisgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgIGNvbXBpbGF0aW9u
cy0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpLCB2YWx1ZSk7CisgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQorICAgIHJlc3VsdC0+cHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb21waWxhdGlvbnMsIGNvbXBpbGF0aW9ucyk7CisgICAg
CisgICAgSlNBcnJheSogZXZlbnRzID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3Qs
IG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZXZlbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGF1
dG8gdmFsdWUgPSBtX2V2ZW50c1tpXS50b0pTKGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgIGV2ZW50cy0+cHV0RGlyZWN0SW5k
ZXgoZ2xvYmFsT2JqZWN0LCBpLCB2YWx1ZSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CisgICAgfQorICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5ldmVudHMsIGV2ZW50cyk7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KIAot
ICAgIGF1dG8gZXZlbnRzID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOwotICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX2V2ZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgZXZlbnRzLT5wdXNo
VmFsdWUobV9ldmVudHNbaV0udG9KU09OKGR1bXBlcikpOwotICAgIHJlc3VsdC0+c2V0VmFsdWUo
ZHVtcGVyLmtleXMoKS5tX2V2ZW50cywgV1RGTW92ZShldmVudHMpKTsKK1N0cmluZyBEYXRhYmFz
ZTo6dG9KU09OKCkgY29uc3QKK3sKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RShtX3ZtKTsKKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gSlNHbG9iYWxPYmpl
Y3Q6OmNyZWF0ZSgKKyAgICAgICAgbV92bSwgSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVy
ZShtX3ZtLCBqc051bGwoKSkpOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBhdXRvIHZhbHVl
ID0gdG9KUyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0
cmluZygpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTT05TdHJpbmdpZnkoZ2xv
YmFsT2JqZWN0LCB2YWx1ZSwgMCkpOwogfQogCiBib29sIERhdGFiYXNlOjpzYXZlKGNvbnN0IGNo
YXIqIGZpbGVuYW1lKSBjb25zdAogeworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1ND
T1BFKG1fdm0pOwogICAgIGF1dG8gb3V0ID0gRmlsZVByaW50U3RyZWFtOjpvcGVuKGZpbGVuYW1l
LCAidyIpOwogICAgIGlmICghb3V0KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgb3V0LT5w
cmludCh0b0pTT04oKS5nZXQoKSk7CisgICAgCisgICAgU3RyaW5nIGRhdGEgPSB0b0pTT04oKTsK
KyAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7CisgICAgICAgIHNjb3BlLmNs
ZWFyRXhjZXB0aW9uKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgb3V0LT5w
cmludChkYXRhKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmgKaW5kZXggZjEyNTMyOWI0MDI2Li5h
ZTc4NWU0ZTNkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckRhdGFiYXNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyRGF0YWJhc2UuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIlByb2ZpbGVyRXZl
bnQuaCIKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+Ci0jaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWdtZW50ZWRWZWN0
b3IuaD4KQEAgLTUxLDEwICs1MCwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpZnlEZXN0cnVj
dGlvbihDb2RlQmxvY2sqKTsKICAgICAKICAgICB2b2lkIGFkZENvbXBpbGF0aW9uKENvZGVCbG9j
ayosIFJlZjxDb21waWxhdGlvbj4mJik7Ci0KLSAgICAvLyBDb252ZXJ0cyB0aGUgZGF0YWJhc2Ug
dG8gYSBKU09OIG9iamVjdCB0aGF0IGlzIHN1aXRhYmxlIGZvciBKU09OIHN0cmluZ2lmaWNhdGlv
bi4KLSAgICBKU19FWFBPUlRfUFJJVkFURSBSZWY8SlNPTjo6VmFsdWU+IHRvSlNPTigpIGNvbnN0
OwotCisgICAgCisgICAgLy8gQ29udmVydHMgdGhlIGRhdGFiYXNlIHRvIGEgSmF2YVNjcmlwdCBv
YmplY3QgdGhhdCBpcyBzdWl0YWJsZSBmb3IgSlNPTiBzdHJpbmdpZmljYXRpb24uCisgICAgLy8g
Tm90ZSB0aGF0IGl0J3MgcHJvYmFibHkgYSBnb29kIGlkZWEgdG8gdXNlIGFuIENhbGxGcmFtZSog
YXNzb2NpYXRlZCB3aXRoIGEgZ2xvYmFsCisgICAgLy8gb2JqZWN0IHRoYXQgaXMgImNsZWFuIiAt
IGkuZS4gYXJyYXkgYW5kIG9iamVjdCBwcm90b3R5cGVzIGhhdmVuJ3QgaGFkIHN0cmFuZ2UgdGhp
bmdzCisgICAgLy8gZG9uZSB0byB0aGVtLiBBbmQgeWVzLCBpdCBzaG91bGQgYmUgYXBwcm9wcmlh
dGUgdG8ganVzdCB1c2UgYSBnbG9iYWxFeGVjIGhlcmUuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUg
SlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisgICAgCisgICAgLy8gQ29udmVy
dHMgdGhlIGRhdGFiYXNlIHRvIGEgSmF2YVNjcmlwdCBvYmplY3QgdXNpbmcgYSBwcml2YXRlIHRl
bXBvcmFyeSBnbG9iYWwgb2JqZWN0LAorICAgIC8vIGFuZCB0aGVuIHJldHVybnMgdGhlIEpTT04g
cmVwcmVzZW50YXRpb24gb2YgdGhhdCBvYmplY3QuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nIHRvSlNPTigpIGNvbnN0OworICAgIAogICAgIC8vIFNhdmVzIHRoZSBKU09OIHJlcHJlc2Vu
dGF0aW9uIChmcm9tIHRvSlNPTigpKSB0byB0aGUgZ2l2ZW4gZmlsZS4gUmV0dXJucyBmYWxzZSBp
ZiB0aGUKICAgICAvLyBzYXZlIGZhaWxlZC4KICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHNh
dmUoY29uc3QgY2hhciogZmlsZW5hbWUpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRHVtcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJEdW1wZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTRlNjc1MTZiNGYzLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyRHVtcGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDIzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewotCi1jbGFz
cyBEYXRhYmFzZTsKLQotI2RlZmluZSBKU0NfUFJPRklMRVJfT0JKRUNUX0tFWVMobWFjcm8pIFwK
LSAgICBtYWNybyhieXRlY29kZSkgXAotICAgIG1hY3JvKGJ5dGVjb2RlSW5kZXgpIFwKLSAgICBt
YWNybyhieXRlY29kZXMpIFwKLSAgICBtYWNybyhieXRlY29kZXNJRCkgXAotICAgIG1hY3JvKGNv
dW50ZXJzKSBcCi0gICAgbWFjcm8ob3Bjb2RlKSBcCi0gICAgbWFjcm8oZGVzY3JpcHRpb24pIFwK
LSAgICBtYWNybyhkZXNjcmlwdGlvbnMpIFwKLSAgICBtYWNybyhoYXNoKSBcCi0gICAgbWFjcm8o
aW5mZXJyZWROYW1lKSBcCi0gICAgbWFjcm8oc291cmNlQ29kZSkgXAotICAgIG1hY3JvKGluc3Ry
dWN0aW9uQ291bnQpIFwKLSAgICBtYWNybyhjb21waWxhdGlvbktpbmQpIFwKLSAgICBtYWNybyhj
b21waWxhdGlvblVJRCkgXAotICAgIG1hY3JvKGNvbXBpbGF0aW9ucykgXAotICAgIG1hY3JvKHBy
b2ZpbGVkQnl0ZWNvZGVzKSBcCi0gICAgbWFjcm8ob3JpZ2luKSBcCi0gICAgbWFjcm8ob3NyRXhp
dFNpdGVzKSBcCi0gICAgbWFjcm8ob3NyRXhpdHMpIFwKLSAgICBtYWNybyhleGVjdXRpb25Db3Vu
dCkgXAotICAgIG1hY3JvKGV4aXRLaW5kKSBcCi0gICAgbWFjcm8obnVtSW5saW5lZENhbGxzKSBc
Ci0gICAgbWFjcm8obnVtSW5saW5lZEdldEJ5SWRzKSBcCi0gICAgbWFjcm8obnVtSW5saW5lZFB1
dEJ5SWRzKSBcCi0gICAgbWFjcm8oYWRkaXRpb25hbEpldHRpc29uUmVhc29uKSBcCi0gICAgbWFj
cm8oamV0dGlzb25SZWFzb24pIFwKLSAgICBtYWNybyh1aWQpIFwKLSAgICBtYWNybyhldmVudHMp
IFwKLSAgICBtYWNybyhzdW1tYXJ5KSBcCi0gICAgbWFjcm8oaXNXYXRjaHBvaW50KSBcCi0gICAg
bWFjcm8oZGV0YWlsKSBcCi0gICAgbWFjcm8odGltZSkgXAotICAgIG1hY3JvKGlkKSBcCi0gICAg
bWFjcm8oaGVhZGVyKSBcCi0gICAgbWFjcm8oY291bnQpIFwKLQotCi1jbGFzcyBEdW1wZXIgewot
cHVibGljOgotICAgIGNsYXNzIEtleXMgewotICAgIHB1YmxpYzoKLSNkZWZpbmUgSlNDX0RFRklO
RV9QUk9GSUxFUl9PQkpFQ1RfS0VZKGtleSkgU3RyaW5nIG1fIyNrZXkgeyAja2V5ICIiX3MgfTsK
LSAgICAgICAgSlNDX1BST0ZJTEVSX09CSkVDVF9LRVlTKEpTQ19ERUZJTkVfUFJPRklMRVJfT0JK
RUNUX0tFWSkKLSN1bmRlZiBKU0NfREVGSU5FX1BST0ZJTEVSX09CSkVDVF9LRVkKLSAgICB9Owot
Ci0gICAgRHVtcGVyKGNvbnN0IERhdGFiYXNlJiBkYXRhYmFzZSkKLSAgICAgICAgOiBtX2RhdGFi
YXNlKGRhdGFiYXNlKQotICAgIHsKLSAgICB9Ci0KLSAgICBjb25zdCBEYXRhYmFzZSYgZGF0YWJh
c2UoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlOyB9Ci0gICAgY29uc3QgS2V5cyYga2V5cygp
IGNvbnN0IHsgcmV0dXJuIG1fa2V5czsgfQotCi1wcml2YXRlOgotICAgIGNvbnN0IERhdGFiYXNl
JiBtX2RhdGFiYXNlOwotICAgIEtleXMgbV9rZXlzOwotfTsKLQotfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OlByb2ZpbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJFdmVudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJFdmVudC5jcHAKaW5kZXggMzFhZjA3OWM3ZGZhLi43OTZkMTliMzU5YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckV2ZW50LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5jcHAKQEAgLTMwLDcg
KzMwLDYgQEAKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlByb2Zp
bGVyQnl0ZWNvZGVzLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJDb21waWxhdGlvbi5oIgotI2luY2x1
ZGUgIlByb2ZpbGVyRHVtcGVyLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJVSUQuaCIKIAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CkBAIC00NSwxOCArNDQsMTkgQEAgdm9pZCBF
dmVudDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgICAgICBvdXQucHJpbnQoIiAo
IiwgbV9kZXRhaWwsICIpIik7CiB9CiAKLVJlZjxKU09OOjpWYWx1ZT4gRXZlbnQ6OnRvSlNPTihE
dW1wZXImIGR1bXBlcikgY29uc3QKK0pTVmFsdWUgRXZlbnQ6OnRvSlMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkgY29uc3QKIHsKLSAgICBhdXRvIHJlc3VsdCA9IEpTT046Ok9iamVjdDo6
Y3JlYXRlKCk7Ci0KLSAgICByZXN1bHQtPnNldERvdWJsZShkdW1wZXIua2V5cygpLm1fdGltZSwg
bV90aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7Ci0gICAgcmVzdWx0LT5zZXREb3Vi
bGUoZHVtcGVyLmtleXMoKS5tX2J5dGVjb2Rlc0lELCBtX2J5dGVjb2Rlcy0+aWQoKSk7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25z
dHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QpOworICAgIAorICAgIHJlc3VsdC0+cHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50aW1lLCBqc051bWJlcihtX3RpbWUuc2Vjb25kc1Np
bmNlRXBvY2goKS52YWx1ZSgpKSk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmJ5dGVjb2Rlc0lELCBqc051bWJlcihtX2J5dGVjb2Rlcy0+aWQoKSkpOwogICAg
IGlmIChtX2NvbXBpbGF0aW9uKQotICAgICAgICByZXN1bHQtPnNldFZhbHVlKGR1bXBlci5rZXlz
KCkubV9jb21waWxhdGlvblVJRCwgbV9jb21waWxhdGlvbi0+dWlkKCkudG9KU09OKGR1bXBlcikp
OwotICAgIHJlc3VsdC0+c2V0U3RyaW5nKGR1bXBlci5rZXlzKCkubV9zdW1tYXJ5LCBTdHJpbmc6
OmZyb21VVEY4KG1fc3VtbWFyeSkpOworICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+Y29tcGlsYXRpb25VSUQsIG1fY29tcGlsYXRpb24tPnVpZCgpLnRvSlMo
Z2xvYmFsT2JqZWN0KSk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnN1bW1hcnksIGpzU3RyaW5nKHZtLCBTdHJpbmc6OmZyb21VVEY4KG1fc3VtbWFyeSkpKTsK
ICAgICBpZiAobV9kZXRhaWwubGVuZ3RoKCkpCi0gICAgICAgIHJlc3VsdC0+c2V0U3RyaW5nKGR1
bXBlci5rZXlzKCkubV9kZXRhaWwsIFN0cmluZzo6ZnJvbVVURjgobV9kZXRhaWwpKTsKLQorICAg
ICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+ZGV0YWlsLCBqc1N0
cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChtX2RldGFpbCkpKTsKKyAgICAKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJFdmVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
RXZlbnQuaAppbmRleCA0NDcwZjBmZDJhYzkuLmM3OTgzMWU4OGZkYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5oCkBAIC0zNCw3ICszNCw2IEBA
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogCiBjbGFzcyBCeXRlY29kZXM7
CiBjbGFzcyBDb21waWxhdGlvbjsKLWNsYXNzIER1bXBlcjsKIAogY2xhc3MgRXZlbnQgewogcHVi
bGljOgpAQCAtNjMsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ1N0cmluZyYgZGV0YWls
KCkgY29uc3QgeyByZXR1cm4gbV9kZXRhaWw7IH0KICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mKSBjb25zdDsKLSAgICBSZWY8SlNPTjo6VmFsdWU+IHRvSlNPTihEdW1wZXImKSBjb25z
dDsKKyAgICBKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICAKIHByaXZh
dGU6CiAgICAgV2FsbFRpbWUgbV90aW1lIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5jcHAKaW5kZXggMWZlMTM4MzBiNmU2Li43NTE1
MDJiOTBjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9TUkV4aXQuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiUHJvZmls
ZXJEdW1wZXIuaCIKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgUHJvZmlsZXIgewogCkBAIC00NSwxNCArNDUsMTUgQEAgT1NSRXhpdDo6fk9TUkV4
aXQoKQogewogfQogCi1SZWY8SlNPTjo6VmFsdWU+IE9TUkV4aXQ6OnRvSlNPTihEdW1wZXImIGR1
bXBlcikgY29uc3QKK0pTVmFsdWUgT1NSRXhpdDo6dG9KUyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KSBjb25zdAogewotICAgIGF1dG8gcmVzdWx0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUo
KTsKLSAgICByZXN1bHQtPnNldERvdWJsZShkdW1wZXIua2V5cygpLm1faWQsIG1faWQpOwotICAg
IHJlc3VsdC0+c2V0VmFsdWUoZHVtcGVyLmtleXMoKS5tX29yaWdpbiwgbV9vcmlnaW4udG9KU09O
KGR1bXBlcikpOwotICAgIHJlc3VsdC0+c2V0U3RyaW5nKGR1bXBlci5rZXlzKCkubV9leGl0S2lu
ZCwgZXhpdEtpbmRUb1N0cmluZyhtX2V4aXRLaW5kKSk7Ci0gICAgcmVzdWx0LT5zZXRCb29sZWFu
KGR1bXBlci5rZXlzKCkubV9pc1dhdGNocG9pbnQsICEhbV9pc1dhdGNocG9pbnQpOwotICAgIHJl
c3VsdC0+c2V0RG91YmxlKGR1bXBlci5rZXlzKCkubV9jb3VudCwgbV9jb3VudGVyKTsKKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0
cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmlkLCBqc051bWJlcihtX2lkKSk7CisgICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm9yaWdpbiwgbV9vcmlnaW4udG9KUyhnbG9iYWxP
YmplY3QpKTsKKyAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+ZXhp
dEtpbmQsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgZXhpdEtpbmRUb1N0cmluZyhtX2V4aXRLaW5k
KSkpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pc1dhdGNo
cG9pbnQsIGpzQm9vbGVhbihtX2lzV2F0Y2hwb2ludCkpOworICAgIHJlc3VsdC0+cHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb3VudCwganNOdW1iZXIobV9jb3VudGVyKSk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyT1NSRXhpdC5oCmluZGV4IGY5ZTY3MjEwNmNjOC4uNzQwNDIyNDc0ZDU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5oCkBA
IC0zMSw5ICszMSw2IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewog
Ci1jbGFzcyBEYXRhYmFzZTsKLWNsYXNzIER1bXBlcjsKLQogY2xhc3MgT1NSRXhpdCB7CiBwdWJs
aWM6CiAgICAgT1NSRXhpdCh1bnNpZ25lZCBpZCwgY29uc3QgT3JpZ2luU3RhY2smLCBFeGl0S2lu
ZCwgYm9vbCBpc1dhdGNocG9pbnQpOwpAQCAtNDgsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdWlu
dDY0X3QgY291bnQoKSBjb25zdCB7IHJldHVybiBtX2NvdW50ZXI7IH0KICAgICB2b2lkIGluY0Nv
dW50KCkgeyBtX2NvdW50ZXIrKzsgfQogCi0gICAgUmVmPEpTT046OlZhbHVlPiB0b0pTT04oRHVt
cGVyJikgY29uc3Q7CisgICAgSlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAK
IHByaXZhdGU6CiAgICAgT3JpZ2luU3RhY2sgbV9vcmlnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAKaW5kZXggZmQ4
N2JmZGZlZWIwLi44ZTg2MzdiNDA1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXRTaXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAKQEAgLTMxLDExICszMSwxNiBA
QAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIAotUmVmPEpTT046OlZh
bHVlPiBPU1JFeGl0U2l0ZTo6dG9KU09OKER1bXBlciYpIGNvbnN0CitKU1ZhbHVlIE9TUkV4aXRT
aXRlOjp0b0pTKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiB7Ci0gICAgYXV0
byByZXN1bHQgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fY29kZUFkZHJlc3Nlcy5zaXplKCk7ICsraSkKLSAgICAgICAgcmVzdWx0LT5wdXNo
U3RyaW5nKHRvU3RyaW5nKFJhd1BvaW50ZXIobV9jb2RlQWRkcmVzc2VzW2ldLmRhdGFMb2NhdGlv
bigpKSkpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNBcnJheSogcmVzdWx0ID0gY29uc3Ry
dWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY29kZUFk
ZHJlc3Nlcy5zaXplKCk7ICsraSkgeworICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGds
b2JhbE9iamVjdCwgaSwganNTdHJpbmcodm0sIHRvU3RyaW5nKFJhd1BvaW50ZXIobV9jb2RlQWRk
cmVzc2VzW2ldLmRhdGFMb2NhdGlvbigpKSkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXRTaXRlLmgKaW5k
ZXggYWY5ZTA1NjljZTM2Li5lZTg0NTdmMTY0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXRTaXRlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuaApAQCAtMzEsOSArMzEsNiBA
QAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIAotY2xhc3MgRGF0YWJh
c2U7Ci1jbGFzcyBEdW1wZXI7Ci0KIGNsYXNzIE9TUkV4aXRTaXRlIHsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBPU1JFeGl0U2l0ZShjb25zdCBWZWN0b3I8Q29kZVB0cjxKU0ludGVybmFsUHRyVGFn
Pj4mIGNvZGVBZGRyZXNzZXMpCkBAIC00Myw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBj
b25zdCBWZWN0b3I8Q29kZVB0cjxKU0ludGVybmFsUHRyVGFnPj4mIGNvZGVBZGRyZXNzKCkgY29u
c3QgeyByZXR1cm4gbV9jb2RlQWRkcmVzc2VzOyB9CiAgICAgCi0gICAgUmVmPEpTT046OlZhbHVl
PiB0b0pTT04oRHVtcGVyJikgY29uc3Q7CisgICAgSlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0
KikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgVmVjdG9yPENvZGVQdHI8SlNJbnRlcm5hbFB0clRh
Zz4+IG1fY29kZUFkZHJlc3NlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlck9yaWdpbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJPcmlnaW4uY3BwCmluZGV4IDYxNGVlYWJmYTQ1MC4uZmZhZDQ1ZDU5M2JmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5j
cHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2lu
Y2x1ZGUgIlByb2ZpbGVyQnl0ZWNvZGVzLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJEYXRhYmFzZS5o
IgotI2luY2x1ZGUgIlByb2ZpbGVyRHVtcGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgUHJvZmlsZXIgewogCkBAIC00NSwxMSArNDQsMTIgQEAgdm9pZCBPcmlnaW46OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBvdXQucHJpbnQoKm1fYnl0ZWNvZGVzLCAiICIsIG1f
Ynl0ZWNvZGVJbmRleCk7CiB9CiAKLVJlZjxKU09OOjpWYWx1ZT4gT3JpZ2luOjp0b0pTT04oRHVt
cGVyJiBkdW1wZXIpIGNvbnN0CitKU1ZhbHVlIE9yaWdpbjo6dG9KUyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KSBjb25zdAogewotICAgIGF1dG8gcmVzdWx0ID0gSlNPTjo6T2JqZWN0Ojpj
cmVhdGUoKTsKLSAgICByZXN1bHQtPnNldERvdWJsZShkdW1wZXIua2V5cygpLm1fYnl0ZWNvZGVz
SUQsIG1fYnl0ZWNvZGVzLT5pZCgpKTsKLSAgICByZXN1bHQtPnNldERvdWJsZShkdW1wZXIua2V5
cygpLm1fYnl0ZWNvZGVJbmRleCwgbV9ieXRlY29kZUluZGV4Lm9mZnNldCgpKTsKKyAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVj
dEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmJ5dGVjb2Rlc0lELCBqc051bWJlcihtX2J5dGVjb2Rlcy0+aWQoKSkp
OworICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5ieXRlY29kZUlu
ZGV4LCBqc051bWJlcihtX2J5dGVjb2RlSW5kZXgub2Zmc2V0KCkpKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJPcmlnaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9y
aWdpbi5oCmluZGV4IGU4ZjQ0NTQ5ODcyYi4uNGRkN2Q4NzZhNjVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4uaApAQCAtMzgsNyArMzgsNiBA
QCBuYW1lc3BhY2UgUHJvZmlsZXIgewogCiBjbGFzcyBCeXRlY29kZXM7CiBjbGFzcyBEYXRhYmFz
ZTsKLWNsYXNzIER1bXBlcjsKIAogY2xhc3MgT3JpZ2luIHsKIHB1YmxpYzoKQEAgLTY3LDcgKzY2
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdDsK
ICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKLSAgICBSZWY8SlNPTjo6
VmFsdWU+IHRvSlNPTihEdW1wZXImKSBjb25zdDsKKyAgICBKU1ZhbHVlIHRvSlMoSlNHbG9iYWxP
YmplY3QqKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBCeXRlY29kZXMqIG1fYnl0ZWNvZGVzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2lu
U3RhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2lu
U3RhY2suY3BwCmluZGV4IDhjZjcyNWJjOTNjMi4uMDA1ZGZhZmI4NTJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW5TdGFjay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2suY3Bw
CkBAIC05NywxMSArOTcsMTggQEAgdm9pZCBPcmlnaW5TdGFjazo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogICAgIH0KIH0KIAotUmVmPEpTT046OlZhbHVlPiBPcmlnaW5TdGFjazo6dG9K
U09OKER1bXBlciYgZHVtcGVyKSBjb25zdAorSlNWYWx1ZSBPcmlnaW5TdGFjazo6dG9KUyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAogewotICAgIGF1dG8gcmVzdWx0ID0gSlNP
Tjo6QXJyYXk6OmNyZWF0ZSgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3N0YWNr
LnNpemUoKTsgKytpKQotICAgICAgICByZXN1bHQtPnB1c2hWYWx1ZShtX3N0YWNrW2ldLnRvSlNP
TihkdW1wZXIpKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTQXJyYXkqIHJlc3VsdCA9IGNv
bnN0cnVjdEVtcHR5QXJyYXkoZ2xvYmFsT2JqZWN0LCBudWxscHRyKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX3N0YWNrLnNpemUoKTsgKytpKSB7CisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgo
Z2xvYmFsT2JqZWN0LCBpLCBtX3N0YWNrW2ldLnRvSlMoZ2xvYmFsT2JqZWN0KSk7CisgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgfQorICAgIAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlck9yaWdpblN0YWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJPcmlnaW5TdGFjay5oCmluZGV4IDhlOWQzZmI5OWQ5Ni4uNTE5NWExM2NiZWI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW5T
dGFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdp
blN0YWNrLmgKQEAgLTM4LDcgKzM4LDYgQEAgY2xhc3MgQ29kZU9yaWdpbjsKIG5hbWVzcGFjZSBQ
cm9maWxlciB7CiAKIGNsYXNzIERhdGFiYXNlOwotY2xhc3MgRHVtcGVyOwogCiBjbGFzcyBPcmln
aW5TdGFjayB7CiBwdWJsaWM6CkBAIC02Niw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
SGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJikgY29uc3Q7Ci0gICAgUmVmPEpTT046OlZhbHVlPiB0b0pTT04oRHVtcGVyJikgY29u
c3Q7CisgICAgSlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgCiBwcml2
YXRlOgogICAgIFZlY3RvcjxPcmlnaW4sIDE+IG1fc3RhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5j
cHAKaW5kZXggZmM1NjcxZjI3MDA5Li5mYzJiNWNiNDYwN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rl
cy5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNs
dWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIlByb2ZpbGVyRHVtcGVyLmgiCiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogCkBAIC00MiwxMSArNDEsMTQg
QEAgUHJvZmlsZWRCeXRlY29kZXM6On5Qcm9maWxlZEJ5dGVjb2RlcygpCiB7CiB9CiAKLVJlZjxK
U09OOjpWYWx1ZT4gUHJvZmlsZWRCeXRlY29kZXM6OnRvSlNPTihEdW1wZXImIGR1bXBlcikgY29u
c3QKK0pTVmFsdWUgUHJvZmlsZWRCeXRlY29kZXM6OnRvSlMoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkgY29uc3QKIHsKLSAgICBhdXRvIHJlc3VsdCA9IEpTT046Ok9iamVjdDo6Y3JlYXRl
KCk7Ci0gICAgcmVzdWx0LT5zZXREb3VibGUoZHVtcGVyLmtleXMoKS5tX2J5dGVjb2Rlc0lELCBt
X2J5dGVjb2Rlcy0+aWQoKSk7Ci0gICAgYWRkU2VxdWVuY2VQcm9wZXJ0aWVzKGR1bXBlciwgcmVz
dWx0LmdldCgpKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgSlNPYmpl
Y3QqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7CisgICAgCisg
ICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ5dGVjb2Rlc0lELCBq
c051bWJlcihtX2J5dGVjb2Rlcy0+aWQoKSkpOworICAgIGFkZFNlcXVlbmNlUHJvcGVydGllcyhn
bG9iYWxPYmplY3QsIHJlc3VsdCk7CisgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyUHJvZmlsZWRC
eXRlY29kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclByb2Zp
bGVkQnl0ZWNvZGVzLmgKaW5kZXggNzMwNTMwNGY3N2YzLi41MjhjMTRhZDg5ZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNv
ZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyUHJvZmls
ZWRCeXRlY29kZXMuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgY29uc3Qg
Qnl0ZWNvZGVzKiBieXRlY29kZXMoKSBjb25zdCB7IHJldHVybiBtX2J5dGVjb2RlczsgfQogICAg
IAotICAgIFJlZjxKU09OOjpWYWx1ZT4gdG9KU09OKER1bXBlciYpIGNvbnN0OworICAgIEpTVmFs
dWUgdG9KUyhKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIEJ5dGVjb2Rl
cyogbV9ieXRlY29kZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJVSUQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyVUlELmNwcAppbmRleCA0ZmJmNWE5YmIwYzcuLmYwMDBjOTg4ODNmNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyVUlELmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwCkBAIC00OCw5ICs0OCw5
IEBAIHZvaWQgVUlEOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgb3V0LnByaW50
KG1fdWlkKTsKIH0KIAotUmVmPEpTT046OlZhbHVlPiBVSUQ6OnRvSlNPTihEdW1wZXImKSBjb25z
dAorSlNWYWx1ZSBVSUQ6OnRvSlMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QK
IHsKLSAgICByZXR1cm4gSlNPTjo6VmFsdWU6OmNyZWF0ZSh0b1N0cmluZygqdGhpcykpOworICAg
IHJldHVybiBqc1N0cmluZyhnbG9iYWxPYmplY3QtPnZtKCksIHRvU3RyaW5nKCp0aGlzKSk7CiB9
CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpQcm9maWxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyVUlELmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQuaAppbmRleCA1YmY0OWI4YjBhY2QuLmIyMzE2ZmI0OWM1
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyVUlE
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyVUlELmgKQEAg
LTI2LDE0ICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgi
Ci0jaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0u
aD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKLWNsYXNzIERhdGFi
YXNlOwotY2xhc3MgRHVtcGVyOwotCiBjbGFzcyBVSUQgewogcHVibGljOgogICAgIFVJRCgpCkBA
IC04MSw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiAgICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJikgY29uc3Q7Ci0gICAgUmVmPEpTT046OlZhbHVlPiB0b0pTT04oRHVtcGVyJikgY29u
c3Q7CisgICAgSlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgCiBwcml2
YXRlOgogICAgIHVpbnQ2NF90IG1fdWlkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggNTIzMzEzNDk2MDVhLi4yNTZiY2MxN2Q0
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaApAQCAtNzAsNiArNzAsNyBAQAogICAgIG1hY3JvKF9fbG9va3VwR2V0dGVyX18pIFwK
ICAgICBtYWNybyhfX2xvb2t1cFNldHRlcl9fKSBcCiAgICAgbWFjcm8oYWRkKSBcCisgICAgbWFj
cm8oYWRkaXRpb25hbEpldHRpc29uUmVhc29uKSBcCiAgICAgbWFjcm8oYW5vbnltb3VzKSBcCiAg
ICAgbWFjcm8oYXJndW1lbnRzKSBcCiAgICAgbWFjcm8oYXMpIFwKQEAgLTc4LDYgKzc5LDEwIEBA
CiAgICAgbWFjcm8oYmluZCkgXAogICAgIG1hY3JvKGJ5dGVMZW5ndGgpIFwKICAgICBtYWNybyhi
eXRlT2Zmc2V0KSBcCisgICAgbWFjcm8oYnl0ZWNvZGUpIFwKKyAgICBtYWNybyhieXRlY29kZUlu
ZGV4KSBcCisgICAgbWFjcm8oYnl0ZWNvZGVzKSBcCisgICAgbWFjcm8oYnl0ZWNvZGVzSUQpIFwK
ICAgICBtYWNybyhjYWxlbmRhcikgXAogICAgIG1hY3JvKGNhbGxlZSkgXAogICAgIG1hY3JvKGNh
bGxlcikgXApAQCAtODYsMTAgKzkxLDE0IEBACiAgICAgbWFjcm8oY2xlYXIpIFwKICAgICBtYWNy
byhjb2xsYXRpb24pIFwKICAgICBtYWNybyhjb2x1bW4pIFwKKyAgICBtYWNybyhjb21waWxhdGlv
bktpbmQpIFwKKyAgICBtYWNybyhjb21waWxhdGlvblVJRCkgXAorICAgIG1hY3JvKGNvbXBpbGF0
aW9ucykgXAogICAgIG1hY3JvKGNvbXBpbGUpIFwKICAgICBtYWNybyhjb25maWd1cmFibGUpIFwK
ICAgICBtYWNybyhjb25zdHJ1Y3RvcikgXAogICAgIG1hY3JvKGNvdW50KSBcCisgICAgbWFjcm8o
Y291bnRlcnMpIFwKICAgICBtYWNybyhkYXRlU3R5bGUpIFwKICAgICBtYWNybyhkYXkpIFwKICAg
ICBtYWNybyhkYXlzKSBcCkBAIC05OCw2ICsxMDcsNyBAQAogICAgIG1hY3JvKGRlZmluZVByb3Bl
cnR5KSBcCiAgICAgbWFjcm8oZGVyZWYpIFwKICAgICBtYWNybyhkZXNjcmlwdGlvbikgXAorICAg
IG1hY3JvKGRlc2NyaXB0aW9ucykgXAogICAgIG1hY3JvKGRldGFpbCkgXAogICAgIG1hY3JvKGRp
c3BsYXlOYW1lKSBcCiAgICAgbWFjcm8oZG9uZSkgXApAQCAtMTA3LDcgKzExNywxMCBAQAogICAg
IG1hY3JvKGVyYVllYXIpIFwKICAgICBtYWNybyhlcnJvcnMpIFwKICAgICBtYWNybyhldmFsKSBc
CisgICAgbWFjcm8oZXZlbnRzKSBcCiAgICAgbWFjcm8oZXhlYykgXAorICAgIG1hY3JvKGV4ZWN1
dGlvbkNvdW50KSBcCisgICAgbWFjcm8oZXhpdEtpbmQpIFwKICAgICBtYWNybyhleHBvcnRzKSBc
CiAgICAgbWFjcm8oZmFsbGJhY2spIFwKICAgICBtYWNybyhmbGFncykgXApAQCAtMTQzLDYgKzE1
Niw3IEBACiAgICAgbWFjcm8oaWdub3JlUHVuY3R1YXRpb24pIFwKICAgICBtYWNybyhpbmRleCkg
XAogICAgIG1hY3JvKGluZGljZXMpIFwKKyAgICBtYWNybyhpbmZlcnJlZE5hbWUpIFwKICAgICBt
YWNybyhpbnB1dCkgXAogICAgIG1hY3JvKGlzb0RheSkgXAogICAgIG1hY3JvKGlzb0hvdXIpIFwK
QEAgLTE1MywxMiArMTY3LDE1IEBACiAgICAgbWFjcm8oaXNvTmFub3NlY29uZCkgXAogICAgIG1h
Y3JvKGlzb1NlY29uZCkgXAogICAgIG1hY3JvKGlzb1llYXIpIFwKKyAgICBtYWNybyhpbnN0cnVj
dGlvbkNvdW50KSBcCiAgICAgbWFjcm8oaXNBcnJheSkgXAogICAgIG1hY3JvKGlzRW5hYmxlZCkg
XAogICAgIG1hY3JvKGlzUHJvdG90eXBlT2YpIFwKICAgICBtYWNybyhpc1ZpZXcpIFwKKyAgICBt
YWNybyhpc1dhdGNocG9pbnQpIFwKICAgICBtYWNybyhpc1dlbGxGb3JtZWQpIFwKICAgICBtYWNy
byhpc1dvcmRMaWtlKSBcCisgICAgbWFjcm8oamV0dGlzb25SZWFzb24pIFwKICAgICBtYWNybyhq
b2luKSBcCiAgICAgbWFjcm8obGFuZ3VhZ2UpIFwKICAgICBtYWNybyhsYW5ndWFnZURpc3BsYXkp
IFwKQEAgLTE5NSwxNCArMjEyLDIyIEBACiAgICAgbWFjcm8obmFub3NlY29uZHNEaXNwbGF5KSBc
CiAgICAgbWFjcm8obmV4dCkgXAogICAgIG1hY3JvKG5vdykgXAorICAgIG1hY3JvKG51bUlubGlu
ZWRDYWxscykgXAorICAgIG1hY3JvKG51bUlubGluZWRHZXRCeUlkcykgXAorICAgIG1hY3JvKG51
bUlubGluZWRQdXRCeUlkcykgXAogICAgIG1hY3JvKG51bWJlcmluZ1N5c3RlbSkgXAogICAgIG1h
Y3JvKG51bWVyaWMpIFwKICAgICBtYWNybyhvZikgXAorICAgIG1hY3JvKG9wY29kZSkgXAorICAg
IG1hY3JvKG9yaWdpbikgXAorICAgIG1hY3JvKG9zckV4aXRTaXRlcykgXAorICAgIG1hY3JvKG9z
ckV4aXRzKSBcCiAgICAgbWFjcm8ob3ZlcmZsb3cpIFwKICAgICBtYWNybyhvd25LZXlzKSBcCiAg
ICAgbWFjcm8ocGFyc2UpIFwKICAgICBtYWNybyhwYXJzZUludCkgXAogICAgIG1hY3JvKHBhcnNl
RmxvYXQpIFwKKyAgICBtYWNybyhwcm9maWxlZEJ5dGVjb2RlcykgXAogICAgIG1hY3JvKHByb3Bl
cnR5SXNFbnVtZXJhYmxlKSBcCiAgICAgbWFjcm8ocHJvdG90eXBlKSBcCiAgICAgbWFjcm8ocmF3
KSBcCkBAIC0yMjYsMTIgKzI1MSwxNCBAQAogICAgIG1hY3JvKHNsaWNlKSBcCiAgICAgbWFjcm8o
c21hbGxlc3RVbml0KSBcCiAgICAgbWFjcm8oc291cmNlKSBcCisgICAgbWFjcm8oc291cmNlQ29k
ZSkgXAogICAgIG1hY3JvKHNvdXJjZVVSTCkgXAogICAgIG1hY3JvKHN0YWNrKSBcCiAgICAgbWFj
cm8oc3RhY2tUcmFjZUxpbWl0KSBcCiAgICAgbWFjcm8oc3RpY2t5KSBcCiAgICAgbWFjcm8oc3R5
bGUpIFwKICAgICBtYWNybyhzdWJhcnJheSkgXAorICAgIG1hY3JvKHN1bW1hcnkpIFwKICAgICBt
YWNybyh0YXJnZXQpIFwKICAgICBtYWNybyh0ZXN0KSBcCiAgICAgbWFjcm8odGhlbikgXApAQCAt
MjUxLDYgKzI3OCw3IEBACiAgICAgbWFjcm8odHJhaWxpbmdaZXJvRGlzcGxheSkgXAogICAgIG1h
Y3JvKHRyYW5zZmVyKSBcCiAgICAgbWFjcm8odHlwZSkgXAorICAgIG1hY3JvKHVpZCkgXAogICAg
IG1hY3JvKHVuaWNvZGUpIFwKICAgICBtYWNybyh1bmljb2RlU2V0cykgXAogICAgIG1hY3JvKHVu
aXQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNM
aXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4
IDU0NDU3Yzc5ZjkwZS4uNjhlZTIxZTVlYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTI2OSw5ICsyNjksNyBAQCBib29sIGNhblVzZVdlYkFz
c2VtYmx5RmFzdE1lbW9yeSgpOwogICAgIHYoSW50MzIsIHByaW9yaXR5RGVsdGFPZldhc21Db21w
aWxlclRocmVhZHMsIGNvbXB1dGVQcmlvcml0eURlbHRhT2ZXb3JrZXJUaHJlYWRzKC0xLCAwKSwg
Tm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAogICAgIHYoQm9vbCwgdXNlUHJvZmlsZXIsIGZhbHNl
LCBOb3JtYWwsIG51bGxwdHIpIFwKLSAgICB2KEJvb2wsIGR1bXBQcm9maWxlckRhdGFBdEV4aXQs
IGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIGRpc2Fzc2VtYmxlQmFzZWxp
bmVGb3JQcm9maWxlciwgdHJ1ZSwgTm9ybWFsLCBudWxscHRyKSBcCi0gICAgdihVbnNpZ25lZCwg
YWJicmV2aWF0ZVNvdXJjZUNvZGVGb3JQcm9maWxlciwgMCwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgXAogICAgIHYoQm9vbCwgdXNlQXJjaGl0ZWN0dXJlU3BlY2lmaWNPcHRpbWl6YXRpb25zLCB0
cnVlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5jcHAKaW5kZXggMzhmMTc0YWJhNWFmLi5hMDc4Mzk0MzlmNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5jcHAKQEAgLTMxNSwxNCArMzE1LDEyIEBAIFZNOjpWTShWTVR5cGUgdm1U
eXBlLCBIZWFwVHlwZSBoZWFwVHlwZSwgV1RGOjpSdW5Mb29wKiBydW5Mb29wLCBib29sKiBzdWNj
ZXNzKQogICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VQcm9maWxlcigpKSkgewogICAgICAg
ICBtX3BlckJ5dGVjb2RlUHJvZmlsZXIgPSBtYWtlVW5pcXVlPFByb2ZpbGVyOjpEYXRhYmFzZT4o
KnRoaXMpOwogCi0gICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpkdW1wUHJvZmlsZXJEYXRh
QXRFeGl0KCkpKSB7Ci0gICAgICAgICAgICBTdHJpbmdQcmludFN0cmVhbSBwYXRoT3V0OwotICAg
ICAgICAgICAgY29uc3QgY2hhciogcHJvZmlsZXJQYXRoID0gZ2V0ZW52KCJKU0NfUFJPRklMRVJf
UEFUSCIpOwotICAgICAgICAgICAgaWYgKHByb2ZpbGVyUGF0aCkKLSAgICAgICAgICAgICAgICBw
YXRoT3V0LnByaW50KHByb2ZpbGVyUGF0aCwgIi8iKTsKLSAgICAgICAgICAgIHBhdGhPdXQucHJp
bnQoIkpTQ1Byb2ZpbGUtIiwgZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiLSIsIG1fcGVyQnl0ZWNv
ZGVQcm9maWxlci0+ZGF0YWJhc2VJRCgpLCAiLmpzb24iKTsKLSAgICAgICAgICAgIG1fcGVyQnl0
ZWNvZGVQcm9maWxlci0+cmVnaXN0ZXJUb1NhdmVBdEV4aXQocGF0aE91dC50b0NTdHJpbmcoKS5k
YXRhKCkpOwotICAgICAgICB9CisgICAgICAgIFN0cmluZ1ByaW50U3RyZWFtIHBhdGhPdXQ7Cisg
ICAgICAgIGNvbnN0IGNoYXIqIHByb2ZpbGVyUGF0aCA9IGdldGVudigiSlNDX1BST0ZJTEVSX1BB
VEgiKTsKKyAgICAgICAgaWYgKHByb2ZpbGVyUGF0aCkKKyAgICAgICAgICAgIHBhdGhPdXQucHJp
bnQocHJvZmlsZXJQYXRoLCAiLyIpOworICAgICAgICBwYXRoT3V0LnByaW50KCJKU0NQcm9maWxl
LSIsIGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIi0iLCBtX3BlckJ5dGVjb2RlUHJvZmlsZXItPmRh
dGFiYXNlSUQoKSwgIi5qc29uIik7CisgICAgICAgIG1fcGVyQnl0ZWNvZGVQcm9maWxlci0+cmVn
aXN0ZXJUb1NhdmVBdEV4aXQocGF0aE91dC50b0NTdHJpbmcoKS5kYXRhKCkpOwogICAgIH0KIAog
ICAgIC8vIEluaXRpYWxpemUgdGhpcyBsYXN0LCBhcyBhIGZyZWUgd2F5IG9mIGFzc2VydGluZyB0
aGF0IFZNIGluaXRpYWxpemF0aW9uIGl0c2VsZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
SlNPTlZhbHVlcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAppbmRleCAzZTQx
MGMxNDQzNzUuLjI4NWU1OWVjOGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSlNPTlZh
bHVlcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAKQEAgLTMzLDcgKzMz
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgog
Ci0jaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC00NTgsNiArNDU3LDEzIEBAIFJlZlB0
cjxKU09OOjpWYWx1ZT4gYnVpbGRWYWx1ZShjb25zdCBDb2RlVW5pdCogc3RhcnQsIGNvbnN0IENv
ZGVVbml0KiBlbmQsIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAoraW5saW5lIHZvaWQg
YXBwZW5kRG91YmxlUXVvdGVkU3RyaW5nKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIFN0cmluZ1Zp
ZXcgc3RyaW5nKQoreworICAgIGJ1aWxkZXIuYXBwZW5kKCciJyk7CisgICAgVmFsdWU6OmVzY2Fw
ZVN0cmluZyhidWlsZGVyLCBzdHJpbmcpOworICAgIGJ1aWxkZXIuYXBwZW5kKCciJyk7Cit9CisK
IH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQogCiBSZWY8VmFsdWU+IFZhbHVlOjpudWxsKCkKQEAg
LTUzNiw2ICs1NDIsNDYgQEAgUmVmUHRyPFZhbHVlPiBWYWx1ZTo6cGFyc2VKU09OKFN0cmluZ1Zp
ZXcganNvbikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lkIFZhbHVlOjplc2NhcGVTdHJp
bmcoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgU3RyaW5nVmlldyBzdHJpbmcpCit7CisgICAgZm9y
IChVQ2hhciBjb2RlVW5pdCA6IHN0cmluZy5jb2RlVW5pdHMoKSkgeworICAgICAgICBzd2l0Y2gg
KGNvZGVVbml0KSB7CisgICAgICAgIGNhc2UgJ1xiJzoKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCJcXGIiKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjYXNlICdcZic6Cisg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiXFxmIik7CisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgY2FzZSAnXG4nOgorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIlxcbiIpOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNhc2UgJ1xyJzoKKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJcXHIiKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjYXNl
ICdcdCc6CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiXFx0Iik7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgY2FzZSAnXFwnOgorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
IlxcXFwiKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjYXNlICciJzoKKyAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcXFwiIik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfQorICAgICAgICAvLyBXZSBlc2NhcGUgPCBhbmQgPiB0byBwcmV2ZW50IHNjcmlwdCBl
eGVjdXRpb24uCisgICAgICAgIGlmIChjb2RlVW5pdCA+PSAzMiAmJiBjb2RlVW5pdCA8IDEyNyAm
JiBjb2RlVW5pdCAhPSAnPCcgJiYgY29kZVVuaXQgIT0gJz4nKSB7CisgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZChjb2RlVW5pdCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
ICAgICAgICAvLyBXZSBjb3VsZCBlbmNvZGUgY2hhcmFjdGVycyA+PSAxMjcgYXMgVVRGLTggaW5z
dGVhZCBvZiBcdSBlc2NhcGUgc2VxdWVuY2VzLgorICAgICAgICAvLyBXZSBjb3VsZCBoYW5kbGUg
c3Vycm9nYXRlcyBoZXJlIGlmIGNhbGxlcnMgd2FudGVkIHRoYXQ7IGZvciBub3cgd2UganVzdAor
ICAgICAgICAvLyB3cml0ZSB0aGVtIG91dCBhcyBhIFx1IHNlcXVlbmNlLCBzbyBhIHN1cnJvZ2F0
ZSBwYWlyIGFwcGVhcnMgYXMgdHdvIG9mIHRoZW0uCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJc
XHUiLAorICAgICAgICAgICAgdXBwZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQoY29kZVVuaXQgPj4g
OCksIGxvd2VyTmliYmxlVG9BU0NJSUhleERpZ2l0KGNvZGVVbml0ID4+IDgpLAorICAgICAgICAg
ICAgdXBwZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQoY29kZVVuaXQpLCBsb3dlck5pYmJsZVRvQVND
SUlIZXhEaWdpdChjb2RlVW5pdCkpOworICAgIH0KK30KKwogU3RyaW5nIFZhbHVlOjp0b0pTT05T
dHJpbmcoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwpAQCAtNTcyLDU3ICs2
MTgsNiBAQCBTdHJpbmcgVmFsdWU6OmFzU3RyaW5nKCkgY29uc3QKICAgICByZXR1cm4gbV92YWx1
ZS5zdHJpbmc7CiB9CiAKLXZvaWQgVmFsdWU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
LXsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVHlwZTo6TnVsbDoKLSAgICAgICAg
b3V0LnByaW50KCJudWxsIl9zKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBUeXBlOjpCb29s
ZWFuOgotICAgICAgICBvdXQucHJpbnQobV92YWx1ZS5ib29sZWFuID8gInRydWUiX3MgOiAiZmFs
c2UiX3MpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFR5cGU6OlN0cmluZzogewotICAgICAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kUXVvdGVkSlNP
TlN0cmluZyhtX3ZhbHVlLnN0cmluZyk7Ci0gICAgICAgIG91dC5wcmludChidWlsZGVyLnRvU3Ry
aW5nKCkpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBUeXBlOjpEb3VibGU6Ci0g
ICAgY2FzZSBUeXBlOjpJbnRlZ2VyOiB7Ci0gICAgICAgIGlmICghc3RkOjppc2Zpbml0ZShtX3Zh
bHVlLm51bWJlcikpCi0gICAgICAgICAgICBvdXQucHJpbnQoIm51bGwiX3MpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBvdXQucHJpbnQobWFrZVN0cmluZyhtX3ZhbHVlLm51bWJlcikpOwot
ICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBUeXBlOjpPYmplY3Q6IHsKLSAgICAgICAg
YXV0byYgb2JqZWN0ID0gKnN0YXRpY19jYXN0PGNvbnN0IE9iamVjdEJhc2UqPih0aGlzKTsKLSAg
ICAgICAgQ29tbWFQcmludGVyIGNvbW1hKCIsIik7Ci0gICAgICAgIG91dC5wcmludCgieyIpOwot
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGtleSA6IG9iamVjdC5tX29yZGVyKSB7Ci0gICAgICAg
ICAgICBhdXRvIGZpbmRSZXN1bHQgPSBvYmplY3QubV9tYXAuZmluZChrZXkpOwotICAgICAgICAg
ICAgQVNTRVJUKGZpbmRSZXN1bHQgIT0gb2JqZWN0Lm1fbWFwLmVuZCgpKTsKLSAgICAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kUXVvdGVk
SlNPTlN0cmluZyhmaW5kUmVzdWx0LT5rZXkpOwotICAgICAgICAgICAgb3V0LnByaW50KGNvbW1h
LCBidWlsZGVyLnRvU3RyaW5nKCksICI6IiwgZmluZFJlc3VsdC0+dmFsdWUuZ2V0KCkpOwotICAg
ICAgICB9Ci0gICAgICAgIG91dC5wcmludCgifSIpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0g
ICAgY2FzZSBUeXBlOjpBcnJheTogewotICAgICAgICBhdXRvJiBhcnJheSA9ICpzdGF0aWNfY2Fz
dDxjb25zdCBBcnJheUJhc2UqPih0aGlzKTsKLSAgICAgICAgQ29tbWFQcmludGVyIGNvbW1hKCIs
Iik7Ci0gICAgICAgIG91dC5wcmludCgiWyIpOwotICAgICAgICBmb3IgKGF1dG8mIHZhbHVlIDog
YXJyYXkubV9tYXApCi0gICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsIHZhbHVlLmdldCgpKTsK
LSAgICAgICAgb3V0LnByaW50KCJdIik7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBkZWZh
dWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci19Ci0KIHZvaWQgVmFs
dWU6OndyaXRlSlNPTihTdHJpbmdCdWlsZGVyJiBvdXRwdXQpIGNvbnN0CiB7CiAgICAgc3dpdGNo
IChtX3R5cGUpIHsKQEAgLTYzNiw3ICs2MzEsNyBAQCB2b2lkIFZhbHVlOjp3cml0ZUpTT04oU3Ry
aW5nQnVpbGRlciYgb3V0cHV0KSBjb25zdAogICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgiZmFs
c2UiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUeXBlOjpTdHJpbmc6Ci0gICAgICAgIG91
dHB1dC5hcHBlbmRRdW90ZWRKU09OU3RyaW5nKG1fdmFsdWUuc3RyaW5nKTsKKyAgICAgICAgYXBw
ZW5kRG91YmxlUXVvdGVkU3RyaW5nKG91dHB1dCwgbV92YWx1ZS5zdHJpbmcpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFR5cGU6OkRvdWJsZToKICAgICBjYXNlIFR5cGU6OkludGVnZXI6IHsK
QEAgLTc1Myw3ICs3NDgsNyBAQCB2b2lkIE9iamVjdEJhc2U6OndyaXRlSlNPTihTdHJpbmdCdWls
ZGVyJiBvdXRwdXQpIGNvbnN0CiAgICAgICAgIEFTU0VSVChmaW5kUmVzdWx0ICE9IG1fbWFwLmVu
ZCgpKTsKICAgICAgICAgaWYgKGkpCiAgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCcsJyk7Ci0g
ICAgICAgIG91dHB1dC5hcHBlbmRRdW90ZWRKU09OU3RyaW5nKGZpbmRSZXN1bHQtPmtleSk7Cisg
ICAgICAgIGFwcGVuZERvdWJsZVF1b3RlZFN0cmluZyhvdXRwdXQsIGZpbmRSZXN1bHQtPmtleSk7
CiAgICAgICAgIG91dHB1dC5hcHBlbmQoJzonKTsKICAgICAgICAgZmluZFJlc3VsdC0+dmFsdWUt
PndyaXRlSlNPTihvdXRwdXQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0pT
T05WYWx1ZXMuaCBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaAppbmRleCBkZDc4MjEyMmFi
MDEuLmQ2M2RjYjE4NTkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaApAQCAtMzgsOCArMzgsNiBAQAogCiBu
YW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgUHJpbnRTdHJlYW07Ci0KIC8vIE1ha2Ugc3VyZSBjb21w
aWxlZCBzeW1ib2xzIGNvbnRhaW4gdGhlIFdURiBuYW1lc3BhY2UgcHJlZml4LCBidXQKIC8vIHVz
ZSBhIGRpZmZlcmVudCBpbm5lciBuYW1lc3BhY2UgbmFtZSBzbyB0aGF0IEpTT046OlZhbHVlIGlz
IG5vdCBhbWJpZ2lvdXMuCiAvLyBPdGhlcndpc2UsIHRoZSBjb21waWxlciB3b3VsZCBoYXZlIGJv
dGggV1RGOjpKU09OOjpWYWx1ZSBhbmQgSlNPTjo6VmFsdWUKQEAgLTEwNSwxMiArMTAzLDExIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxBcnJheT4gYXNBcnJheSgpOwogCiAgICAgc3Rh
dGljIFJlZlB0cjxWYWx1ZT4gcGFyc2VKU09OKFN0cmluZ1ZpZXcpOworICAgIHN0YXRpYyB2b2lk
IGVzY2FwZVN0cmluZyhTdHJpbmdCdWlsZGVyJiwgU3RyaW5nVmlldyk7CiAKICAgICBTdHJpbmcg
dG9KU09OU3RyaW5nKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlSlNPTihTdHJpbmdC
dWlsZGVyJiBvdXRwdXQpIGNvbnN0OwogCi0gICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29u
c3Q7Ci0KICAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3Q7CiAKICAgICAvLyBG
SVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTc5ODQ3PiByZW1vdmUgdGhlc2UgZnVuY3Rpb25z
IHdoZW4gbGVnYWN5IEluc3BlY3Rvck9iamVjdCBzeW1ib2xzIGFyZSBubyBsb25nZXIgbmVlZGVk
LgpAQCAtMTY2LDcgKzE2Myw2IEBAIHByaXZhdGU6CiAKIGNsYXNzIE9iamVjdEJhc2UgOiBwdWJs
aWMgVmFsdWUgewogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgVmFsdWU7CiAgICAgdXNpbmcg
RGF0YVN0b3JhZ2UgPSBIYXNoTWFwPFN0cmluZywgUmVmPFZhbHVlPj47CiAgICAgdXNpbmcgT3Jk
ZXJTdG9yYWdlID0gVmVjdG9yPFN0cmluZz47CiAKQEAgLTI2MSw3ICsyNTcsNiBAQCBwdWJsaWM6
CiAKIGNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBBcnJheUJhc2UgOiBwdWJsaWMgVmFsdWUgewog
cHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgVmFsdWU7CiAgICAgdXNpbmcgRGF0YVN0b3JhZ2Ug
PSBWZWN0b3I8UmVmPFZhbHVlPj47CiAKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMzk0YWMzZTdiMzYxLi43MzkzZWUwMDJkMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03
NTIzLDcgKzc1MjMsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldEJ5dGVjb2RlUHJvZmlsZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIGNhbGxiYQogICAgIGlmIChMSUtFTFko
IWNvbW1vblZNKCkubV9wZXJCeXRlY29kZVByb2ZpbGVyKSkKICAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKHsgfSk7CiAKLSAgICBTdHJpbmcgcmVzdWx0ID0gY29tbW9uVk0oKS5tX3BlckJ5dGVjb2Rl
UHJvZmlsZXItPnRvSlNPTigpLT50b0pTT05TdHJpbmcoKTsKKyAgICBTdHJpbmcgcmVzdWx0ID0g
Y29tbW9uVk0oKS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPnRvSlNPTigpOwogICAgIEFTU0VSVChy
ZXN1bHQubGVuZ3RoKCkpOwogICAgIGNhbGxiYWNrKHJlc3VsdCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>