<?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>223543</bug_id>
          
          <creation_ts>2021-03-19 16:56:14 -0700</creation_ts>
          <short_desc>Rename WebCore&apos;s DisplayRefreshMonitorMac to indicate that it&apos;s only used in legacy WebKit</short_desc>
          <delta_ts>2021-03-22 11:58:14 -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>WebCore Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1741950</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-19 16:56:14 -0700</bug_when>
    <thetext>Rename WebCore&apos;s DisplayRefreshMonitorMac to indicate that it&apos;s only used in legacy WebKit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741951</commentid>
    <comment_count>1</comment_count>
      <attachid>423790</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-19 16:57:44 -0700</bug_when>
    <thetext>Created attachment 423790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742289</commentid>
    <comment_count>2</comment_count>
      <attachid>423910</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-22 10:44:27 -0700</bug_when>
    <thetext>Created attachment 423910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742290</commentid>
    <comment_count>3</comment_count>
      <attachid>423911</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-22 10:45:53 -0700</bug_when>
    <thetext>Created attachment 423911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742338</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-22 11:57:40 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/274755/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742339</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-22 11:58:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/75701949&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423790</attachid>
            <date>2021-03-19 16:57:44 -0700</date>
            <delta_ts>2021-03-22 10:44:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223543-20210319165743.patch</filename>
            <type>text/plain</type>
            <size>23347</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc5NmQ5MmNkYzUyYjBi
