<?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>167908</bug_id>
          
          <creation_ts>2017-02-06 15:32:04 -0800</creation_ts>
          <short_desc>[Cocoa] Split FileSystemMac.mm into Mac and Cocoa parts</short_desc>
          <delta_ts>2017-02-06 17:41:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>graouts</cc>
    
    <cc>jer.noble</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1273736</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-02-06 15:32:04 -0800</bug_when>
    <thetext>[Cocoa] Split FileSystemMac.mm into Mac and Cocoa parts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273737</commentid>
    <comment_count>1</comment_count>
      <attachid>300760</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-02-06 15:34:40 -0800</bug_when>
    <thetext>Created attachment 300760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273745</commentid>
    <comment_count>2</comment_count>
      <attachid>300764</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-02-06 15:48:36 -0800</bug_when>
    <thetext>Created attachment 300764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273802</commentid>
    <comment_count>3</comment_count>
      <attachid>300764</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-06 17:41:17 -0800</bug_when>
    <thetext>Comment on attachment 300764
Patch

Clearing flags on attachment: 300764

Committed r211762: &lt;http://trac.webkit.org/changeset/211762&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273803</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-06 17:41:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300760</attachid>
            <date>2017-02-06 15:34:40 -0800</date>
            <delta_ts>2017-02-06 15:48:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167908-20170206153218.patch</filename>
            <type>text/plain</type>
            <size>20176</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzcwNjcwMGQzZWZlZDA3
MTIwNmY5MTM0OTU1NTFkY2Q5NzdhYjU3YS4uNjE4NzBhM2UzZThhYWE1NDBmZmU2Mjc3ZWMxZWE0
MmQ2ZDZjNmYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTAyLTA2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNwbGl0IEZpbGVT
eXN0ZW1NYWMubW0gaW50byBNYWMgYW5kIENvY29hIHBhcnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc5MDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBLZXB0IHRoZSBNYWMtb25seSBmdW5jdGlvbnMg
aW4gRmlsZVN5c3RlbU1hYy5tbSBhbmQgbW92ZWQgdGhlIHJlc3QgaW50byBGaWxlU3lzdGVtQ29j
b2EubW0uCisKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvRmls
ZVN5c3RlbUNvY29hLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
RmlsZVN5c3RlbU1hYy5tbS4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5t
bToKKyAgICAgICAgKC1bV2ViRmlsZU1hbmFnZXJEZWxlZ2F0ZSBmaWxlTWFuYWdlcjpzaG91bGRQ
cm9jZWVkQWZ0ZXJFcnJvcjptb3ZpbmdJdGVtQXRVUkw6dG9VUkw6XSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpob21lRGlyZWN0b3J5UGF0aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpvcGVuVGVtcG9yYXJ5RmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjptb3Zl
RmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpnZXRWb2x1bWVGcmVlU3BhY2UpOiBE
ZWxldGVkLgorCiAyMDE3LTAyLTA2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEFuaW1hdGlvbkNvbnRyb2xsZXIgdG8gQ1NTQW5p
bWF0aW9uQ29udHJvbGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBkMDY0MGI5YzBi
ZjMyYzUyM2MzMDgzZDI0ZGY3ZmE5OTZiMzI5NjNmLi4yZTZiMWExYzY5ZTM3YjQ0ZGVjYjkyZDM0
NmUxODQxNTZhYzQ1MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMzE3LDYgKzMx
Nyw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2NvY29hL0Nv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tCiAgICAgcGxhdGZvcm0vY29jb2EvQ29y
ZVZpZGVvU29mdExpbmsuY3BwCiAgICAgcGxhdGZvcm0vY29jb2EvRGlzcGxheVNsZWVwRGlzYWJs
ZXJDb2NvYS5jcHAKKyAgICBwbGF0Zm9ybS9jb2NvYS9GaWxlU3lzdGVtQ29jb2EubW0KICAgICBw
bGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCiAgICAgcGxhdGZvcm0vY29jb2EvTG9jYWxp
emVkU3RyaW5nc0NvY29hLm1tCiAgICAgcGxhdGZvcm0vY29jb2EvTUlNRVR5cGVSZWdpc3RyeUNv
Y29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMTU2NWY0NjNkNGI0YTZhNjVhZGU5NWY5YjAyMDM5MGIxNGFiMTE5OC4uZmU3
M2M5MmM4NTBiOGFmOTBlNGIwZjllZjRmZTRlMjE2ZTY3NTk2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA0OSw3ICsyMDQ5
LDcgQEAKIAkJNTE0ODQ1M0UxQkI5RDA3RTAwNkE3MkVEIC8qIElEQkVycm9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDg0NTNDMUJCOUQwNzYw
MDZBNzJFRCAvKiBJREJFcnJvci5jcHAgKi87IH07CiAJCTUxNDg0NTNGMUJCOUQwN0UwMDZBNzJF
RCAvKiBJREJFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE0ODQ1M0QxQkI5RDA3NjAwNkE3MkVEIC8qIElEQkVycm9yLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0QjNGNzMwQzcyMjA0NzAw
MDUzMERGIC8qIEZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxNEIzRjcyMEM3MjIwNDcwMDA1MzBERiAvKiBGaWxlU3lzdGVtLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTE0QjNGNzYw
QzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRCM0Y3NTBDNzIyMDU1MDAwNTMwREYgLyogRmls
ZVN5c3RlbU1hYy5tbSAqLzsgfTsKKwkJNTE0QjNGNzYwQzcyMjA1NTAwMDUzMERGIC8qIEZpbGVT
eXN0ZW1Db2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtQ29jb2EubW0gKi87IH07
CiAJCTUxNEM3NjM3MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9yLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjM1MENFOTIyNUUwMDdF
RjNDRCAvKiBKU1NRTEVycm9yLmNwcCAqLzsgfTsKIAkJNTE0Qzc2MzgwQ0U5MjI1RTAwN0VGM0NE
IC8qIEpTU1FMVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE0Qzc2MzYwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rp
b24uY3BwICovOyB9OwogCQk1MTRDNzY0QzBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRp
b25NYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
NEM3NjQyMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zOTk2LDYgKzM5OTYsNyBA
QAogCQlBMUMxNTA3OTFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQzE1MDc3MUUzRjJC
M0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLm1tICovOyB9OwogCQlBMUMxNTA3QTFFM0Yy
QjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDMTUwNzgxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZp
ZXdDb252ZXJ0ZXIuaCAqLzsgfTsKIAkJQTFDN0ZBQTIxMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBh
dGhSZXN1bHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20u
Y3BwICovOyB9OworCQlBMUNDMTE2NDFFNDkzRDAxMDBFRkE2OUMgLyogRmlsZVN5c3RlbU1hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0MxMTYy
MUU0OTNEMDEwMEVGQTY5QyAvKiBGaWxlU3lzdGVtTWFjLm1tICovOyB9OwogCQlBMURFNzEyRDE4
NjEyQUMxMDA3MzQxOTIgLyogVG91Y2hFdmVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFERTcxMkIxODYxMkFDMTAwNzM0MTkyIC8qIFRvdWNo
RXZlbnRzLmNwcCAqLzsgfTsKIAkJQTFERTcxMzIxODYxMzIyMjAwNzM0MTkyIC8qIFRvdWNoQ29u
c3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExREU3MTMwMTg2MTMyMjIwMDczNDE5MiAvKiBUb3VjaENvbnN0cnVjdG9ycy5jcHAgKi87
IH07CiAJCUExRTExNTQ0MTMwMTVDM0QwMDU0QUM4QyAvKiBEaXN0YW50TGlnaHRTb3VyY2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMTE1NDMx
MzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAgKi87IH07CkBAIC05MzQ5
LDcgKzkzNTAsNyBAQAogCQk1MTQ4NDUzQzFCQjlEMDc2MDA2QTcyRUQgLyogSURCRXJyb3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCRXJyb3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4NDUzRDFCQjlEMDc2MDA2QTcyRUQgLyogSURC
RXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRXJyb3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0QjNGNzIwQzcyMjA0NzAwMDUzMERGIC8qIEZp
bGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTRCM0Y3NTBDNzIyMDU1MDAwNTMwREYg
LyogRmlsZVN5c3RlbU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEZpbGVTeXN0ZW1NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNEIz
Rjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGaWxlU3lzdGVtQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjM1MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1FMRXJyb3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzYzNjBDRTkyMjVFMDA3RUYzQ0Qg
LyogSlNTUUxUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1NRTFRyYW5zYWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTE0Qzc2NDIwQ0U5MjM0RTAwN0VGM0NEIC8qIEF1dGhlbnRpY2F0aW9uTWFjLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uTWFjLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTc2OSw2ICsxMTc3MCw3IEBACiAJCUExQzE1MDc3MUUzRjJC
M0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUHJldmlld0NvbnZlcnRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTFDMTUwNzgxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJldmlld0NvbnZlcnRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUM3RkFBMTEzM0E1RDM1MDBENjczMkQgLyog
SlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTFDQzExNjIxRTQ5M0QwMTAwRUZBNjlDIC8qIEZpbGVTeXN0ZW1NYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGaWxlU3lzdGVtTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMURFNzEyQjE4NjEyQUMxMDA3MzQxOTIgLyogVG91Y2hF
dmVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVG91Y2hFdmVu
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMURFNzEzMDE4NjEzMjIyMDA3
MzQxOTIgLyogVG91Y2hDb25zdHJ1Y3RvcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVG91Y2hDb25zdHJ1Y3RvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMUUxMTU0MzEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3RhbnRMaWdodFNvdXJj
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODAwMCw3ICsxODAwMiw3IEBA
CiAJCQkJQTdDRkIzRDQwQjdFRDExODAwNzBDMzJEIC8qIERyYWdJbWFnZU1hYy5tbSAqLywKIAkJ
CQlFMUJBNjZGMDE3NDJCRDg2MDBDMjAyNTEgLyogRHluYW1pY0xpbmtlckludGVycG9zaW5nLmgg
Ki8sCiAJCQkJMUNBMTlFMDMwREMyNTU5NTAwNjVBOTk0IC8qIEV2ZW50TG9vcE1hYy5tbSAqLywK
LQkJCQk1MTRCM0Y3NTBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSAqLywKKwkJ
CQlBMUNDMTE2MjFFNDkzRDAxMDBFRkE2OUMgLyogRmlsZVN5c3RlbU1hYy5tbSAqLywKIAkJCQk5
MzVDNDc2RTA5QUM0RDczMDBBNkFBQjQgLyogS2V5RXZlbnRNYWMubW0gKi8sCiAJCQkJNTIxRDQ2
RjUxMUFFQzk4MTAwNTE0NjEzIC8qIEtpbGxSaW5nTWFjLm1tICovLAogCQkJCTA2RTgxRUQ2MEFC
NUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCAqLywKQEAgLTIw
MDUwLDYgKzIwMDUyLDcgQEAKIAkJCQk3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1OEUgLyogRGF0YURl
dGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLywKIAkJCQk1RDhDNERCRDE0MjgyMjJDMDAyNkNFNzIg
LyogRGlzcGxheVNsZWVwRGlzYWJsZXJDb2NvYS5jcHAgKi8sCiAJCQkJNUQ4QzREQkUxNDI4MjIy
QzAwMjZDRTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyQ29jb2EuaCAqLywKKwkJCQk1MTRCM0Y3
NTBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbUNvY29hLm1tICovLAogCQkJCUE1Qzk3NENG
MTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29hLmggKi8sCiAJCQkJQTVDOTc0RDAxMTQ4
NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2EubW0gKi8sCiAJCQkJMUE0ODMyQjIxQTk1M0JB
NjAwOEI0REZFIC8qIExvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSAqLywKQEAgLTI5NzMxLDcgKzI5
NzM0LDcgQEAKIAkJCQlDNTdGRURFMTEyMTJFRTlDMDA5N0JFNjUgLyogRmlsZVN5c3RlbS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MTYwMzA2QzBDQzQzNjIzMDBDOEFDMjUgLyogRmlsZVN5c3Rl
bUNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2QzE3QTNGMTQ5MUQyRDQwMEQxMkJBMiAvKiBG
aWxlU3lzdGVtSU9TLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE0QjNGNzYwQzcyMjA1NTAwMDUz
MERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTRCM0Y3NjBDNzIy
MDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE2
MDMwMEIwQ0M0MjUxMjAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1QT1NJWC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzVFQjY5RTBFODFEQUVCMDBCMjU5NjUgLyogRmlsbExheWVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA4QzkyNTE5MEZDQzdDNEEwMDQ4MERFQyAvKiBGaWx0ZXJFZmZlY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0zMDI4MCw2ICszMDI4Myw3IEBACiAJCQkJQkNEOUMyNjIwQzE3
QUE2NzAwNUM5MEEyIC8qIEpTRE9NV2luZG93Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ2MENCRjM1MUQ0QkNEMEUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNCRkI1M0MwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93
U2hlbGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTFDQzExNjQxRTQ5M0QwMTAwRUZBNjlDIC8q
IEZpbGVTeXN0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTcwQTJFQTFEOEMwQ0NBMDAz
MTg0NTIgLyogSlNET01XcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQTgwNjFEMUUw
M0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZE
Nzg2OEI5MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9G
aWxlU3lzdGVtQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9GaWxlU3lz
dGVtQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU1ZThjMDc0NDFkYzVkZGJlZGZiYjU3NjU4NGMwYjhj
YTU3YjM5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L0ZpbGVTeXN0ZW1Db2NvYS5tbQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiRmlsZVN5c3RlbS5oIgorCisjaW1wb3J0ICJXZWJDb3JlTlNVUkxFeHRyYXMuaCIK
KyNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPEZvdW5kYXRpb24v
Rm91bmRhdGlvbkVycm9ycy5oPgorI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0ZpbGVNYW5hZ2VyLmg+
CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+
CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworQGludGVyZmFjZSBXZWJGaWxlTWFu
YWdlckRlbGVnYXRlIDogTlNPYmplY3QgPE5TRmlsZU1hbmFnZXJEZWxlZ2F0ZT4KK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIFdlYkZpbGVNYW5hZ2VyRGVsZWdhdGUKKworLSAoQk9PTClmaWxlTWFu
YWdlcjooTlNGaWxlTWFuYWdlciAqKWZpbGVNYW5hZ2VyIHNob3VsZFByb2NlZWRBZnRlckVycm9y
OihOU0Vycm9yICopZXJyb3IgbW92aW5nSXRlbUF0VVJMOihOU1VSTCAqKXNyY1VSTCB0b1VSTDoo
TlNVUkwgKilkc3RVUkwKK3sKKyAgICBVTlVTRURfUEFSQU0oZmlsZU1hbmFnZXIpOworICAgIFVO
VVNFRF9QQVJBTShzcmNVUkwpOworICAgIFVOVVNFRF9QQVJBTShkc3RVUkwpOyAgICAKKyAgICBy
ZXR1cm4gZXJyb3IuY29kZSA9PSBOU0ZpbGVXcml0ZUZpbGVFeGlzdHNFcnJvcjsKK30KKworQGVu
ZAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBob21lRGlyZWN0b3J5UGF0aCgpCit7
CisgICAgcmV0dXJuIE5TSG9tZURpcmVjdG9yeSgpOworfQorCitTdHJpbmcgb3BlblRlbXBvcmFy
eUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhhbmRsZSYgcGxhdGZvcm1G
aWxlSGFuZGxlKQoreworICAgIHBsYXRmb3JtRmlsZUhhbmRsZSA9IGludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGU7CisgICAgCisgICAgVmVjdG9yPGNoYXI+IHRlbXBvcmFyeUZpbGVQYXRoKFBBVEhf
TUFYKTsKKyAgICBpZiAoIWNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCB0ZW1wb3Jh
cnlGaWxlUGF0aC5kYXRhKCksIHRlbXBvcmFyeUZpbGVQYXRoLnNpemUoKSkpCisgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKworICAgIC8vIFNocmluayB0aGUgdmVjdG9yLiAgIAorICAgIHRlbXBv
cmFyeUZpbGVQYXRoLnNocmluayhzdHJsZW4odGVtcG9yYXJ5RmlsZVBhdGguZGF0YSgpKSk7CisK
KyAgICAvLyBGSVhNRTogQ2hhbmdlIHRvIGEgcnVudGltZSBhc3NlcnRpb24gdGhhdCB0aGUgcGF0
aCBlbmRzIHdpdGggYSBzbGFzaCBvbmNlIDxyZGFyOi8vcHJvYmxlbS8yMzU3OTA3Nz4gaXMKKyAg
ICAvLyBmaXhlZCBpbiBhbGwgaU9TIFNpbXVsYXRvciB2ZXJzaW9ucyB0aGF0IHdlIHVzZS4KKyAg
ICBpZiAodGVtcG9yYXJ5RmlsZVBhdGgubGFzdCgpICE9ICcvJykKKyAgICAgICAgdGVtcG9yYXJ5
RmlsZVBhdGguYXBwZW5kKCcvJyk7CisKKyAgICAvLyBBcHBlbmQgdGhlIGZpbGUgbmFtZS4KKyAg
ICBDU3RyaW5nIHByZWZpeFV0ZjggPSBwcmVmaXgudXRmOCgpOworICAgIHRlbXBvcmFyeUZpbGVQ
YXRoLmFwcGVuZChwcmVmaXhVdGY4LmRhdGEoKSwgcHJlZml4VXRmOC5sZW5ndGgoKSk7CisgICAg
dGVtcG9yYXJ5RmlsZVBhdGguYXBwZW5kKCJYWFhYWFgiLCA2KTsKKyAgICB0ZW1wb3JhcnlGaWxl
UGF0aC5hcHBlbmQoJ1wwJyk7CisKKyAgICBwbGF0Zm9ybUZpbGVIYW5kbGUgPSBta3N0ZW1wKHRl
bXBvcmFyeUZpbGVQYXRoLmRhdGEoKSk7CisgICAgaWYgKHBsYXRmb3JtRmlsZUhhbmRsZSA9PSBp
bnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAg
ICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCh0ZW1wb3JhcnlGaWxlUGF0aC5kYXRhKCkpOworfQor
Citib29sIG1vdmVGaWxlKGNvbnN0IFN0cmluZyYgb2xkUGF0aCwgY29uc3QgU3RyaW5nJiBuZXdQ
YXRoKQoreworICAgIC8vIE92ZXJ3cml0ZSBleGlzdGluZyBmaWxlcy4KKyAgICBhdXRvIG1hbmFn
ZXIgPSBhZG9wdE5TKFtbTlNGaWxlTWFuYWdlciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbV2ViRmlsZU1hbmFnZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwor
ICAgIFttYW5hZ2VyIHNldERlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICAKKyAgICByZXR1
cm4gW21hbmFnZXIgbW92ZUl0ZW1BdFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOm9sZFBhdGhd
IHRvVVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6bmV3UGF0aF0gZXJyb3I6bmlsXTsKK30KKwor
Ym9vbCBnZXRWb2x1bWVGcmVlU3BhY2UoY29uc3QgU3RyaW5nJiBwYXRoLCB1aW50NjRfdCYgZnJl
ZVNwYWNlKQoreworICAgIE5TRGljdGlvbmFyeSAqZmlsZVN5c3RlbUF0dHJpYnV0ZXNEaWN0aW9u
YXJ5ID0gW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBhdHRyaWJ1dGVzT2ZGaWxlU3lz
dGVtRm9yUGF0aDooTlNTdHJpbmcgKilwYXRoIGVycm9yOk5VTExdOworICAgIGlmICghZmlsZVN5
c3RlbUF0dHJpYnV0ZXNEaWN0aW9uYXJ5KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZnJl
ZVNwYWNlID0gW1tmaWxlU3lzdGVtQXR0cmlidXRlc0RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5Ok5T
RmlsZVN5c3RlbUZyZWVTaXplXSB1bnNpZ25lZExvbmdMb25nVmFsdWVdOworICAgIHJldHVybiB0
cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9GaWxlU3lzdGVtTWFjLm1tCmluZGV4IDYwNTM4N2FkYmQ2YmE5Y2ZkOWJjMDVlNDRk
ZmMzZmM3OTMxNWM2ZGYuLjExNTkxNTVmZTcxMDVlMmQ1MGVjMjkwNjJjNzk3MzcyODhlOTczZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9GaWxlU3lzdGVtTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9GaWxlU3lzdGVtTWFjLm1tCkBAIC0x
LDExMyArMSwzNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
ICAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLiAKLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLiAKLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQg
IkZpbGVTeXN0ZW0uaCIKIAotI2ltcG9ydCAiV2ViQ29yZU5TVVJMRXh0cmFzLmgiCi0jaW1wb3J0
ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b25FcnJvcnMuaD4KLSNpbXBvcnQgPEZvdW5kYXRpb24vTlNGaWxlTWFuYWdlci5oPgotI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2ltcG9y
dCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLUBpbnRlcmZhY2UgV2ViRmlsZU1hbmFnZXJEZWxl
Z2F0ZSA6IE5TT2JqZWN0IDxOU0ZpbGVNYW5hZ2VyRGVsZWdhdGU+Ci1AZW5kCi0KLUBpbXBsZW1l
bnRhdGlvbiBXZWJGaWxlTWFuYWdlckRlbGVnYXRlCi0KLS0gKEJPT0wpZmlsZU1hbmFnZXI6KE5T
RmlsZU1hbmFnZXIgKilmaWxlTWFuYWdlciBzaG91bGRQcm9jZWVkQWZ0ZXJFcnJvcjooTlNFcnJv
ciAqKWVycm9yIG1vdmluZ0l0ZW1BdFVSTDooTlNVUkwgKilzcmNVUkwgdG9VUkw6KE5TVVJMICop
ZHN0VVJMCi17Ci0gICAgVU5VU0VEX1BBUkFNKGZpbGVNYW5hZ2VyKTsKLSAgICBVTlVTRURfUEFS
QU0oc3JjVVJMKTsKLSAgICBVTlVTRURfUEFSQU0oZHN0VVJMKTsgICAgCi0gICAgcmV0dXJuIGVy
cm9yLmNvZGUgPT0gTlNGaWxlV3JpdGVGaWxlRXhpc3RzRXJyb3I7Ci19Ci0KLUBlbmQKKyNpZiBQ
TEFURk9STShNQUMpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU3RyaW5nIGhvbWVEaXJlY3Rv
cnlQYXRoKCkKLXsKLSAgICByZXR1cm4gTlNIb21lRGlyZWN0b3J5KCk7Ci19Ci0KLVN0cmluZyBv
cGVuVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxl
JiBwbGF0Zm9ybUZpbGVIYW5kbGUpCi17Ci0gICAgcGxhdGZvcm1GaWxlSGFuZGxlID0gaW52YWxp
ZFBsYXRmb3JtRmlsZUhhbmRsZTsKLSAgICAKLSAgICBWZWN0b3I8Y2hhcj4gdGVtcG9yYXJ5Rmls
ZVBhdGgoUEFUSF9NQVgpOwotICAgIGlmICghY29uZnN0cihfQ1NfREFSV0lOX1VTRVJfVEVNUF9E
SVIsIHRlbXBvcmFyeUZpbGVQYXRoLmRhdGEoKSwgdGVtcG9yYXJ5RmlsZVBhdGguc2l6ZSgpKSkK
LSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgLy8gU2hyaW5rIHRoZSB2ZWN0b3IuICAg
Ci0gICAgdGVtcG9yYXJ5RmlsZVBhdGguc2hyaW5rKHN0cmxlbih0ZW1wb3JhcnlGaWxlUGF0aC5k
YXRhKCkpKTsKLQotICAgIC8vIEZJWE1FOiBDaGFuZ2UgdG8gYSBydW50aW1lIGFzc2VydGlvbiB0
aGF0IHRoZSBwYXRoIGVuZHMgd2l0aCBhIHNsYXNoIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzIzNTc5
MDc3PiBpcwotICAgIC8vIGZpeGVkIGluIGFsbCBpT1MgU2ltdWxhdG9yIHZlcnNpb25zIHRoYXQg
d2UgdXNlLgotICAgIGlmICh0ZW1wb3JhcnlGaWxlUGF0aC5sYXN0KCkgIT0gJy8nKQotICAgICAg
ICB0ZW1wb3JhcnlGaWxlUGF0aC5hcHBlbmQoJy8nKTsKLQotICAgIC8vIEFwcGVuZCB0aGUgZmls
ZSBuYW1lLgotICAgIENTdHJpbmcgcHJlZml4VXRmOCA9IHByZWZpeC51dGY4KCk7Ci0gICAgdGVt
cG9yYXJ5RmlsZVBhdGguYXBwZW5kKHByZWZpeFV0ZjguZGF0YSgpLCBwcmVmaXhVdGY4Lmxlbmd0
aCgpKTsKLSAgICB0ZW1wb3JhcnlGaWxlUGF0aC5hcHBlbmQoIlhYWFhYWCIsIDYpOwotICAgIHRl
bXBvcmFyeUZpbGVQYXRoLmFwcGVuZCgnXDAnKTsKLQotICAgIHBsYXRmb3JtRmlsZUhhbmRsZSA9
IG1rc3RlbXAodGVtcG9yYXJ5RmlsZVBhdGguZGF0YSgpKTsKLSAgICBpZiAocGxhdGZvcm1GaWxl
SGFuZGxlID09IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCi0gICAgICAgIHJldHVybiBTdHJp
bmcoKTsKLQotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHRlbXBvcmFyeUZpbGVQYXRoLmRh
dGEoKSk7Ci19Ci0KLWJvb2wgbW92ZUZpbGUoY29uc3QgU3RyaW5nJiBvbGRQYXRoLCBjb25zdCBT
dHJpbmcmIG5ld1BhdGgpCi17Ci0gICAgLy8gT3ZlcndyaXRlIGV4aXN0aW5nIGZpbGVzLgotICAg
IGF1dG8gbWFuYWdlciA9IGFkb3B0TlMoW1tOU0ZpbGVNYW5hZ2VyIGFsbG9jXSBpbml0XSk7Ci0g
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJGaWxlTWFuYWdlckRlbGVnYXRlIGFsbG9j
XSBpbml0XSk7Ci0gICAgW21hbmFnZXIgc2V0RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwotICAg
IAotICAgIHJldHVybiBbbWFuYWdlciBtb3ZlSXRlbUF0VVJMOltOU1VSTCBmaWxlVVJMV2l0aFBh
dGg6b2xkUGF0aF0gdG9VUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpuZXdQYXRoXSBlcnJvcjpu
aWxdOwotfQotCi1ib29sIGdldFZvbHVtZUZyZWVTcGFjZShjb25zdCBTdHJpbmcmIHBhdGgsIHVp
bnQ2NF90JiBmcmVlU3BhY2UpCi17Ci0gICAgTlNEaWN0aW9uYXJ5ICpmaWxlU3lzdGVtQXR0cmli
dXRlc0RpY3Rpb25hcnkgPSBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGF0dHJpYnV0
ZXNPZkZpbGVTeXN0ZW1Gb3JQYXRoOihOU1N0cmluZyAqKXBhdGggZXJyb3I6TlVMTF07Ci0gICAg
aWYgKCFmaWxlU3lzdGVtQXR0cmlidXRlc0RpY3Rpb25hcnkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBmcmVlU3BhY2UgPSBbW2ZpbGVTeXN0ZW1BdHRyaWJ1dGVzRGljdGlvbmFyeSBvYmpl
Y3RGb3JLZXk6TlNGaWxlU3lzdGVtRnJlZVNpemVdIHVuc2lnbmVkTG9uZ0xvbmdWYWx1ZV07Ci0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KLSNpZiAhUExBVEZPUk0oSU9TKQogYm9vbCBkZWxldGVFbXB0
eURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgYXV0byBmaWxlTWFuYWdlciA9
IGFkb3B0TlMoW1tOU0ZpbGVNYW5hZ2VyIGFsbG9jXSBpbml0XSk7CkBAIC0xNDksNiArNzEsNiBA
QCBib29sIGV4Y2x1ZGVGcm9tQmFja3VwKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300764</attachid>
            <date>2017-02-06 15:48:36 -0800</date>
            <delta_ts>2017-02-06 17:41:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167908-20170206154615.patch</filename>
            <type>text/plain</type>
            <size>19969</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzcwNjcwMGQzZWZlZDA3
MTIwNmY5MTM0OTU1NTFkY2Q5NzdhYjU3YS4uOTk5ODMyNmI3ZGVkMTg3Yzc4ZTJjOGY4Mjg4Yzkw
OWViMjljNDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTAyLTA2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNwbGl0IEZpbGVT
eXN0ZW1NYWMubW0gaW50byBNYWMgYW5kIENvY29hIHBhcnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc5MDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBLZXB0IHRoZSBNYWMtb25seSBmdW5jdGlvbnMg
aW4gRmlsZVN5c3RlbU1hYy5tbSBhbmQgbW92ZWQgdGhlIHJlc3QgaW50byBGaWxlU3lzdGVtQ29j
b2EubW0uCisKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvRmls
ZVN5c3RlbUNvY29hLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
RmlsZVN5c3RlbU1hYy5tbS4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5t
bToKKyAgICAgICAgKC1bV2ViRmlsZU1hbmFnZXJEZWxlZ2F0ZSBmaWxlTWFuYWdlcjpzaG91bGRQ
cm9jZWVkQWZ0ZXJFcnJvcjptb3ZpbmdJdGVtQXRVUkw6dG9VUkw6XSk6IE1vdmVkIHRvIEZpbGVT
eXN0ZW1Db2NvYS5tbS4KKyAgICAgICAgKFdlYkNvcmU6OmhvbWVEaXJlY3RvcnlQYXRoKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpvcGVuVGVtcG9yYXJ5RmlsZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6bW92ZUZpbGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmdldFZvbHVt
ZUZyZWVTcGFjZSk6IERpdHRvLgorCiAyMDE3LTAyLTA2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
Ym91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEFuaW1hdGlvbkNvbnRyb2xs
ZXIgdG8gQ1NTQW5pbWF0aW9uQ29udHJvbGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRl
eCBkMDY0MGI5YzBiZjMyYzUyM2MzMDgzZDI0ZGY3ZmE5OTZiMzI5NjNmLi4yZTZiMWExYzY5ZTM3
YjQ0ZGVjYjkyZDM0NmUxODQxNTZhYzQ1MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpA
QCAtMzE3LDYgKzMxNyw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRm
b3JtL2NvY29hL0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tCiAgICAgcGxhdGZv
cm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuY3BwCiAgICAgcGxhdGZvcm0vY29jb2EvRGlzcGxh
eVNsZWVwRGlzYWJsZXJDb2NvYS5jcHAKKyAgICBwbGF0Zm9ybS9jb2NvYS9GaWxlU3lzdGVtQ29j
b2EubW0KICAgICBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCiAgICAgcGxhdGZvcm0v
Y29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCiAgICAgcGxhdGZvcm0vY29jb2EvTUlNRVR5
cGVSZWdpc3RyeUNvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTU2NWY0NjNkNGI0YTZhNjVhZGU5NWY5YjAyMDM5MGIx
NGFiMTE5OC4uZmU3M2M5MmM4NTBiOGFmOTBlNGIwZjllZjRmZTRlMjE2ZTY3NTk2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjA0OSw3ICsyMDQ5LDcgQEAKIAkJNTE0ODQ1M0UxQkI5RDA3RTAwNkE3MkVEIC8qIElEQkVycm9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDg0
NTNDMUJCOUQwNzYwMDZBNzJFRCAvKiBJREJFcnJvci5jcHAgKi87IH07CiAJCTUxNDg0NTNGMUJC
OUQwN0UwMDZBNzJFRCAvKiBJREJFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE0ODQ1M0QxQkI5RDA3NjAwNkE3MkVEIC8qIElEQkVycm9yLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0QjNG
NzMwQzcyMjA0NzAwMDUzMERGIC8qIEZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEIzRjcyMEM3MjIwNDcwMDA1MzBERiAvKiBGaWxl
U3lzdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJNTE0QjNGNzYwQzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRCM0Y3NTBDNzIyMDU1MDAw
NTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSAqLzsgfTsKKwkJNTE0QjNGNzYwQzcyMjA1NTAwMDUz
MERGIC8qIEZpbGVTeXN0ZW1Db2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtQ29j
b2EubW0gKi87IH07CiAJCTUxNEM3NjM3MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjM1
MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9yLmNwcCAqLzsgfTsKIAkJNTE0Qzc2MzgwQ0U5
MjI1RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2MzYwQ0U5MjI1RTAwN0VGM0NEIC8qIEpT
U1FMVHJhbnNhY3Rpb24uY3BwICovOyB9OwogCQk1MTRDNzY0QzBDRTkyMzRFMDA3RUYzQ0QgLyog
QXV0aGVudGljYXRpb25NYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNEM3NjQyMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zOTk2
LDYgKzM5OTYsNyBAQAogCQlBMUMxNTA3OTFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZl
cnRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
QzE1MDc3MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLm1tICovOyB9OwogCQlB
MUMxNTA3QTFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDMTUwNzgxRTNGMkIzRTAwMzJD
OThDIC8qIFByZXZpZXdDb252ZXJ0ZXIuaCAqLzsgfTsKIAkJQTFDN0ZBQTIxMzNBNUQzNTAwRDY3
MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhS
ZXN1bHRDdXN0b20uY3BwICovOyB9OworCQlBMUNDMTE2NDFFNDkzRDAxMDBFRkE2OUMgLyogRmls
ZVN5c3RlbU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExQ0MxMTYyMUU0OTNEMDEwMEVGQTY5QyAvKiBGaWxlU3lzdGVtTWFjLm1tICovOyB9Owog
CQlBMURFNzEyRDE4NjEyQUMxMDA3MzQxOTIgLyogVG91Y2hFdmVudHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFERTcxMkIxODYxMkFDMTAwNzM0
MTkyIC8qIFRvdWNoRXZlbnRzLmNwcCAqLzsgfTsKIAkJQTFERTcxMzIxODYxMzIyMjAwNzM0MTky
IC8qIFRvdWNoQ29uc3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExREU3MTMwMTg2MTMyMjIwMDczNDE5MiAvKiBUb3VjaENvbnN0cnVj
dG9ycy5jcHAgKi87IH07CiAJCUExRTExNTQ0MTMwMTVDM0QwMDU0QUM4QyAvKiBEaXN0YW50TGln
aHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTFFMTE1NDMxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAgKi87
IH07CkBAIC05MzQ5LDcgKzkzNTAsNyBAQAogCQk1MTQ4NDUzQzFCQjlEMDc2MDA2QTcyRUQgLyog
SURCRXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCRXJy
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4NDUzRDFCQjlEMDc2MDA2
QTcyRUQgLyogSURCRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURC
RXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0QjNGNzIwQzcyMjA0NzAw
MDUzMERGIC8qIEZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTRCM0Y3NTBDNzIy
MDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGaWxlU3lzdGVtQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjM1MENFOTIyNUUwMDdFRjNDRCAv
KiBKU1NRTEVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U1FMRXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzYzNjBDRTky
MjVFMDA3RUYzQ0QgLyogSlNTUUxUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1NRTFRyYW5zYWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE0Qzc2NDIwQ0U5MjM0RTAwN0VGM0NEIC8qIEF1dGhlbnRpY2F0aW9uTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTc2OSw2ICsxMTc3MCw3IEBACiAJCUEx
QzE1MDc3MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJldmlld0NvbnZlcnRlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDMTUwNzgxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZp
ZXdDb252ZXJ0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJldmlld0Nv
bnZlcnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUM3RkFBMTEzM0E1RDM1
MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTFDQzExNjIxRTQ5M0QwMTAwRUZBNjlDIC8qIEZpbGVTeXN0ZW1NYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGaWxlU3lzdGVtTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMURFNzEyQjE4NjEyQUMxMDA3MzQx
OTIgLyogVG91Y2hFdmVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVG91Y2hFdmVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMURFNzEz
MDE4NjEzMjIyMDA3MzQxOTIgLyogVG91Y2hDb25zdHJ1Y3RvcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVG91Y2hDb25zdHJ1Y3RvcnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMUUxMTU0MzEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExp
Z2h0U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3Rh
bnRMaWdodFNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODAwMCw3
ICsxODAwMiw3IEBACiAJCQkJQTdDRkIzRDQwQjdFRDExODAwNzBDMzJEIC8qIERyYWdJbWFnZU1h
Yy5tbSAqLywKIAkJCQlFMUJBNjZGMDE3NDJCRDg2MDBDMjAyNTEgLyogRHluYW1pY0xpbmtlcklu
dGVycG9zaW5nLmggKi8sCiAJCQkJMUNBMTlFMDMwREMyNTU5NTAwNjVBOTk0IC8qIEV2ZW50TG9v
cE1hYy5tbSAqLywKLQkJCQk1MTRCM0Y3NTBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1h
Yy5tbSAqLywKKwkJCQlBMUNDMTE2MjFFNDkzRDAxMDBFRkE2OUMgLyogRmlsZVN5c3RlbU1hYy5t
bSAqLywKIAkJCQk5MzVDNDc2RTA5QUM0RDczMDBBNkFBQjQgLyogS2V5RXZlbnRNYWMubW0gKi8s
CiAJCQkJNTIxRDQ2RjUxMUFFQzk4MTAwNTE0NjEzIC8qIEtpbGxSaW5nTWFjLm1tICovLAogCQkJ
CTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQu
aCAqLywKQEAgLTIwMDUwLDYgKzIwMDUyLDcgQEAKIAkJCQk3Qzc5NDFFMjFDNTZDMjkzMDBBNEM1
OEUgLyogRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbSAqLywKIAkJCQk1RDhDNERCRDE0Mjgy
MjJDMDAyNkNFNzIgLyogRGlzcGxheVNsZWVwRGlzYWJsZXJDb2NvYS5jcHAgKi8sCiAJCQkJNUQ4
QzREQkUxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyQ29jb2EuaCAqLywK
KwkJCQk1MTRCM0Y3NTBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbUNvY29hLm1tICovLAog
CQkJCUE1Qzk3NENGMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29hLmggKi8sCiAJCQkJ
QTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2EubW0gKi8sCiAJCQkJMUE0
ODMyQjIxQTk1M0JBNjAwOEI0REZFIC8qIExvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSAqLywKQEAg
LTI5NzMxLDcgKzI5NzM0LDcgQEAKIAkJCQlDNTdGRURFMTEyMTJFRTlDMDA5N0JFNjUgLyogRmls
ZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTYwMzA2QzBDQzQzNjIzMDBDOEFDMjUg
LyogRmlsZVN5c3RlbUNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2QzE3QTNGMTQ5MUQyRDQw
MEQxMkJBMiAvKiBGaWxlU3lzdGVtSU9TLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE0QjNGNzYw
QzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1
MTRCM0Y3NjBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbUNvY29hLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTE2MDMwMEIwQ0M0MjUxMjAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1QT1NJWC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzVFQjY5RTBFODFEQUVCMDBCMjU5NjUgLyogRmlsbExheWVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4QzkyNTE5MEZDQzdDNEEwMDQ4MERFQyAvKiBGaWx0
ZXJFZmZlY3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDI4MCw2ICszMDI4Myw3IEBACiAJCQkJ
QkNEOUMyNjIwQzE3QUE2NzAwNUM5MEEyIC8qIEpTRE9NV2luZG93Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQ2MENCRjM1MUQ0QkNEMEUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3Bl
cnRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCRkI1M0MwRENEMjlDRjAwMTlCM0U1IC8q
IEpTRE9NV2luZG93U2hlbGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTFDQzExNjQxRTQ5M0Qw
MTAwRUZBNjlDIC8qIEZpbGVTeXN0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTcwQTJF
QTFEOEMwQ0NBMDAzMTg0NTIgLyogSlNET01XcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzQTgwNjFEMUUwM0I1ODUwMDhBMUYyNiAvKiBKU0RvdWJsZVJhbmdlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZENzg2OEI5MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9GaWxlU3lzdGVtQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9GaWxlU3lzdGVtQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTFlMjI1OWZjMDM0ZjgwMWNjZjY5
NmU3ZjQ5NjQ1YzBkNTJiZDdhNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0ZpbGVTeXN0ZW1Db2NvYS5tbQpAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiRmlsZVN5c3RlbS5oIgorCitAaW50ZXJmYWNlIFdlYkZpbGVN
YW5hZ2VyRGVsZWdhdGUgOiBOU09iamVjdCA8TlNGaWxlTWFuYWdlckRlbGVnYXRlPgorQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV2ViRmlsZU1hbmFnZXJEZWxlZ2F0ZQorCistIChCT09MKWZpbGVN
YW5hZ2VyOihOU0ZpbGVNYW5hZ2VyICopZmlsZU1hbmFnZXIgc2hvdWxkUHJvY2VlZEFmdGVyRXJy
b3I6KE5TRXJyb3IgKillcnJvciBtb3ZpbmdJdGVtQXRVUkw6KE5TVVJMICopc3JjVVJMIHRvVVJM
OihOU1VSTCAqKWRzdFVSTAoreworICAgIFVOVVNFRF9QQVJBTShmaWxlTWFuYWdlcik7CisgICAg
VU5VU0VEX1BBUkFNKHNyY1VSTCk7CisgICAgVU5VU0VEX1BBUkFNKGRzdFVSTCk7ICAgIAorICAg
IHJldHVybiBlcnJvci5jb2RlID09IE5TRmlsZVdyaXRlRmlsZUV4aXN0c0Vycm9yOworfQorCitA
ZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGhvbWVEaXJlY3RvcnlQYXRoKCkK
K3sKKyAgICByZXR1cm4gTlNIb21lRGlyZWN0b3J5KCk7Cit9CisKK1N0cmluZyBvcGVuVGVtcG9y
YXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBwbGF0Zm9y
bUZpbGVIYW5kbGUpCit7CisgICAgcGxhdGZvcm1GaWxlSGFuZGxlID0gaW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZTsKKyAgICAKKyAgICBWZWN0b3I8Y2hhcj4gdGVtcG9yYXJ5RmlsZVBhdGgoUEFU
SF9NQVgpOworICAgIGlmICghY29uZnN0cihfQ1NfREFSV0lOX1VTRVJfVEVNUF9ESVIsIHRlbXBv
cmFyeUZpbGVQYXRoLmRhdGEoKSwgdGVtcG9yYXJ5RmlsZVBhdGguc2l6ZSgpKSkKKyAgICAgICAg
cmV0dXJuIFN0cmluZygpOworCisgICAgLy8gU2hyaW5rIHRoZSB2ZWN0b3IuICAgCisgICAgdGVt
cG9yYXJ5RmlsZVBhdGguc2hyaW5rKHN0cmxlbih0ZW1wb3JhcnlGaWxlUGF0aC5kYXRhKCkpKTsK
KworICAgIC8vIEZJWE1FOiBDaGFuZ2UgdG8gYSBydW50aW1lIGFzc2VydGlvbiB0aGF0IHRoZSBw
YXRoIGVuZHMgd2l0aCBhIHNsYXNoIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzIzNTc5MDc3PiBpcwor
ICAgIC8vIGZpeGVkIGluIGFsbCBpT1MgU2ltdWxhdG9yIHZlcnNpb25zIHRoYXQgd2UgdXNlLgor
ICAgIGlmICh0ZW1wb3JhcnlGaWxlUGF0aC5sYXN0KCkgIT0gJy8nKQorICAgICAgICB0ZW1wb3Jh
cnlGaWxlUGF0aC5hcHBlbmQoJy8nKTsKKworICAgIC8vIEFwcGVuZCB0aGUgZmlsZSBuYW1lLgor
ICAgIENTdHJpbmcgcHJlZml4VXRmOCA9IHByZWZpeC51dGY4KCk7CisgICAgdGVtcG9yYXJ5Rmls
ZVBhdGguYXBwZW5kKHByZWZpeFV0ZjguZGF0YSgpLCBwcmVmaXhVdGY4Lmxlbmd0aCgpKTsKKyAg
ICB0ZW1wb3JhcnlGaWxlUGF0aC5hcHBlbmQoIlhYWFhYWCIsIDYpOworICAgIHRlbXBvcmFyeUZp
bGVQYXRoLmFwcGVuZCgnXDAnKTsKKworICAgIHBsYXRmb3JtRmlsZUhhbmRsZSA9IG1rc3RlbXAo
dGVtcG9yYXJ5RmlsZVBhdGguZGF0YSgpKTsKKyAgICBpZiAocGxhdGZvcm1GaWxlSGFuZGxlID09
IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKwor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHRlbXBvcmFyeUZpbGVQYXRoLmRhdGEoKSk7Cit9
CisKK2Jvb2wgbW92ZUZpbGUoY29uc3QgU3RyaW5nJiBvbGRQYXRoLCBjb25zdCBTdHJpbmcmIG5l
d1BhdGgpCit7CisgICAgLy8gT3ZlcndyaXRlIGV4aXN0aW5nIGZpbGVzLgorICAgIGF1dG8gbWFu
YWdlciA9IGFkb3B0TlMoW1tOU0ZpbGVNYW5hZ2VyIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJGaWxlTWFuYWdlckRlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisgICAgW21hbmFnZXIgc2V0RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIAorICAgIHJl
dHVybiBbbWFuYWdlciBtb3ZlSXRlbUF0VVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6b2xkUGF0
aF0gdG9VUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpuZXdQYXRoXSBlcnJvcjpuaWxdOworfQor
Citib29sIGdldFZvbHVtZUZyZWVTcGFjZShjb25zdCBTdHJpbmcmIHBhdGgsIHVpbnQ2NF90JiBm
cmVlU3BhY2UpCit7CisgICAgTlNEaWN0aW9uYXJ5ICpmaWxlU3lzdGVtQXR0cmlidXRlc0RpY3Rp
b25hcnkgPSBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGF0dHJpYnV0ZXNPZkZpbGVT
eXN0ZW1Gb3JQYXRoOihOU1N0cmluZyAqKXBhdGggZXJyb3I6TlVMTF07CisgICAgaWYgKCFmaWxl
U3lzdGVtQXR0cmlidXRlc0RpY3Rpb25hcnkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBm
cmVlU3BhY2UgPSBbW2ZpbGVTeXN0ZW1BdHRyaWJ1dGVzRGljdGlvbmFyeSBvYmplY3RGb3JLZXk6
TlNGaWxlU3lzdGVtRnJlZVNpemVdIHVuc2lnbmVkTG9uZ0xvbmdWYWx1ZV07CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9GaWxlU3lzdGVtTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KaW5kZXggNjA1Mzg3YWRiZDZiYTljZmQ5YmMwNWU0
NGRmYzNmYzc5MzE1YzZkZi4uMWNjNzMyYjNjZjZlYjE5NTgwMDk0OTAyNDE3MTNlOTNiMGJjMjE1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KQEAg
LTEsMTEzICsxLDM5IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwogICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9y
dCAiRmlsZVN5c3RlbS5oIgogCisjaWYgUExBVEZPUk0oTUFDKQorCiAjaW1wb3J0ICJXZWJDb3Jl
TlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbkVycm9ycy5oPgotI2ltcG9ydCA8Rm91bmRhdGlvbi9O
U0ZpbGVNYW5hZ2VyLmg+Ci0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0IDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotQGludGVy
ZmFjZSBXZWJGaWxlTWFuYWdlckRlbGVnYXRlIDogTlNPYmplY3QgPE5TRmlsZU1hbmFnZXJEZWxl
Z2F0ZT4KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdlYkZpbGVNYW5hZ2VyRGVsZWdhdGUKLQot
LSAoQk9PTClmaWxlTWFuYWdlcjooTlNGaWxlTWFuYWdlciAqKWZpbGVNYW5hZ2VyIHNob3VsZFBy
b2NlZWRBZnRlckVycm9yOihOU0Vycm9yICopZXJyb3IgbW92aW5nSXRlbUF0VVJMOihOU1VSTCAq
KXNyY1VSTCB0b1VSTDooTlNVUkwgKilkc3RVUkwKLXsKLSAgICBVTlVTRURfUEFSQU0oZmlsZU1h
bmFnZXIpOwotICAgIFVOVVNFRF9QQVJBTShzcmNVUkwpOwotICAgIFVOVVNFRF9QQVJBTShkc3RV
UkwpOyAgICAKLSAgICByZXR1cm4gZXJyb3IuY29kZSA9PSBOU0ZpbGVXcml0ZUZpbGVFeGlzdHNF
cnJvcjsKLX0KLQotQGVuZAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVN0cmluZyBob21lRGly
ZWN0b3J5UGF0aCgpCi17Ci0gICAgcmV0dXJuIE5TSG9tZURpcmVjdG9yeSgpOwotfQotCi1TdHJp
bmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhh
bmRsZSYgcGxhdGZvcm1GaWxlSGFuZGxlKQotewotICAgIHBsYXRmb3JtRmlsZUhhbmRsZSA9IGlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7Ci0gICAgCi0gICAgVmVjdG9yPGNoYXI+IHRlbXBvcmFy
eUZpbGVQYXRoKFBBVEhfTUFYKTsKLSAgICBpZiAoIWNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RF
TVBfRElSLCB0ZW1wb3JhcnlGaWxlUGF0aC5kYXRhKCksIHRlbXBvcmFyeUZpbGVQYXRoLnNpemUo
KSkpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIC8vIFNocmluayB0aGUgdmVjdG9y
LiAgIAotICAgIHRlbXBvcmFyeUZpbGVQYXRoLnNocmluayhzdHJsZW4odGVtcG9yYXJ5RmlsZVBh
dGguZGF0YSgpKSk7Ci0KLSAgICAvLyBGSVhNRTogQ2hhbmdlIHRvIGEgcnVudGltZSBhc3NlcnRp
b24gdGhhdCB0aGUgcGF0aCBlbmRzIHdpdGggYSBzbGFzaCBvbmNlIDxyZGFyOi8vcHJvYmxlbS8y
MzU3OTA3Nz4gaXMKLSAgICAvLyBmaXhlZCBpbiBhbGwgaU9TIFNpbXVsYXRvciB2ZXJzaW9ucyB0
aGF0IHdlIHVzZS4KLSAgICBpZiAodGVtcG9yYXJ5RmlsZVBhdGgubGFzdCgpICE9ICcvJykKLSAg
ICAgICAgdGVtcG9yYXJ5RmlsZVBhdGguYXBwZW5kKCcvJyk7Ci0KLSAgICAvLyBBcHBlbmQgdGhl
IGZpbGUgbmFtZS4KLSAgICBDU3RyaW5nIHByZWZpeFV0ZjggPSBwcmVmaXgudXRmOCgpOwotICAg
IHRlbXBvcmFyeUZpbGVQYXRoLmFwcGVuZChwcmVmaXhVdGY4LmRhdGEoKSwgcHJlZml4VXRmOC5s
ZW5ndGgoKSk7Ci0gICAgdGVtcG9yYXJ5RmlsZVBhdGguYXBwZW5kKCJYWFhYWFgiLCA2KTsKLSAg
ICB0ZW1wb3JhcnlGaWxlUGF0aC5hcHBlbmQoJ1wwJyk7Ci0KLSAgICBwbGF0Zm9ybUZpbGVIYW5k
bGUgPSBta3N0ZW1wKHRlbXBvcmFyeUZpbGVQYXRoLmRhdGEoKSk7Ci0gICAgaWYgKHBsYXRmb3Jt
RmlsZUhhbmRsZSA9PSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQotICAgICAgICByZXR1cm4g
U3RyaW5nKCk7Ci0KLSAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCh0ZW1wb3JhcnlGaWxlUGF0
aC5kYXRhKCkpOwotfQotCi1ib29sIG1vdmVGaWxlKGNvbnN0IFN0cmluZyYgb2xkUGF0aCwgY29u
c3QgU3RyaW5nJiBuZXdQYXRoKQotewotICAgIC8vIE92ZXJ3cml0ZSBleGlzdGluZyBmaWxlcy4K
LSAgICBhdXRvIG1hbmFnZXIgPSBhZG9wdE5TKFtbTlNGaWxlTWFuYWdlciBhbGxvY10gaW5pdF0p
OwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViRmlsZU1hbmFnZXJEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwotICAgIFttYW5hZ2VyIHNldERlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsK
LSAgICAKLSAgICByZXR1cm4gW21hbmFnZXIgbW92ZUl0ZW1BdFVSTDpbTlNVUkwgZmlsZVVSTFdp
dGhQYXRoOm9sZFBhdGhdIHRvVVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6bmV3UGF0aF0gZXJy
b3I6bmlsXTsKLX0KLQotYm9vbCBnZXRWb2x1bWVGcmVlU3BhY2UoY29uc3QgU3RyaW5nJiBwYXRo
LCB1aW50NjRfdCYgZnJlZVNwYWNlKQotewotICAgIE5TRGljdGlvbmFyeSAqZmlsZVN5c3RlbUF0
dHJpYnV0ZXNEaWN0aW9uYXJ5ID0gW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBhdHRy
aWJ1dGVzT2ZGaWxlU3lzdGVtRm9yUGF0aDooTlNTdHJpbmcgKilwYXRoIGVycm9yOk5VTExdOwot
ICAgIGlmICghZmlsZVN5c3RlbUF0dHJpYnV0ZXNEaWN0aW9uYXJ5KQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgZnJlZVNwYWNlID0gW1tmaWxlU3lzdGVtQXR0cmlidXRlc0RpY3Rpb25hcnkg
b2JqZWN0Rm9yS2V5Ok5TRmlsZVN5c3RlbUZyZWVTaXplXSB1bnNpZ25lZExvbmdMb25nVmFsdWVd
OwotICAgIHJldHVybiB0cnVlOwotfQotCi0jaWYgIVBMQVRGT1JNKElPUykKIGJvb2wgZGVsZXRl
RW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIGF1dG8gZmlsZU1hbmFn
ZXIgPSBhZG9wdE5TKFtbTlNGaWxlTWFuYWdlciBhbGxvY10gaW5pdF0pOwpAQCAtMTQ5LDYgKzc1
LDYgQEAgYm9vbCBleGNsdWRlRnJvbUJhY2t1cChjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>