MzFkZmU1ZmU5MDJkMmI0ZDM4NTI2MmMwYi4uYTA1MzUzMDQyNmFhMDlmMjRmNDJlZTU3YWE3ZDQ1
YTQ3N2JlYjBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAzLTE5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBXZWJD
b3JlJ3MgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjIHRvIGluZGljYXRlIHRoYXQgaXQncyBvbmx5
IHVzZWQgaW4gbGVnYWN5IFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIzNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjIGluIFdlYkNvcmUgaXMgb25s
eSB1c2VkIGZvciBXZWJLaXRMZWdhY3k7IFdlYlByb2Nlc3MgZG9lc24ndCBoYXZlCisgICAgICAg
IFdpbmRvd1NlcnZlciBhY2Nlc3Mgc28gaXMgdW5hYmxlIHRvIGNyZWF0ZSBDVkRpc3BsYXlMaW5r
UmVmcy4KKworICAgICAgICBSZW5hbWUgaXQgdG8gaW5kaWNhdGUgdGhpcywgYW5kIHJlZHVjZSBj
b25mdXNpb24gd2l0aCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMgaW4gV2ViS2l0Mi4KKworICAg
ICAgICBBbHNvIGFkZCBhbiBhc3NlcnRpb24gdGhhdCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWMgaXMgbm90IGJlaW5nIGNyZWF0ZWQgaW4gdGhlCisgICAgICAgIFdlYlByb2Nlc3MuCisK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
OjpjcmVhdGVEZWZhdWx0RGlzcGxheVJlZnJlc2hNb25pdG9yKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjOjpMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjp+TGVnYWN5RGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYzo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpkaXNwbGF5TGlua0NhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVz
dFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9MZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMuaC4KKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6
Y3JlYXRlKToKKwogMjAyMS0wMy0xOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIzMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBiM2JkMzBkNDYxYjBjYmI0ODgwY2Uw
ZWI1MTFmY2MzNGJjYzM3YjkyLi5kMzEzZTlmOWVhZjIyOWU2ZDkxZTczNGYxNDViYmM5NTAxYTk3
NDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTQxNCw3ICs0MTQsNiBAQCBwbGF0Zm9y
bS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLm1tCiBwbGF0Zm9ybS9ncmFw
aGljcy9pb3MvSWNvbklPUy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbG9yTWFjLm1tCiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KLXBs
YXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRmxvYXRQb2ludE1hYy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zs
b2F0U2l6ZU1hYy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwCkBAIC00MjMsNiArNDIyLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9JbWFnZU1hYy5tbQogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ludFBvaW50TWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvSW50U2l6ZU1hYy5tbQor
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9QREZEb2N1bWVudEltYWdlTWFjLm1tCiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L21hYy9Td2l0Y2hpbmdHUFVDbGllbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTZlYzc0Zjg1NDM2YWNmOTkwOTM0Zjcw
Y2RjOTQ4MTZkYTAxODM1NC4uZjNjNGY3NGU4ZWMzMDE3OWIwNmY2NDY5ZTU1OWY1ODc3NjZlZTUz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtODQ1LDcgKzg0NSw3IEBACiAJCTJEQUYzNDNEMUVBN0UwRjEwMDM4MkNEMyAvKiBD
b25zdGFudFByb3BlcnR5TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyREFGMzQzQjFFQTdFMEYxMDAzODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0eU1h
cC5oICovOyB9OwogCQkyREM4RDM5ODI1RjJGRTk3MDBDRkNCQUIgLyogTW9kZWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzhEMzk3MjVGMkZFOTQw
MENGQ0JBQiAvKiBNb2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTJERDVBNzI3MUVCRUU0N0QwMDlCQTU5NyAvKiBDb21wb3NpdGlvblVuZGVy
bGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRE
NUE3MjYxRUJFRTQ3RDAwOUJBNTk3IC8qIENvbXBvc2l0aW9uVW5kZXJsaW5lLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMkRFNzAwMjMxOTJGRTgy
QTAwQjA5NzVDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVDIC8q
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oICovOyB9OworCQkyREU3MDAyMzE5MkZFODJBMDBC
MDk3NUMgLyogTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREU3MDAyMjE5MkZFODJBMDBCMDk3NUMg
LyogTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggKi87IH07CiAJCTJERjUxMkNFMUQ4
NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERjUxMkNDMUQ4NzNFNDcwMDFE
Njc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJMkRGQTQ4OEYx
REI1NDFEMDAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGQTQ4OEUxREI1NDFDMjAwMzYyQjk5IC8qIEJ1ZmZl
clNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTJFMDg4OEQ1MTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTA4ODhEMzExNDg4NDhBMDBB
RjQyNjUgLyogSlNET01Gb3JtRGF0YS5oICovOyB9OwpAQCAtNzI0Miw3ICs3MjQyLDcgQEAKIAkJ
MkRDOEQzOTYyNUYyRkU5MzAwQ0ZDQkFCIC8qIE1vZGVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1vZGVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRDOEQzOTcyNUYyRkU5
NDAwQ0ZDQkFCIC8qIE1vZGVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGVsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJERDVBNzI2MUVCRUU0N0QwMDlCQTU5NyAvKiBDb21wb3NpdGlv
blVuZGVybGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wb3NpdGlv
blVuZGVybGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyREU3MDAyMjE5MkZF
ODJBMDBCMDk3NUMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyREU3MDAyMjE5MkZFODJBMDBCMDk3NUMgLyogTGVnYWN5RGlz
cGxheVJlZnJlc2hNb25pdG9yTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyREY1MTJDQjFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJhbmdlV2l0aFRleHRD
b21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VS
YW5nZVdpdGhUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
RjUxMkNDMUQ4NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZVJhbmdlV2l0aFRleHRDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERkE0ODhFMURCNTQxQzIwMDM2
MkI5OSAvKiBCdWZmZXJTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QnVmZmVyU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzI3LDcgKzgz
MjcsNyBAQAogCQk0OUFFMkQ5NDEzNEVFNUY5MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWxjdWxhdGlvblZhbHVl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlBRTJEOTUxMzRFRTVGOTAwNzI5
MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2FsY3VsYXRpb25WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUFG
MkQ2ODE0NDM1RDA1MDAxNkE3ODQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0OUFGMkQ2QjE0NDM1RDIxMDAxNkE3ODQgLyogRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ5QUYyRDZCMTQ0MzVEMjEwMDE2QTc4NCAvKiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDlDN0I5ODAxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZmZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTEJ1ZmZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5QzdCOTgxMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdM
QnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xCdWZmZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5ODQxMDQyRDJEMzAwMDlENDQ3
IC8qIEpTV2ViR0xGcmFtZWJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dlYkdMRnJhbWVidWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjY2MzMsOCArMjY2MzMsNiBAQAogCQkJCUVERTNBNEZGMEM3QTQzMDYwMDk1NkEzNyAv
KiBDb2xvck1hYy5oICovLAogCQkJCUIyNzUzNTRBMEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xvck1h
Yy5tbSAqLywKIAkJCQkzN0MyMzgyMDEwOThDODQyMDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250
cm9sbGVyQ29yZVRleHQubW0gKi8sCi0JCQkJNDlBRjJENkIxNDQzNUQyMTAwMTZBNzg0IC8qIERp
c3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgKi8sCi0JCQkJMkRFNzAwMjIxOTJGRTgyQTAwQjA5
NzVDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oICovLAogCQkJCUIyNzUzNTRCMEIwNTM4
MTQwMDJDRTY0RiAvKiBGbG9hdFBvaW50TWFjLm1tICovLAogCQkJCUIyNzUzNTREMEIwNTM4MTQw
MDJDRTY0RiAvKiBGbG9hdFNpemVNYWMubW0gKi8sCiAJCQkJQjJBRkZDNzUwRDAwQTVDMTAwMzAw
NzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwICovLApAQCAtMjY2NDUsNiArMjY2NDMs
OCBAQAogCQkJCUIyNzUzNTRFMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSAqLywKIAkJ
CQlCMjc1MzU0RjBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9pbnRNYWMubW0gKi8sCiAJCQkJQjI3
NTM1NTEwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemVNYWMubW0gKi8sCisJCQkJNDlBRjJENkIx
NDQzNUQyMTAwMTZBNzg0IC8qIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgKi8s
CisJCQkJMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVDIC8qIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYy5oICovLAogCQkJCTJENkU0NjgyMTdENjYwRjUwMEVDRjhCQiAvKiBQREZEb2N1bWVu
dEltYWdlTWFjLm1tICovLAogCQkJCTdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRI
aWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmggKi8sCiAJCQkJMTYzRTg4RjUxMThBMzlEMjAwRUQ5
MjMxIC8qIFNpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwICovLApAQCAtMzIwNDQsNyArMzIwNDQs
NiBAQAogCQkJCTQ5QUYyRDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNw
bGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0NBMTky
RjFGMUQwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaCBpbiBIZWFkZXJzICov
LAotCQkJCTJERTcwMDIzMTkyRkU4MkEwMEIwOTc1QyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0M4MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNw
bGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc5MEY0MzI1
MTdDRTZFMDA5QkEwMzQgLyogRGlzcGxheVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2
MDkxMTJCMDI2RjcwMEMxQTM1OSAvKiBEaXN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzc1
Nyw2ICszMzc1Niw3IEBACiAJCQkJQ0RFOEI1RUQxQTY5Nzc3MzAwQjRCNjZBIC8qIExlZ2FjeUNE
TVByaXZhdGVDbGVhcktleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNEI3MTIxRTAwODdBRTAw
RTIzNUEyIC8qIExlZ2FjeUNETVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNERThCNUYx
MUE2OTc3OEIwMEI0QjY2QSAvKiBMZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTJERTcwMDIzMTkyRkU4MkEwMEIwOTc1QyAvKiBMZWdhY3lEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NEE1RjU5MUZFRDM4RjIwMDdGNTk0
NCAvKiBMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE4NUI0
MkExRTgyMTFBMTAwREM5MTE4IC8qIExlZ2FjeVByZXZpZXdMb2FkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExMERCRjQ3MThGOTIzMTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCmluZGV4IGQyNDQwYjQ2OWY1
ODYyOTAyYmJjNjEwZTFhYTEwODQ3MjM4OTc4NTIuLjczODc2ZmZhN2UyZDQyYzQ5YjM1OWRkZDVh
MWRlMzMzOThjZWRkYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9y
SU9TLmgiCiAjZWxpZiBQTEFURk9STShNQUMpCi0jaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjLmgiCisjaW5jbHVkZSAiTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgiCiAj
ZWxpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yR3RrLmgi
CiAjZWxpZiBQTEFURk9STShXSU4pCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6
Y3JlYXRlRGVmYXVsdERpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNw
bGF5SUQpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWM6OmNyZWF0ZShkaXNwbGF5SUQpOworICAgIHJldHVybiBMZWdhY3lEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWM6OmNyZWF0ZShkaXNwbGF5SUQpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICByZXR1cm4gRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TOjpjcmVhdGUo
ZGlzcGxheUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDkyYjYwNDQzZWE0MmY2NDMxYjlmZWRjZmUzZGM1YTk1MDc4MDc3
ZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgiCi0KLSNpZiBQTEFURk9STShNQUMpCi0K
LSNpbmNsdWRlIDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKLSAg
ICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCi17Ci19Ci0KLURpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYzo6fkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYygpCi17Ci0gICAgQVNTRVJU
KCFtX2Rpc3BsYXlMaW5rKTsKLX0KLQotdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnN0
b3AoKQotewotICAgIGlmICghbV9kaXNwbGF5TGluaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Q1ZEaXNwbGF5TGlua1N0b3AobV9kaXNwbGF5TGluayk7Ci0gICAgQ1ZEaXNwbGF5TGlua1JlbGVh
c2UobV9kaXNwbGF5TGluayk7Ci0gICAgbV9kaXNwbGF5TGluayA9IG51bGxwdHI7Ci19Ci0KLXN0
YXRpYyBDVlJldHVybiBkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlzcGxheUxpbmtSZWYsIGNvbnN0
IENWVGltZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBDVk9wdGlvbkZsYWdzLCBDVk9wdGlv
bkZsYWdzKiwgdm9pZCogZGF0YSkKLXsKLSAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMqIG1v
bml0b3IgPSBzdGF0aWNfY2FzdDxEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMqPihkYXRhKTsKLSAg
ICBtb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKCk7Ci0gICAgcmV0dXJuIGtDVlJldHVyblN1Y2Nl
c3M7Ci19Ci0KLWJvb2wgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpyZXF1ZXN0UmVmcmVzaENh
bGxiYWNrKCkKLXsKLSAgICBpZiAoIWlzQWN0aXZlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIGlmICghbV9kaXNwbGF5TGluaykgewotICAgICAgICBzZXRJc0FjdGl2ZShmYWxzZSk7
Ci0gICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZEaXNwbGF5TGlua0NyZWF0ZVdpdGhDR0Rpc3Bs
YXkoZGlzcGxheUlEKCksICZtX2Rpc3BsYXlMaW5rKTsKLSAgICAgICAgaWYgKGVycm9yKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGVycm9yID0gQ1ZEaXNwbGF5TGlua1Nl
dE91dHB1dENhbGxiYWNrKG1fZGlzcGxheUxpbmssIGRpc3BsYXlMaW5rQ2FsbGJhY2ssIHRoaXMp
OwotICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAg
ICAgZXJyb3IgPSBDVkRpc3BsYXlMaW5rU3RhcnQobV9kaXNwbGF5TGluayk7Ci0gICAgICAgIGlm
IChlcnJvcikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBzZXRJc0FjdGl2
ZSh0cnVlKTsKLSAgICB9Ci0KLSAgICBMb2NrSG9sZGVyIGxvY2sobXV0ZXgoKSk7Ci0gICAgc2V0
SXNTY2hlZHVsZWQodHJ1ZSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0ZpcmVkKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxv
Y2sobXV0ZXgoKSk7Ci0gICAgaWYgKCFpc1ByZXZpb3VzRnJhbWVEb25lKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIHNldElzUHJldmlvdXNGcmFtZURvbmUoZmFsc2UpOwotCi0gICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
IHsKLSAgICAgICAgaWYgKG1fZGlzcGxheUxpbmspCi0gICAgICAgICAgICBoYW5kbGVEaXNwbGF5
UmVmcmVzaGVkTm90aWZpY2F0aW9uT25NYWluVGhyZWFkKHRoaXMpOwotICAgIH0pOwotfQotCi19
Ci0KLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhOWVjYWFlN2I1YjRmOTk4ZDY5NGQxNjAz
ZWZkZGQ5NzU5ZWE1N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvck1hYy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIFBM
QVRGT1JNKE1BQykKLQotI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvci5oIgotI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+Ci0KLXR5cGVkZWYgc3RydWN0IF9fQ1ZEaXNwbGF5TGluayAqQ1ZE
aXNwbGF5TGlua1JlZjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMgOiBwdWJsaWMgRGlzcGxheVJlZnJlc2hNb25pdG9yIHsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYz4gY3JlYXRlKFBsYXRmb3Jt
RGlzcGxheUlEIGRpc3BsYXlJRCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhkaXNwbGF5SUQpKTsKLSAgICB9Ci0gICAgCi0gICAg
dmlydHVhbCB+RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKCk7Ci0KLSAgICB2b2lkIGRpc3BsYXlM
aW5rRmlyZWQoKSBmaW5hbDsKLSAgICBib29sIHJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKSBmaW5h
bDsKLSAgICB2b2lkIHN0b3AoKSBmaW5hbDsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEaXNw
bGF5UmVmcmVzaE1vbml0b3JNYWMoUGxhdGZvcm1EaXNwbGF5SUQpOwotCi0gICAgQ1ZEaXNwbGF5
TGlua1JlZiBtX2Rpc3BsYXlMaW5rIHsgbnVsbHB0ciB9OwotfTsKLQotfQotCi0jZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hM2NlNjQzYjhjN2UwOWMzYTk1ODJlOGJkODRjYzQzMGYyMzBhMjQyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xl
Z2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIgor
CisjaWYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmgiCisjaW5jbHVkZSA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitMZWdhY3lEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWM6OkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhQbGF0Zm9ybURpc3BsYXlJ
RCBkaXNwbGF5SUQpCisgICAgOiBEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKQorewor
ICAgIEFTU0VSVCghaXNJbldlYlByb2Nlc3MoKSk7Cit9CisKK0xlZ2FjeURpc3BsYXlSZWZyZXNo
TW9uaXRvck1hYzo6fkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYygpCit7CisgICAgQVNT
RVJUKCFtX2Rpc3BsYXlMaW5rKTsKK30KKwordm9pZCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OnN0b3AoKQoreworICAgIGlmICghbV9kaXNwbGF5TGluaykKKyAgICAgICAgcmV0dXJu
OworCisgICAgQ1ZEaXNwbGF5TGlua1N0b3AobV9kaXNwbGF5TGluayk7CisgICAgQ1ZEaXNwbGF5
TGlua1JlbGVhc2UobV9kaXNwbGF5TGluayk7CisgICAgbV9kaXNwbGF5TGluayA9IG51bGxwdHI7
Cit9CisKK3N0YXRpYyBDVlJldHVybiBkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlzcGxheUxpbmtS
ZWYsIGNvbnN0IENWVGltZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBDVk9wdGlvbkZsYWdz
LCBDVk9wdGlvbkZsYWdzKiwgdm9pZCogZGF0YSkKK3sKKyAgICBMZWdhY3lEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMqIG1vbml0b3IgPSBzdGF0aWNfY2FzdDxMZWdhY3lEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWMqPihkYXRhKTsKKyAgICBtb25pdG9yLT5kaXNwbGF5TGlua0ZpcmVkKCk7CisgICAg
cmV0dXJuIGtDVlJldHVyblN1Y2Nlc3M7Cit9CisKK2Jvb2wgTGVnYWN5RGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjOjpyZXF1ZXN0UmVmcmVzaENhbGxiYWNrKCkKK3sKKyAgICBpZiAoIWlzQWN0aXZl
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghbV9kaXNwbGF5TGluaykgewor
ICAgICAgICBzZXRJc0FjdGl2ZShmYWxzZSk7CisgICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZE
aXNwbGF5TGlua0NyZWF0ZVdpdGhDR0Rpc3BsYXkoZGlzcGxheUlEKCksICZtX2Rpc3BsYXlMaW5r
KTsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgIGVycm9yID0gQ1ZEaXNwbGF5TGlua1NldE91dHB1dENhbGxiYWNrKG1fZGlzcGxheUxpbmss
IGRpc3BsYXlMaW5rQ2FsbGJhY2ssIHRoaXMpOworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZXJyb3IgPSBDVkRpc3BsYXlMaW5rU3RhcnQo
bV9kaXNwbGF5TGluayk7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICBzZXRJc0FjdGl2ZSh0cnVlKTsKKyAgICB9CisKKyAgICBMb2NrSG9s
ZGVyIGxvY2sobXV0ZXgoKSk7CisgICAgc2V0SXNTY2hlZHVsZWQodHJ1ZSk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3ZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5
TGlua0ZpcmVkKCkKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2sobXV0ZXgoKSk7CisgICAgaWYgKCFp
c1ByZXZpb3VzRnJhbWVEb25lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNldElzUHJldmlv
dXNGcmFtZURvbmUoZmFsc2UpOworCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgaWYgKG1fZGlzcGxh
eUxpbmspCisgICAgICAgICAgICBoYW5kbGVEaXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0aW9uT25N
YWluVGhyZWFkKHRoaXMpOworICAgIH0pOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShN
QUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVn
YWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzNhM2E3OGI5NTIxZDYwMmQwN2M3N2M4ODc5NGE5NDA0OGM1MDYyZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9MZWdhY3lEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oTUFD
KQorCisjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgX19DVkRpc3BsYXlMaW5rICpDVkRpc3BsYXlMaW5r
UmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIExlZ2FjeURpc3BsYXlSZWZyZXNo
TW9uaXRvck1hYyA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3IgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjPiBjcmVhdGUoUGxhdGZv
cm1EaXNwbGF5SUQgZGlzcGxheUlEKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKGRpc3BsYXlJRCkpOworICAgIH0KKyAg
ICAKKyAgICB2aXJ0dWFsIH5MZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoKTsKKworICAg
IHZvaWQgZGlzcGxheUxpbmtGaXJlZCgpIGZpbmFsOworICAgIGJvb2wgcmVxdWVzdFJlZnJlc2hD
YWxsYmFjaygpIGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFsOworCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhQbGF0Zm9ybURpc3BsYXlJ
RCk7CisKKyAgICBDVkRpc3BsYXlMaW5rUmVmIG1fZGlzcGxheUxpbmsgeyBudWxscHRyIH07Cit9
OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423910</attachid>
            <date>2021-03-22 10:44:27 -0700</date>
            <delta_ts>2021-03-22 10:45:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223543-20210322104426.patch</filename>
            <type>text/plain</type>
            <size>26073</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc5NmQ5MmNkYzUyYjBi
MzFkZmU1ZmU5MDJkMmI0ZDM4NTI2MmMwYi4uNDAyNzQ4NDc5OTBmNGIzZDA4N2M0MDJkMjMxMmY3
MTE3ODAyNTQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTAzLTIyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBXZWJD
b3JlJ3MgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjIHRvIGluZGljYXRlIHRoYXQgaXQncyBvbmx5
IHVzZWQgaW4gbGVnYWN5IFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIzNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjIGluIFdlYkNvcmUgaXMgb25s
eSB1c2VkIGZvciBXZWJLaXRMZWdhY3k7IFdlYlByb2Nlc3MgZG9lc24ndCBoYXZlCisgICAgICAg
IFdpbmRvd1NlcnZlciBhY2Nlc3Mgc28gaXMgdW5hYmxlIHRvIGNyZWF0ZSBDVkRpc3BsYXlMaW5r
UmVmcy4KKworICAgICAgICBSZW5hbWUgaXQgdG8gaW5kaWNhdGUgdGhpcywgYW5kIHJlZHVjZSBj
b25mdXNpb24gd2l0aCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMgaW4gV2ViS2l0Mi4KKyAgICAg
ICAgQWxzbyBhZGQgYW4gYXNzZXJ0aW9uIHRoYXQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9y
TWFjIGlzIG5vdCBiZWluZyBjcmVhdGVkIGluIHRoZQorICAgICAgICBXZWJQcm9jZXNzLgorCisg
ICAgICAgIEZvciBFbXB0eVBhZ2VDbGllbnRzIChsaWtlIHRoZSBQYWdlIHVzZWQgYnkgY3JlYXRl
UGFnZUZvclNhbml0aXppbmdXZWJDb250ZW50KCkpIHdlIG5lZWQKKyAgICAgICAgYSBEaXNwbGF5
UmVmcmVzaE1vbml0b3IgaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vzbid0IHRyeSB0byBDVkRpc3Bs
YXlMaW5rUmVmcyBpbiB0aGUKKyAgICAgICAgV2ViIFByb2Nlc3MsIHNvIGFkZCBhbiBFbXB0eURp
c3BsYXlSZWZyZXNoTW9uaXRvciB0aGF0IG5ldmVyIGZpcmVzLgorCisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVt
cHR5RGlzcGxheVJlZnJlc2hNb25pdG9yOjpFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGlzcGxheVJlZnJlc2hN
b25pdG9yIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3JlYXRlRGVmYXVsdERpc3BsYXlSZWZy
ZXNoTW9uaXRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcC4KKyAgICAgICAg
KFdlYkNvcmU6OkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6TGVnYWN5RGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeURpc3BsYXlSZWZyZXNo
TW9uaXRvck1hYzo6fkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyk6CisgICAgICAgIChX
ZWJDb3JlOjpMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnN0b3ApOgorICAgICAgICAo
V2ViQ29yZTo6ZGlzcGxheUxpbmtDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnJlcXVlc3RSZWZyZXNoQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0Zp
cmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmguCisgICAgICAgIChXZWJDb3JlOjpM
ZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmNyZWF0ZSk6CisKIDIwMjEtMDMtMTkgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzE0MQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50
eHQKaW5kZXggYjNiZDMwZDQ2MWIwY2JiNDg4MGNlMGViNTExZmNjMzRiY2MzN2I5Mi4uZDMxM2U5
ZjllYWYyMjllNmQ5MWU3MzRmMTQ1YmJjOTUwMWE5NzQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0CkBAIC00MTQsNyArNDE0LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0Rpc3BsYXlSZWZy
ZXNoTW9uaXRvcklPUy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ljb25JT1MubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBs
ZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCi1wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0UG9pbnRN
YWMubW0KIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9GbG9hdFNpemVNYWMubW0KIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcApAQCAtNDIzLDYgKzQyMiw3IEBA
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SW1hZ2VNYWMubW0KIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9JbnRQb2ludE1hYy5tbQogcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ludFNpemVNYWMubW0KK3BsYXRmb3JtL2dyYXBoaWNzL21hYy9MZWdh
Y3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvUERG
RG9jdW1lbnRJbWFnZU1hYy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRh
Q29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvU3dpdGNoaW5nR1BVQ2xpZW50LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGE2ZWM3NGY4NTQzNmFjZjk5MDkzNGY3MGNkYzk0ODE2ZGEwMTgzNTQuLmYzYzRmNzRl
OGVjMzAxNzliMDZmNjQ2OWU1NTlmNTg3NzY2ZWU1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0NSw3ICs4NDUsNyBAQAog
CQkyREFGMzQzRDFFQTdFMEYxMDAzODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0eU1hcC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBRjM0M0IxRUE3RTBG
MTAwMzgyQ0QzIC8qIENvbnN0YW50UHJvcGVydHlNYXAuaCAqLzsgfTsKIAkJMkRDOEQzOTgyNUYy
RkU5NzAwQ0ZDQkFCIC8qIE1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyREM4RDM5NzI1RjJGRTk0MDBDRkNCQUIgLyogTW9kZWwuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREQ1QTcyNzFFQkVF
NDdEMDA5QkE1OTcgLyogQ29tcG9zaXRpb25VbmRlcmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDVBNzI2MUVCRUU0N0QwMDlCQTU5NyAvKiBD
b21wb3NpdGlvblVuZGVybGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTJERTcwMDIzMTkyRkU4MkEwMEIwOTc1QyAvKiBEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJERTcwMDIyMTkyRkU4MkEwMEIwOTc1QyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMu
aCAqLzsgfTsKKwkJMkRFNzAwMjMxOTJGRTgyQTAwQjA5NzVDIC8qIExlZ2FjeURpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVDIC8qIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYy5oICovOyB9OwogCQkyREY1MTJDRTFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJh
bmdlV2l0aFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyREY1MTJDQzFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJhbmdlV2l0aFRl
eHRDb21tYW5kLmggKi87IH07CiAJCTJERkE0ODhGMURCNTQxRDAwMDM2MkI5OSAvKiBCdWZmZXJT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
RkE0ODhFMURCNTQxQzIwMDM2MkI5OSAvKiBCdWZmZXJTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRTA4ODhENTExNDg4NDhBMDBBRjQy
NjUgLyogSlNET01Gb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkUwODg4RDMxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURhdGEuaCAq
LzsgfTsKQEAgLTcyNDIsNyArNzI0Miw3IEBACiAJCTJEQzhEMzk2MjVGMkZFOTMwMENGQ0JBQiAv
KiBNb2RlbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2RlbC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEQzhEMzk3MjVGMkZFOTQwMENGQ0JBQiAvKiBNb2RlbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREQ1QTcy
NjFFQkVFNDdEMDA5QkE1OTcgLyogQ29tcG9zaXRpb25VbmRlcmxpbmUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcG9zaXRpb25VbmRlcmxpbmUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVDIC8qIERpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRFNzAw
MjIxOTJGRTgyQTAwQjA5NzVDIC8qIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGNTEyQ0IxRDg3M0U0NzAw
MUQ2NzgwIC8qIFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREY1MTJDQzFEODczRTQ3MDAxRDY3ODAgLyog
UmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyREZBNDg4RTFEQjU0MUMyMDAzNjJCOTkgLyogQnVmZmVyU291cmNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ1ZmZlclNvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtODMyNyw3ICs4MzI3LDcgQEAKIAkJNDlBRTJEOTQxMzRFRTVG
OTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ2FsY3VsYXRpb25WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ5QUUyRDk1MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGN1bGF0aW9uVmFsdWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlBRjJENjgxNDQzNUQwNTAwMTZBNzg0IC8qIERp
c3BsYXlSZWZyZXNoTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
aXNwbGF5UmVmcmVzaE1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlB
RjJENkIxNDQzNUQyMTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OUFGMkQ2QjE0NDM1RDIxMDAx
NkE3ODQgLyogTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5QzdCOTgwMTA0MkQyRDMwMDA5RDQ0
NyAvKiBKU1dlYkdMQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV2ViR0xCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUM3
Qjk4MTEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ5QzdCOTg0MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMRnJhbWVidWZmZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTEZyYW1lYnVmZmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NjMzLDggKzI2NjMzLDYgQEAK
IAkJCQlFREUzQTRGRjBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCAqLywKIAkJCQlCMjc1
MzU0QTBCMDUzODE0MDAyQ0U2NEYgLyogQ29sb3JNYWMubW0gKi8sCiAJCQkJMzdDMjM4MjAxMDk4
Qzg0MjAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tICovLAotCQkJ
CTQ5QUYyRDZCMTQ0MzVEMjEwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3Bw
ICovLAotCQkJCTJERTcwMDIyMTkyRkU4MkEwMEIwOTc1QyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWMuaCAqLywKIAkJCQlCMjc1MzU0QjBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRQb2ludE1h
Yy5tbSAqLywKIAkJCQlCMjc1MzU0RDBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRTaXplTWFjLm1t
ICovLAogCQkJCUIyQUZGQzc1MEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q3VzdG9tUGxhdGZvcm1E
YXRhLmNwcCAqLywKQEAgLTI2NjQ1LDYgKzI2NjQzLDggQEAKIAkJCQlCMjc1MzU0RTBCMDUzODE0
MDAyQ0U2NEYgLyogSW1hZ2VNYWMubW0gKi8sCiAJCQkJQjI3NTM1NEYwQjA1MzgxNDAwMkNFNjRG
IC8qIEludFBvaW50TWFjLm1tICovLAogCQkJCUIyNzUzNTUxMEIwNTM4MTQwMDJDRTY0RiAvKiBJ
bnRTaXplTWFjLm1tICovLAorCQkJCTQ5QUYyRDZCMTQ0MzVEMjEwMDE2QTc4NCAvKiBMZWdhY3lE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwICovLAorCQkJCTJERTcwMDIyMTkyRkU4MkEwMEIw
OTc1QyAvKiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCAqLywKIAkJCQkyRDZFNDY4
MjE3RDY2MEY1MDBFQ0Y4QkIgLyogUERGRG9jdW1lbnRJbWFnZU1hYy5tbSAqLywKIAkJCQk3Qjcz
MTFGQTI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5o
ICovLAogCQkJCTE2M0U4OEY1MTE4QTM5RDIwMEVEOTIzMSAvKiBTaW1wbGVGb250RGF0YUNvcmVU
ZXh0LmNwcCAqLywKQEAgLTMyMDQ0LDcgKzMyMDQ0LDYgQEAKIAkJCQk0OUFGMkQ2OTE0NDM1RDA1
MDAxNkE3ODQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQky
RDI5RUNDNjE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDQTE5MkYxRjFEMDA5ODRCNzggLyogRGlzcGxheVJl
ZnJlc2hNb25pdG9ySU9TLmggaW4gSGVhZGVycyAqLywKLQkJCQkyREU3MDAyMzE5MkZFODJBMDBC
MDk3NUMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQky
RDI5RUNDODE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3OTBGNDMyNTE3Q0U2RTAwOUJBMDM0IC8qIERpc3BsYXlW
aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA5MTEyQjAyNkY3MDBDMUEzNTkgLyogRGlz
dGFuY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMzM3NTcsNiArMzM3NTYsNyBAQAogCQkJCUNERThC
NUVEMUE2OTc3NzMwMEI0QjY2QSAvKiBMZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNERjRCNzEyMUUwMDg3QUUwMEUyMzVBMiAvKiBMZWdhY3lDRE1TZXNzaW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREU4QjVGMTFBNjk3NzhCMDBCNEI2NkEgLyogTGVnYWN5
Q0RNU2Vzc2lvbkNsZWFyS2V5LmggaW4gSGVhZGVycyAqLywKKwkJCQkyREU3MDAyMzE5MkZFODJB
MDBCMDk3NUMgLyogTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNDRBNUY1OTFGRUQzOEYyMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlw
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExODVCNDJBMUU4MjExQTEwMERDOTExOCAvKiBMZWdh
Y3lQcmV2aWV3TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBEQkY0NzE4RjkyMzE3MDAw
RDcwQzYgLyogTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDQ1OTAzYzA2YmQwODk1OTJkNTdl
OGJiY2YzZWVmMzUwY2VhOTkxNjUuLmY2MjY0NGI4NzVlM2E2MDVjNDdjNWI1NmVmMzRiZTM0NTA2
Yzg1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0xMjUsNiAr
MTI1LDI1IEBAIGNsYXNzIEVtcHR5Q29udGV4dE1lbnVDbGllbnQgZmluYWwgOiBwdWJsaWMgQ29u
dGV4dE1lbnVDbGllbnQgewogCiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKKwor
Y2xhc3MgRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3IgOiBwdWJsaWMgRGlzcGxheVJlZnJlc2hN
b25pdG9yIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEVtcHR5RGlzcGxheVJlZnJlc2hNb25p
dG9yPiBjcmVhdGUoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlE
KSk7CisgICAgfQorCisgICAgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKCkgZmluYWwgeyB9CisgICAg
Ym9vbCByZXF1ZXN0UmVmcmVzaENhbGxiYWNrKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2b2lkIHN0b3AoKSBmaW5hbCB7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBFbXB0eURp
c3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCisgICAgICAg
IDogRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCkKKyAgICB7CisgICAgfQorfTsKKwog
Y2xhc3MgRW1wdHlEYXRhYmFzZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIERhdGFiYXNlUHJvdmlk
ZXIgewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIHN0cnVjdCBFbXB0eUlEQkNv
bm5lY3Rpb25Ub1NlcnZlckRlbGV0ZWdhdGUgZmluYWwgOiBwdWJsaWMgSURCQ2xpZW50OjpJREJD
b25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSB7CkBAIC01MTEsNiArNTMwLDExIEBAIHZvaWQgRW1w
dHlDaHJvbWVDbGllbnQ6OnN0b3JlQXBwSGlnaGxpZ2h0KEFwcEhpZ2hsaWdodCYmKSBjb25zdAog
fQogI2VuZGlmCiAKK1JlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IEVtcHR5Q2hyb21lQ2xp
ZW50OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxh
eUlEKSBjb25zdAoreworICAgIHJldHVybiBFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3Jl
YXRlKGRpc3BsYXlJRCk7Cit9CisKIHZvaWQgRW1wdHlDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5l
bChGcmFtZSYsIEZpbGVDaG9vc2VyJikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAppbmRleCBjYjdjNTRmMjY1NDFjOTRlODc0YTY4YWJmYTNlMTgxZWFiMGM1OTRjLi5iNmY4
MTBlZDI2NzQyYzMwNWQ3ZDBjMzBlYmFiNGUxZWJmZmIyOTJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCkBAIC0xNDksNiArMTQ5LDggQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGll
bnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KEFw
cEhpZ2hsaWdodCYmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisgICAgUmVmUHRyPERpc3BsYXlS
ZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxh
eUlEKSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNo
b29zZXImKSBmaW5hbDsKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdpdGhQYXJz
ZWRVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAgICB2b2lk
IGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYp
IGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKaW5kZXggZDI0NDBiNDY5ZjU4NjI5MDJiYmM2
MTBlMWFhMTA4NDcyMzg5Nzg1Mi4uNzM4NzZmZmE3ZTJkNDJjNDliMzU5ZGRkNWExZGUzMzM5OGNl
ZGRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaCIKICNl
bGlmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCIK
KyNpbmNsdWRlICJMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCIKICNlbGlmIFBMQVRG
T1JNKEdUSykKICNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3JHdGsuaCIKICNlbGlmIFBM
QVRGT1JNKFdJTikKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUmVmUHRy
PERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZh
dWx0RGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIHsK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6
Y3JlYXRlKGRpc3BsYXlJRCk7CisgICAgcmV0dXJuIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRv
ck1hYzo6Y3JlYXRlKGRpc3BsYXlJRCk7CiAjZW5kaWYKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1M6OmNyZWF0ZShkaXNwbGF5SUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOTJiNjA0NDNlYTQyZjY0MzFiOWZlZGNmZTNkYzVhOTUwNzgwNzdkNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDEwNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEaXNw
bGF5UmVmcmVzaE1vbml0b3JNYWMuaCIKLQotI2lmIFBMQVRGT1JNKE1BQykKLQotI2luY2x1ZGUg
PFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgotI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQotICAgIDogRGlzcGxh
eVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCkKLXsKLX0KLQotRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFjOjp+RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKCkKLXsKLSAgICBBU1NFUlQoIW1fZGlzcGxh
eUxpbmspOwotfQotCi12b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6c3RvcCgpCi17Ci0g
ICAgaWYgKCFtX2Rpc3BsYXlMaW5rKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDVkRpc3BsYXlM
aW5rU3RvcChtX2Rpc3BsYXlMaW5rKTsKLSAgICBDVkRpc3BsYXlMaW5rUmVsZWFzZShtX2Rpc3Bs
YXlMaW5rKTsKLSAgICBtX2Rpc3BsYXlMaW5rID0gbnVsbHB0cjsKLX0KLQotc3RhdGljIENWUmV0
dXJuIGRpc3BsYXlMaW5rQ2FsbGJhY2soQ1ZEaXNwbGF5TGlua1JlZiwgY29uc3QgQ1ZUaW1lU3Rh
bXAqLCBjb25zdCBDVlRpbWVTdGFtcCosIENWT3B0aW9uRmxhZ3MsIENWT3B0aW9uRmxhZ3MqLCB2
b2lkKiBkYXRhKQotewotICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyogbW9uaXRvciA9IHN0
YXRpY19jYXN0PERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyo+KGRhdGEpOwotICAgIG1vbml0b3It
PmRpc3BsYXlMaW5rRmlyZWQoKTsKLSAgICByZXR1cm4ga0NWUmV0dXJuU3VjY2VzczsKLX0KLQot
Ym9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKQot
ewotICAgIGlmICghaXNBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYg
KCFtX2Rpc3BsYXlMaW5rKSB7Ci0gICAgICAgIHNldElzQWN0aXZlKGZhbHNlKTsKLSAgICAgICAg
Q1ZSZXR1cm4gZXJyb3IgPSBDVkRpc3BsYXlMaW5rQ3JlYXRlV2l0aENHRGlzcGxheShkaXNwbGF5
SUQoKSwgJm1fZGlzcGxheUxpbmspOwotICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgZXJyb3IgPSBDVkRpc3BsYXlMaW5rU2V0T3V0cHV0Q2Fs
bGJhY2sobV9kaXNwbGF5TGluaywgZGlzcGxheUxpbmtDYWxsYmFjaywgdGhpcyk7Ci0gICAgICAg
IGlmIChlcnJvcikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBlcnJvciA9
IENWRGlzcGxheUxpbmtTdGFydChtX2Rpc3BsYXlMaW5rKTsKLSAgICAgICAgaWYgKGVycm9yKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHNldElzQWN0aXZlKHRydWUpOwot
ICAgIH0KLQotICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKLSAgICBzZXRJc1NjaGVkdWxl
ZCh0cnVlKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQoKQotewotICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgp
KTsKLSAgICBpZiAoIWlzUHJldmlvdXNGcmFtZURvbmUoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgc2V0SXNQcmV2aW91c0ZyYW1lRG9uZShmYWxzZSk7Ci0KLSAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAg
ICBpZiAobV9kaXNwbGF5TGluaykKLSAgICAgICAgICAgIGhhbmRsZURpc3BsYXlSZWZyZXNoZWRO
b3RpZmljYXRpb25Pbk1haW5UaHJlYWQodGhpcyk7Ci0gICAgfSk7Ci19Ci0KLX0KLQotI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYWE5ZWNhYWU3YjViNGY5OThkNjk0ZDE2MDNlZmRkZDk3NTll
YTU3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgUExBVEZPUk0oTUFD
KQotCi0jaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCi0jaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KLQotdHlwZWRlZiBzdHJ1Y3QgX19DVkRpc3BsYXlMaW5rICpDVkRpc3BsYXlMaW5r
UmVmOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRv
ck1hYyA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3IgewotcHVibGljOgotICAgIHN0YXRp
YyBSZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjPiBjcmVhdGUoUGxhdGZvcm1EaXNwbGF5SUQg
ZGlzcGxheUlEKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjKGRpc3BsYXlJRCkpOwotICAgIH0KLSAgICAKLSAgICB2aXJ0dWFsIH5E
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoKTsKLQotICAgIHZvaWQgZGlzcGxheUxpbmtGaXJlZCgp
IGZpbmFsOwotICAgIGJvb2wgcmVxdWVzdFJlZnJlc2hDYWxsYmFjaygpIGZpbmFsOwotICAgIHZv
aWQgc3RvcCgpIGZpbmFsOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IERpc3BsYXlSZWZyZXNo
TW9uaXRvck1hYyhQbGF0Zm9ybURpc3BsYXlJRCk7Ci0KLSAgICBDVkRpc3BsYXlMaW5rUmVmIG1f
ZGlzcGxheUxpbmsgeyBudWxscHRyIH07Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBQTEFURk9STShN
QUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVn
YWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9MZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmEzY2U2NDNiOGM3ZTA5YzNhOTU4MmU4YmQ4NGNjNDMwZjIzMGEyNDIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgiCisKKyNpZiBQTEFU
Rk9STShNQUMpCisKKyNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKKyNpbmNs
dWRlIDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6
TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJ
RCkKKyAgICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCit7CisgICAgQVNTRVJU
KCFpc0luV2ViUHJvY2VzcygpKTsKK30KKworTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
Ojp+TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKCkKK3sKKyAgICBBU1NFUlQoIW1fZGlz
cGxheUxpbmspOworfQorCit2b2lkIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6c3Rv
cCgpCit7CisgICAgaWYgKCFtX2Rpc3BsYXlMaW5rKQorICAgICAgICByZXR1cm47CisKKyAgICBD
VkRpc3BsYXlMaW5rU3RvcChtX2Rpc3BsYXlMaW5rKTsKKyAgICBDVkRpc3BsYXlMaW5rUmVsZWFz
ZShtX2Rpc3BsYXlMaW5rKTsKKyAgICBtX2Rpc3BsYXlMaW5rID0gbnVsbHB0cjsKK30KKworc3Rh
dGljIENWUmV0dXJuIGRpc3BsYXlMaW5rQ2FsbGJhY2soQ1ZEaXNwbGF5TGlua1JlZiwgY29uc3Qg
Q1ZUaW1lU3RhbXAqLCBjb25zdCBDVlRpbWVTdGFtcCosIENWT3B0aW9uRmxhZ3MsIENWT3B0aW9u
RmxhZ3MqLCB2b2lkKiBkYXRhKQoreworICAgIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1h
YyogbW9uaXRvciA9IHN0YXRpY19jYXN0PExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyo+
KGRhdGEpOworICAgIG1vbml0b3ItPmRpc3BsYXlMaW5rRmlyZWQoKTsKKyAgICByZXR1cm4ga0NW
UmV0dXJuU3VjY2VzczsKK30KKworYm9vbCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6
OnJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKQoreworICAgIGlmICghaXNBY3RpdmUoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFtX2Rpc3BsYXlMaW5rKSB7CisgICAgICAgIHNl
dElzQWN0aXZlKGZhbHNlKTsKKyAgICAgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVkRpc3BsYXlMaW5r
Q3JlYXRlV2l0aENHRGlzcGxheShkaXNwbGF5SUQoKSwgJm1fZGlzcGxheUxpbmspOworICAgICAg
ICBpZiAoZXJyb3IpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZXJyb3Ig
PSBDVkRpc3BsYXlMaW5rU2V0T3V0cHV0Q2FsbGJhY2sobV9kaXNwbGF5TGluaywgZGlzcGxheUxp
bmtDYWxsYmFjaywgdGhpcyk7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICBlcnJvciA9IENWRGlzcGxheUxpbmtTdGFydChtX2Rpc3BsYXlM
aW5rKTsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIHNldElzQWN0aXZlKHRydWUpOworICAgIH0KKworICAgIExvY2tIb2xkZXIgbG9jayht
dXRleCgpKTsKKyAgICBzZXRJc1NjaGVkdWxlZCh0cnVlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwordm9pZCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQo
KQoreworICAgIExvY2tIb2xkZXIgbG9jayhtdXRleCgpKTsKKyAgICBpZiAoIWlzUHJldmlvdXNG
cmFtZURvbmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2V0SXNQcmV2aW91c0ZyYW1lRG9u
ZShmYWxzZSk7CisKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICBpZiAobV9kaXNwbGF5TGluaykKKyAg
ICAgICAgICAgIGhhbmRsZURpc3BsYXlSZWZyZXNoZWROb3RpZmljYXRpb25Pbk1haW5UaHJlYWQo
dGhpcyk7CisgICAgfSk7Cit9CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9MZWdhY3lEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9MZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2EzYTc4Yjk1
MjFkNjAyZDA3Yzc3Yzg4Nzk0YTk0MDQ4YzUwNjJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRv
ck1hYy5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbmNs
dWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCIKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgor
Cit0eXBlZGVmIHN0cnVjdCBfX0NWRGlzcGxheUxpbmsgKkNWRGlzcGxheUxpbmtSZWY7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
IDogcHVibGljIERpc3BsYXlSZWZyZXNoTW9uaXRvciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM+IGNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJ
RCBkaXNwbGF5SUQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMZWdhY3lE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoZGlzcGxheUlEKSk7CisgICAgfQorICAgIAorICAgIHZp
cnR1YWwgfkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYygpOworCisgICAgdm9pZCBkaXNw
bGF5TGlua0ZpcmVkKCkgZmluYWw7CisgICAgYm9vbCByZXF1ZXN0UmVmcmVzaENhbGxiYWNrKCkg
ZmluYWw7CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEKTsKKworICAg
IENWRGlzcGxheUxpbmtSZWYgbV9kaXNwbGF5TGluayB7IG51bGxwdHIgfTsKK307CisKK30KKwor
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423911</attachid>
            <date>2021-03-22 10:45:53 -0700</date>
            <delta_ts>2021-03-22 11:05:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223543-20210322104552.patch</filename>
            <type>text/plain</type>
            <size>26069</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc5NmQ5MmNkYzUyYjBi
MzFkZmU1ZmU5MDJkMmI0ZDM4NTI2MmMwYi4uNjQ0YzJlNTVkZDVmMWNiY2RjZDM1ZTE5YzgzN2Uw
NDVjMTNhZjA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTAzLTIyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBXZWJD
b3JlJ3MgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjIHRvIGluZGljYXRlIHRoYXQgaXQncyBvbmx5
IHVzZWQgaW4gbGVnYWN5IFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIzNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4K
KworICAgICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMgaW4gV2ViQ29yZSBpcyBvbmx5IHVz
ZWQgZm9yIFdlYktpdExlZ2FjeTsgV2ViUHJvY2VzcyBkb2Vzbid0IGhhdmUKKyAgICAgICAgV2lu
ZG93U2VydmVyIGFjY2VzcyBzbyBpcyB1bmFibGUgdG8gY3JlYXRlIENWRGlzcGxheUxpbmtSZWZz
LgorCisgICAgICAgIFJlbmFtZSBpdCB0byBpbmRpY2F0ZSB0aGlzLCBhbmQgcmVkdWNlIGNvbmZ1
c2lvbiB3aXRoIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyBpbiBXZWJLaXQyLgorICAgICAgICBB
bHNvIGFkZCBhbiBhc3NlcnRpb24gdGhhdCBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMg
aXMgbm90IGJlaW5nIGNyZWF0ZWQgaW4gdGhlCisgICAgICAgIFdlYlByb2Nlc3MuCisKKyAgICAg
ICAgRm9yIEVtcHR5UGFnZUNsaWVudHMgKGxpa2UgdGhlIFBhZ2UgdXNlZCBieSBjcmVhdGVQYWdl
Rm9yU2FuaXRpemluZ1dlYkNvbnRlbnQoKSkgd2UgbmVlZAorICAgICAgICBhIERpc3BsYXlSZWZy
ZXNoTW9uaXRvciBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXNuJ3QgdHJ5IHRvIENWRGlzcGxheUxp
bmtSZWZzIGluIHRoZQorICAgICAgICBXZWIgUHJvY2Vzcywgc28gYWRkIGFuIEVtcHR5RGlzcGxh
eVJlZnJlc2hNb25pdG9yIHRoYXQgbmV2ZXIgZmlyZXMuCisKKyAgICAgICAgKiBTb3VyY2VzQ29j
b2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
RGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlE
aXNwbGF5UmVmcmVzaE1vbml0b3I6OkVtcHR5RGlzcGxheVJlZnJlc2hNb25pdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0
b3IgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZhdWx0RGlzcGxheVJlZnJlc2hN
b25pdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwLgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpMZWdhY3lEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5RGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjOjp+TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKToKKyAgICAgICAgKFdlYkNv
cmU6OkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6c3RvcCk6CisgICAgICAgIChXZWJD
b3JlOjpkaXNwbGF5TGlua0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeURpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9MZWdhY3lEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaC4KKyAgICAgICAgKFdlYkNvcmU6OkxlZ2Fj
eURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6Y3JlYXRlKToKKwogMjAyMS0wMy0xOSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApp
bmRleCBiM2JkMzBkNDYxYjBjYmI0ODgwY2UwZWI1MTFmY2MzNGJjYzM3YjkyLi5kMzEzZTlmOWVh
ZjIyOWU2ZDkxZTczNGYxNDViYmM5NTAxYTk3NDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQK
QEAgLTQxNCw3ICs0MTQsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRGlzcGxheVJlZnJlc2hN
b25pdG9ySU9TLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvSWNvbklPUy5tbQogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0NvbG9yTWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRl
eHRDb250cm9sbGVyQ29yZVRleHQubW0KLXBsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRmxvYXRQb2ludE1hYy5t
bQogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0U2l6ZU1hYy5tbQogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC00MjMsNiArNDIyLDcgQEAgcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9JbWFn
ZU1hYy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ludFBvaW50TWFjLm1tCiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvSW50U2l6ZU1hYy5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURp
c3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9QREZEb2N1
bWVudEltYWdlTWFjLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3Jl
VGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Td2l0Y2hpbmdHUFVDbGllbnQuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYTZlYzc0Zjg1NDM2YWNmOTkwOTM0ZjcwY2RjOTQ4MTZkYTAxODM1NC4uZjNjNGY3NGU4ZWMz
MDE3OWIwNmY2NDY5ZTU1OWY1ODc3NjZlZTUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQ1LDcgKzg0NSw3IEBACiAJCTJE
QUYzNDNEMUVBN0UwRjEwMDM4MkNEMyAvKiBDb25zdGFudFByb3BlcnR5TWFwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFGMzQzQjFFQTdFMEYxMDAz
ODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0eU1hcC5oICovOyB9OwogCQkyREM4RDM5ODI1RjJGRTk3
MDBDRkNCQUIgLyogTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEQzhEMzk3MjVGMkZFOTQwMENGQ0JBQiAvKiBNb2RlbC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJERDVBNzI3MUVCRUU0N0Qw
MDlCQTU5NyAvKiBDb21wb3NpdGlvblVuZGVybGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRENUE3MjYxRUJFRTQ3RDAwOUJBNTk3IC8qIENvbXBv
c2l0aW9uVW5kZXJsaW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMkRFNzAwMjMxOTJGRTgyQTAwQjA5NzVDIC8qIERpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oICov
OyB9OworCQkyREU3MDAyMzE5MkZFODJBMDBCMDk3NUMgLyogTGVnYWN5RGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyREU3MDAyMjE5MkZFODJBMDBCMDk3NUMgLyogTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9y
TWFjLmggKi87IH07CiAJCTJERjUxMkNFMUQ4NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VX
aXRoVGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJERjUxMkNDMUQ4NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENv
bW1hbmQuaCAqLzsgfTsKIAkJMkRGQTQ4OEYxREI1NDFEMDAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGQTQ4
OEUxREI1NDFDMjAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJFMDg4OEQ1MTE0ODg0OEEwMEFGNDI2NSAv
KiBKU0RPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRTA4ODhEMzExNDg4NDhBMDBBRjQyNjUgLyogSlNET01Gb3JtRGF0YS5oICovOyB9
OwpAQCAtNzI0Miw3ICs3MjQyLDcgQEAKIAkJMkRDOEQzOTYyNUYyRkU5MzAwQ0ZDQkFCIC8qIE1v
ZGVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZGVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkRDOEQzOTcyNUYyRkU5NDAwQ0ZDQkFCIC8qIE1vZGVsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1vZGVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERDVBNzI2MUVC
RUU0N0QwMDlCQTU5NyAvKiBDb21wb3NpdGlvblVuZGVybGluZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDb21wb3NpdGlvblVuZGVybGluZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyREU3MDAyMjE5MkZFODJBMDBCMDk3NUMgLyogRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREU3MDAyMjE5
MkZFODJBMDBCMDk3NUMgLyogTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREY1MTJDQjFEODczRTQ3MDAxRDY3
ODAgLyogUmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERjUxMkNDMUQ4NzNFNDcwMDFENjc4MCAvKiBSZXBs
YWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJERkE0ODhFMURCNTQxQzIwMDM2MkI5OSAvKiBCdWZmZXJTb3VyY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnVmZmVyU291cmNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC04MzI3LDcgKzgzMjcsNyBAQAogCQk0OUFFMkQ5NDEzNEVFNUY5MDA3
MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDYWxjdWxhdGlvblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDlBRTJEOTUxMzRFRTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsY3VsYXRpb25WYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0OUFGMkQ2ODE0NDM1RDA1MDAxNkE3ODQgLyogRGlzcGxh
eVJlZnJlc2hNb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3Bs
YXlSZWZyZXNoTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUFGMkQ2
QjE0NDM1RDIxMDAxNkE3ODQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5QUYyRDZCMTQ0MzVEMjEwMDE2QTc4
NCAvKiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5ODAxMDQyRDJEMzAwMDlENDQ3IC8q
IEpTV2ViR0xCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNXZWJHTEJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5QzdCOTgx
MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTV2ViR0xCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDlDN0I5ODQxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xGcmFtZWJ1ZmZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMRnJhbWVidWZmZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjY2MzMsOCArMjY2MzMsNiBAQAogCQkJ
CUVERTNBNEZGMEM3QTQzMDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oICovLAogCQkJCUIyNzUzNTRB
MEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xvck1hYy5tbSAqLywKIAkJCQkzN0MyMzgyMDEwOThDODQy
MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0gKi8sCi0JCQkJNDlB
RjJENkIxNDQzNUQyMTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgKi8s
Ci0JCQkJMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yy5oICovLAogCQkJCUIyNzUzNTRCMEIwNTM4MTQwMDJDRTY0RiAvKiBGbG9hdFBvaW50TWFjLm1t
ICovLAogCQkJCUIyNzUzNTREMEIwNTM4MTQwMDJDRTY0RiAvKiBGbG9hdFNpemVNYWMubW0gKi8s
CiAJCQkJQjJBRkZDNzUwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwICovLApAQCAtMjY2NDUsNiArMjY2NDMsOCBAQAogCQkJCUIyNzUzNTRFMEIwNTM4MTQwMDJD
RTY0RiAvKiBJbWFnZU1hYy5tbSAqLywKIAkJCQlCMjc1MzU0RjBCMDUzODE0MDAyQ0U2NEYgLyog
SW50UG9pbnRNYWMubW0gKi8sCiAJCQkJQjI3NTM1NTEwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNp
emVNYWMubW0gKi8sCisJCQkJNDlBRjJENkIxNDQzNUQyMTAwMTZBNzg0IC8qIExlZ2FjeURpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgKi8sCisJCQkJMkRFNzAwMjIxOTJGRTgyQTAwQjA5NzVD
IC8qIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oICovLAogCQkJCTJENkU0NjgyMTdE
NjYwRjUwMEVDRjhCQiAvKiBQREZEb2N1bWVudEltYWdlTWFjLm1tICovLAogCQkJCTdCNzMxMUZB
MjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmggKi8s
CiAJCQkJMTYzRTg4RjUxMThBMzlEMjAwRUQ5MjMxIC8qIFNpbXBsZUZvbnREYXRhQ29yZVRleHQu
Y3BwICovLApAQCAtMzIwNDQsNyArMzIwNDQsNiBAQAogCQkJCTQ5QUYyRDY5MTQ0MzVEMDUwMDE2
QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlF
Q0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEMjlFQ0NBMTkyRjFGMUQwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVz
aE1vbml0b3JJT1MuaCBpbiBIZWFkZXJzICovLAotCQkJCTJERTcwMDIzMTkyRkU4MkEwMEIwOTc1
QyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlF
Q0M4MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjc5MEY0MzI1MTdDRTZFMDA5QkEwMzQgLyogRGlzcGxheVZpZXcu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDkxMTJCMDI2RjcwMEMxQTM1OSAvKiBEaXN0YW5j
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzc1Nyw2ICszMzc1Niw3IEBACiAJCQkJQ0RFOEI1RUQx
QTY5Nzc3MzAwQjRCNjZBIC8qIExlZ2FjeUNETVByaXZhdGVDbGVhcktleS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RGNEI3MTIxRTAwODdBRTAwRTIzNUEyIC8qIExlZ2FjeUNETVNlc3Npb24uaCBp
biBIZWFkZXJzICovLAogCQkJCUNERThCNUYxMUE2OTc3OEIwMEI0QjY2QSAvKiBMZWdhY3lDRE1T
ZXNzaW9uQ2xlYXJLZXkuaCBpbiBIZWFkZXJzICovLAorCQkJCTJERTcwMDIzMTkyRkU4MkEwMEIw
OTc1QyAvKiBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUY0NEE1RjU5MUZFRDM4RjIwMDdGNTk0NCAvKiBMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTE4NUI0MkExRTgyMTFBMTAwREM5MTE4IC8qIExlZ2FjeVBy
ZXZpZXdMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMERCRjQ3MThGOTIzMTcwMDBENzBD
NiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggNDU5MDNjMDZiZDA4OTU5MmQ1N2U4YmJj
ZjNlZWYzNTBjZWE5OTE2NS4uZjYyNjQ0Yjg3NWUzYTYwNWM0N2M1YjU2ZWYzNGJlMzQ1MDZjODVj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTEyNSw2ICsxMjUs
MjUgQEAgY2xhc3MgRW1wdHlDb250ZXh0TWVudUNsaWVudCBmaW5hbCA6IHB1YmxpYyBDb250ZXh0
TWVudUNsaWVudCB7CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAorCitjbGFz
cyBFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvciA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1vbml0
b3IgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3I+
IGNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpKTsK
KyAgICB9CisKKyAgICB2b2lkIGRpc3BsYXlMaW5rRmlyZWQoKSBmaW5hbCB7IH0KKyAgICBib29s
IHJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZv
aWQgc3RvcCgpIGZpbmFsIHsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IEVtcHR5RGlzcGxh
eVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKKyAgICAgICAgOiBE
aXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKQorICAgIHsKKyAgICB9Cit9OworCiBjbGFz
cyBFbXB0eURhdGFiYXNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgRGF0YWJhc2VQcm92aWRlciB7
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgc3RydWN0IEVtcHR5SURCQ29ubmVj
dGlvblRvU2VydmVyRGVsZXRlZ2F0ZSBmaW5hbCA6IHB1YmxpYyBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Ub1NlcnZlckRlbGVnYXRlIHsKQEAgLTUxMSw2ICs1MzAsMTEgQEAgdm9pZCBFbXB0eUNo
cm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYpIGNvbnN0CiB9CiAj
ZW5kaWYKIAorUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRW1wdHlDaHJvbWVDbGllbnQ6
OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQp
IGNvbnN0Cit7CisgICAgcmV0dXJuIEVtcHR5RGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGUo
ZGlzcGxheUlEKTsKK30KKwogdm9pZCBFbXB0eUNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZy
YW1lJiwgRmlsZUNob29zZXImKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CmluZGV4IGNiN2M1NGYyNjU0MWM5NGU4NzRhNjhhYmZhM2UxODFlYWIwYzU5NGMuLmI2ZjgxMGVk
MjY3NDJjMzA1ZDdkMGMzMGViYWI0ZTFlYmZmYjI5MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKQEAgLTE0OSw2ICsxNDksOCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6
IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoQXBwSGln
aGxpZ2h0JiYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKKyAgICBSZWZQdHI8RGlzcGxheVJlZnJl
c2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQp
IGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3Nl
ciYpIGZpbmFsOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVS
TCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9h
ZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgZmlu
YWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNw
bGF5UmVmcmVzaE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAppbmRleCBkMjQ0MGI0NjlmNTg2MjkwMmJiYzYxMGUx
YWExMDg0NzIzODk3ODUyLi43Mzg3NmZmYTdlMmQ0MmM0OWIzNTlkZGQ1YTFkZTMzMzk4Y2VkZGI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5oIgogI2VsaWYg
UExBVEZPUk0oTUFDKQotI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIgorI2lu
Y2x1ZGUgIkxlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIgogI2VsaWYgUExBVEZPUk0o
R1RLKQogI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvckd0ay5oIgogI2VsaWYgUExBVEZP
Uk0oV0lOKQpAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZWZQdHI8RGlz
cGxheVJlZnJlc2hNb25pdG9yPiBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0ZURlZmF1bHRE
aXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogewogI2lm
IFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpjcmVh
dGUoZGlzcGxheUlEKTsKKyAgICByZXR1cm4gTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
OjpjcmVhdGUoZGlzcGxheUlEKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgcmV0dXJuIERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUzo6Y3JlYXRlKGRpc3BsYXlJRCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5MmI2MDQ0M2VhNDJmNjQzMWI5ZmVkY2ZlM2RjNWE5NTA3ODA3N2Q3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMTA2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5oIgotCi0jaWYgUExBVEZPUk0oTUFDKQotCi0jaW5jbHVkZSA8UXVh
cnR6Q29yZS9RdWFydHpDb3JlLmg+Ci0jaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OkRpc3BsYXlSZWZyZXNo
TW9uaXRvck1hYyhQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCi0gICAgOiBEaXNwbGF5UmVm
cmVzaE1vbml0b3IoZGlzcGxheUlEKQotewotfQotCi1EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6
On5EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoKQotewotICAgIEFTU0VSVCghbV9kaXNwbGF5TGlu
ayk7Ci19Ci0KLXZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdG9wKCkKLXsKLSAgICBp
ZiAoIW1fZGlzcGxheUxpbmspCi0gICAgICAgIHJldHVybjsKLQotICAgIENWRGlzcGxheUxpbmtT
dG9wKG1fZGlzcGxheUxpbmspOwotICAgIENWRGlzcGxheUxpbmtSZWxlYXNlKG1fZGlzcGxheUxp
bmspOwotICAgIG1fZGlzcGxheUxpbmsgPSBudWxscHRyOwotfQotCi1zdGF0aWMgQ1ZSZXR1cm4g
ZGlzcGxheUxpbmtDYWxsYmFjayhDVkRpc3BsYXlMaW5rUmVmLCBjb25zdCBDVlRpbWVTdGFtcCos
IGNvbnN0IENWVGltZVN0YW1wKiwgQ1ZPcHRpb25GbGFncywgQ1ZPcHRpb25GbGFncyosIHZvaWQq
IGRhdGEpCi17Ci0gICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKiBtb25pdG9yID0gc3RhdGlj
X2Nhc3Q8RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKj4oZGF0YSk7Ci0gICAgbW9uaXRvci0+ZGlz
cGxheUxpbmtGaXJlZCgpOwotICAgIHJldHVybiBrQ1ZSZXR1cm5TdWNjZXNzOwotfQotCi1ib29s
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjaygpCi17Ci0g
ICAgaWYgKCFpc0FjdGl2ZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIW1f
ZGlzcGxheUxpbmspIHsKLSAgICAgICAgc2V0SXNBY3RpdmUoZmFsc2UpOwotICAgICAgICBDVlJl
dHVybiBlcnJvciA9IENWRGlzcGxheUxpbmtDcmVhdGVXaXRoQ0dEaXNwbGF5KGRpc3BsYXlJRCgp
LCAmbV9kaXNwbGF5TGluayk7Ci0gICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgICAgICBlcnJvciA9IENWRGlzcGxheUxpbmtTZXRPdXRwdXRDYWxsYmFj
ayhtX2Rpc3BsYXlMaW5rLCBkaXNwbGF5TGlua0NhbGxiYWNrLCB0aGlzKTsKLSAgICAgICAgaWYg
KGVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGVycm9yID0gQ1ZE
aXNwbGF5TGlua1N0YXJ0KG1fZGlzcGxheUxpbmspOwotICAgICAgICBpZiAoZXJyb3IpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgc2V0SXNBY3RpdmUodHJ1ZSk7Ci0gICAg
fQotCi0gICAgTG9ja0hvbGRlciBsb2NrKG11dGV4KCkpOwotICAgIHNldElzU2NoZWR1bGVkKHRy
dWUpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yzo6ZGlzcGxheUxpbmtGaXJlZCgpCi17Ci0gICAgTG9ja0hvbGRlciBsb2NrKG11dGV4KCkpOwot
ICAgIGlmICghaXNQcmV2aW91c0ZyYW1lRG9uZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBz
ZXRJc1ByZXZpb3VzRnJhbWVEb25lKGZhbHNlKTsKLQotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNw
YXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIGlm
IChtX2Rpc3BsYXlMaW5rKQotICAgICAgICAgICAgaGFuZGxlRGlzcGxheVJlZnJlc2hlZE5vdGlm
aWNhdGlvbk9uTWFpblRocmVhZCh0aGlzKTsKLSAgICB9KTsKLX0KLQotfQotCi0jZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhYTllY2FhZTdiNWI0Zjk5OGQ2OTRkMTYwM2VmZGRkOTc1OWVhNTdh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaAor
KysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBQTEFURk9STShNQUMpCi0K
LSNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCIKLSNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgotCi10eXBlZGVmIHN0cnVjdCBfX0NWRGlzcGxheUxpbmsgKkNWRGlzcGxheUxpbmtSZWY7
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
IDogcHVibGljIERpc3BsYXlSZWZyZXNoTW9uaXRvciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM+IGNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNw
bGF5SUQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMoZGlzcGxheUlEKSk7Ci0gICAgfQotICAgIAotICAgIHZpcnR1YWwgfkRpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYygpOwotCi0gICAgdm9pZCBkaXNwbGF5TGlua0ZpcmVkKCkgZmlu
YWw7Ci0gICAgYm9vbCByZXF1ZXN0UmVmcmVzaENhbGxiYWNrKCkgZmluYWw7Ci0gICAgdm9pZCBz
dG9wKCkgZmluYWw7Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEKTsKLQotICAgIENWRGlzcGxheUxpbmtSZWYgbV9kaXNw
bGF5TGluayB7IG51bGxwdHIgfTsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9MZWdhY3lE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTNjZTY0M2I4YzdlMDljM2E5NTgyZThiZDg0Y2M0MzBmMjMwYTI0MgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9MZWdhY3lEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCIKKworI2lmIFBMQVRGT1JN
KE1BQykKKworI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorI2luY2x1ZGUg
PFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpMZWdh
Y3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQor
ICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCkKK3sKKyAgICBBU1NFUlQoIWlz
SW5XZWJQcm9jZXNzKCkpOworfQorCitMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6On5M
ZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoKQoreworICAgIEFTU0VSVCghbV9kaXNwbGF5
TGluayk7Cit9CisKK3ZvaWQgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpzdG9wKCkK
K3sKKyAgICBpZiAoIW1fZGlzcGxheUxpbmspCisgICAgICAgIHJldHVybjsKKworICAgIENWRGlz
cGxheUxpbmtTdG9wKG1fZGlzcGxheUxpbmspOworICAgIENWRGlzcGxheUxpbmtSZWxlYXNlKG1f
ZGlzcGxheUxpbmspOworICAgIG1fZGlzcGxheUxpbmsgPSBudWxscHRyOworfQorCitzdGF0aWMg
Q1ZSZXR1cm4gZGlzcGxheUxpbmtDYWxsYmFjayhDVkRpc3BsYXlMaW5rUmVmLCBjb25zdCBDVlRp
bWVTdGFtcCosIGNvbnN0IENWVGltZVN0YW1wKiwgQ1ZPcHRpb25GbGFncywgQ1ZPcHRpb25GbGFn
cyosIHZvaWQqIGRhdGEpCit7CisgICAgTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKiBt
b25pdG9yID0gc3RhdGljX2Nhc3Q8TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKj4oZGF0
YSk7CisgICAgbW9uaXRvci0+ZGlzcGxheUxpbmtGaXJlZCgpOworICAgIHJldHVybiBrQ1ZSZXR1
cm5TdWNjZXNzOworfQorCitib29sIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVx
dWVzdFJlZnJlc2hDYWxsYmFjaygpCit7CisgICAgaWYgKCFpc0FjdGl2ZSgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIW1fZGlzcGxheUxpbmspIHsKKyAgICAgICAgc2V0SXNB
Y3RpdmUoZmFsc2UpOworICAgICAgICBDVlJldHVybiBlcnJvciA9IENWRGlzcGxheUxpbmtDcmVh
dGVXaXRoQ0dEaXNwbGF5KGRpc3BsYXlJRCgpLCAmbV9kaXNwbGF5TGluayk7CisgICAgICAgIGlm
IChlcnJvcikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBlcnJvciA9IENW
RGlzcGxheUxpbmtTZXRPdXRwdXRDYWxsYmFjayhtX2Rpc3BsYXlMaW5rLCBkaXNwbGF5TGlua0Nh
bGxiYWNrLCB0aGlzKTsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIGVycm9yID0gQ1ZEaXNwbGF5TGlua1N0YXJ0KG1fZGlzcGxheUxpbmsp
OworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgc2V0SXNBY3RpdmUodHJ1ZSk7CisgICAgfQorCisgICAgTG9ja0hvbGRlciBsb2NrKG11dGV4
KCkpOworICAgIHNldElzU2NoZWR1bGVkKHRydWUpOworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIExlZ2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxpbmtGaXJlZCgpCit7
CisgICAgTG9ja0hvbGRlciBsb2NrKG11dGV4KCkpOworICAgIGlmICghaXNQcmV2aW91c0ZyYW1l
RG9uZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXRJc1ByZXZpb3VzRnJhbWVEb25lKGZh
bHNlKTsKKworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgIGlmIChtX2Rpc3BsYXlMaW5rKQorICAgICAg
ICAgICAgaGFuZGxlRGlzcGxheVJlZnJlc2hlZE5vdGlmaWNhdGlvbk9uTWFpblRocmVhZCh0aGlz
KTsKKyAgICB9KTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xlZ2FjeURpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0xl
Z2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzYTNhNzhiOTUyMWQ2
MDJkMDdjNzdjODg3OTRhOTQwNDhjNTA2MmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
LmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUg
IkRpc3BsYXlSZWZyZXNoTW9uaXRvci5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK3R5
cGVkZWYgc3RydWN0IF9fQ1ZEaXNwbGF5TGluayAqQ1ZEaXNwbGF5TGlua1JlZjsKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBMZWdhY3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMgOiBw
dWJsaWMgRGlzcGxheVJlZnJlc2hNb25pdG9yIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPExl
Z2FjeURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYz4gY3JlYXRlKFBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IExlZ2FjeURpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYyhkaXNwbGF5SUQpKTsKKyAgICB9CisgICAgCisgICAgdmlydHVh
bCB+TGVnYWN5RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKCk7CisKKyAgICB2b2lkIGRpc3BsYXlM
aW5rRmlyZWQoKSBmaW5hbDsKKyAgICBib29sIHJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKSBmaW5h
bDsKKyAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBMZWdh
Y3lEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoUGxhdGZvcm1EaXNwbGF5SUQpOworCisgICAgQ1ZE
aXNwbGF5TGlua1JlZiBtX2Rpc3BsYXlMaW5rIHsgbnVsbHB0ciB9OworfTsKKworfQorCisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>