<?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>231683</bug_id>
          
          <creation_ts>2021-10-13 10:30:24 -0700</creation_ts>
          <short_desc>Support both VK and VKC-prefixed SPI when softlinking VisionKitCore classes</short_desc>
          <delta_ts>2021-10-13 13:35:54 -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>WebKit 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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803838</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-13 10:30:24 -0700</bug_when>
    <thetext>rdar://83744729</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803847</commentid>
    <comment_count>1</comment_count>
      <attachid>441102</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-13 10:49:13 -0700</bug_when>
    <thetext>Created attachment 441102
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803885</commentid>
    <comment_count>2</comment_count>
      <attachid>441114</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-13 11:30:44 -0700</bug_when>
    <thetext>Created attachment 441114
Fix macOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803941</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-13 13:35:52 -0700</bug_when>
    <thetext>Committed r284122 (242942@main): &lt;https://commits.webkit.org/242942@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441114.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441102</attachid>
            <date>2021-10-13 10:49:13 -0700</date>
            <delta_ts>2021-10-13 11:30:42 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-231683-20211013104912.patch</filename>
            <type>text/plain</type>
            <size>15840</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA2YmU0ZGI0
MGE2ZmMwMTg5ZGQ5ODY3ZDlhNWFhY2FiODUwOTRmMDdlLi40OGY1YWMzNThmOTlhYTg5MWI5ZTFj
OWI5ODVjNDEzMWM1ZjE0ZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAyMS0xMC0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBTdXBwb3J0IGJvdGggVksgYW5kIFZLQy1wcmVmaXhlZCBTUEkgd2hlbiBzb2Z0bGlua2lu
ZyBWaXNpb25LaXRDb3JlIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTY4MworICAgICAgICByZGFyOi8vODM3NDQ3MjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViS2l0L0NoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogcGFsL2NvY29hL1Zpc2lvbktpdENv
cmVTb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9jb2NvYS9WaXNpb25LaXRDb3JlU29mdExpbmsu
bW06CisKIDIwMjEtMTAtMTIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBzb21lIHN0YWdlZCBWaXNpb25LaXRDb3JlIFNQSSBpbnRvIFZpc2lv
bktpdENvcmVTUEkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2YTA3M2I5M2FiYzM2NzU3NTk2NTQ1NzQ2Yjc3NDY1
OGJiMGJiMGNhLi4wNjZlNGM1YjdhYjA0MTM3MWUxNWZjYWU1ZDQ1YjgyZjdlN2U1YTJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTEwLTEzICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgYm90aCBWSyBhbmQgVktDLXByZWZp
eGVkIFNQSSB3aGVuIHNvZnRsaW5raW5nIFZpc2lvbktpdENvcmUgY2xhc3NlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjgzCisgICAgICAgIHJk
YXI6Ly84Mzc0NDcyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNldmVyYWwgU1BJIGNsYXNzZXMgaW4gVmlzaW9uS2l0Q29yZSBhcmUgZ29pbmcgdG8g
YmUgcmVuYW1lZCB0byBiZSBwcmVmaXhlZCB3aXRoIFZLQy0gcmF0aGVyIHRoYW4gVkstLCB3aXRo
IGEKKyAgICAgICAgYEBjb21wYXRpYmlsaXR5X2FsaWFzYCBmb3IgdGhlIGV4aXN0aW5nIFNQSSBu
YW1lcy4gUmVmYWN0b3IgTGl2ZSBUZXh0IHN1cHBvcnQgaW4gV2ViS2l0IHRvIGJlIGJvdGggYmlu
YXJ5IGFuZAorICAgICAgICBzb3VyY2UgY29tcGF0aWJsZSB3aXRoIHRoaXMgZnV0dXJlIHZlcnNp
b24gb2YgVmlzaW9uS2l0Q29yZSwgYnkgY2hlY2tpbmcgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYm90
aCBjbGFzcyBuYW1lcworICAgICAgICB3aGVuIHNvZnRsaW5raW5nIFZLSW1hZ2VBbmFseXplciBh
bmQgVktJbWFnZUFuYWx5emVyUmVxdWVzdC4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW06CisgICAg
ICAgIChXZWJLaXQ6Omhhc1Zpc2lvbktpdENvcmVQcmVmaXhlZENsYXNzZXMpOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVJbWFnZUFuYWx5emVyKToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlSW1h
Z2VBbmFseXplclJlcXVlc3QpOgorCisgICAgICAgIEluc3RlYWQgb2YgY2FsbGluZyBpbnRvIFBB
TCBzb2Z0bGlua2luZyBmdW5jdGlvbnMgdG8gYWxsb2NhdGUgVktJbWFnZUFuYWx5emVyLCBwdXQg
dGhpcyBsb2dpYyBiZWhpbmQgYSBoZWxwZXIKKyAgICAgICAgZnVuY3Rpb24gaW4gVGV4dFJlY29n
bml0aW9uVXRpbGl0aWVzLCB3aGljaCBrbm93cyBob3cgdG8gY2hlY2sgZm9yIGVpdGhlciBjbGFz
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmVuc3VyZUltYWdlQW5hbHl6ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpjcmVhdGVJbWFnZUFuYWx5emVyUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0
ZUltYWdlQW5hbHlzaXNSZXF1ZXN0KTogRGVsZXRlZC4KKworICAgICAgICBVc2UgdGhlIGhlbHBl
ciBmdW5jdGlvbnMgZGVjbGFyZWQgaW4gVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmguCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGltYWdlQW5hbHl6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDppbWFnZTppbWFnZVVSTDpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDppbWFnZTpdKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyByZXF1ZXN0VGV4dFJlY29nbml0aW9uOmltYWdlRGF0YTpj
b21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbWFnZUFuYWx5
c2lzR2VzdHVyZURpZEJlZ2luOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGltYWdlQW5h
bHlzaXNHZXN0dXJlRGlkVGltZU91dDpdKToKKworICAgICAgICBVc2UgdGhlIGhlbHBlciBmdW5j
dGlvbnMgZGVjbGFyZWQgaW4gVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgsIGluc3RlYWQgb2Yg
dXNpbmcgUEFMIHNvZnRsaW5raW5nIGRpcmVjdGx5LiBXZQorICAgICAgICBhbHNvIHJlZmFjdG9y
IHRoaXMgY29kZSB0byBwYXNzIGEgQ0dJbWFnZVJlZiBpbnN0ZWFkIG9mIGEgVUlJbWFnZSB3aGVu
IGluaXRpYWxpemluZyB0aGUgaW1hZ2UgYW5hbHl6ZXIgcmVxdWVzdCwKKyAgICAgICAgc3VjaCB0
aGF0IHRoZSBoZWxwZXIgZnVuY3Rpb25zIGNhbiB3b3JrIGFjcm9zcyBtYWNPUyBhbmQgaU9TLgor
CiAyMDIxLTEwLTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBEb2N1bWVu
dC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Zpc2lvbktpdENv
cmVTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9WaXNpb25LaXRDb3Jl
U29mdExpbmsuaAppbmRleCBiOGZlMzQ0MzMyNzIxMTkyNzQ1ODc3NWU0OWJlMTdlYjlmZDUzMzc0
Li43ODkzNWJiNTFhOWEzZjdhMzM4Zjk1OGUyYzBlZTFkYjQ1MTcyNGI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Zpc2lvbktpdENvcmVTb2Z0TGluay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvVmlzaW9uS2l0Q29yZVNvZnRMaW5rLmgKQEAg
LTMzLDUgKzMzLDcgQEAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIFZpc2lv
bktpdENvcmUpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFZLSW1hZ2VBbmFseXpl
cikKIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgVktJbWFnZUFuYWx5emVyUmVxdWVz
dCkKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgVktDSW1hZ2VBbmFseXplcikKK1NP
RlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgVktDSW1hZ2VBbmFseXplclJlcXVlc3QpCiAK
ICNlbmRpZiAvLyBIQVZFKFZLX0lNQUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9WaXNpb25LaXRDb3JlU29mdExpbmsubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL1Zpc2lvbktpdENvcmVTb2Z0TGluay5tbQppbmRleCA3ODY5ZWVl
ZGRjNDdiYWU4ODdjNGVlMDRmNmI4NTRlMmI5YTMxMjM0Li5jOGFjNjZhNTA5NDQ0NGNlYjVhNzEw
ZjhjYmQ2N2VkYmY0MmQyYTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL1Zpc2lvbktpdENvcmVTb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NvY29hL1Zpc2lvbktpdENvcmVTb2Z0TGluay5tbQpAQCAtMzEsNyArMzEsOSBAQAogI2ltcG9y
dCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVmlzaW9uS2l0Q29yZSwgUEFMX0VYUE9SVCkKLVNPRlRf
TElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVmlzaW9uS2l0Q29yZSwgVktJ
bWFnZUFuYWx5emVyLCBQQUxfRVhQT1JUKQotU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBWaXNpb25LaXRDb3JlLCBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0LCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlRfQU5EX0lTX09Q
VElPTkFMKFBBTCwgVmlzaW9uS2l0Q29yZSwgVktJbWFnZUFuYWx5emVyLCBQQUxfRVhQT1JULCB0
cnVlKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlRfQU5EX0lTX09QVElP
TkFMKFBBTCwgVmlzaW9uS2l0Q29yZSwgVktJbWFnZUFuYWx5emVyUmVxdWVzdCwgUEFMX0VYUE9S
VCwgdHJ1ZSkKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUX0FORF9JU19P
UFRJT05BTChQQUwsIFZpc2lvbktpdENvcmUsIFZLQ0ltYWdlQW5hbHl6ZXIsIFBBTF9FWFBPUlQs
IHRydWUpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVF9BTkRfSVNfT1BU
SU9OQUwoUEFMLCBWaXNpb25LaXRDb3JlLCBWS0NJbWFnZUFuYWx5emVyUmVxdWVzdCwgUEFMX0VY
UE9SVCwgdHJ1ZSkKIAogI2VuZGlmIC8vIEhBVkUoVktfSU1BR0VfQU5BTFlTSVMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGll
cy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRp
ZXMuaAppbmRleCAxMmY0M2FhMzA1ZmZjMmE3ZjdlMGIyNTY0OGU1MTUwNzEzYTIyODM3Li4xMGQ5
NDliNzg1ODkwZjZjOGNlOTcxZmM0MDhjNDg5NzA2YmMxZjE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgKQEAg
LTI3LDcgKzI3LDggQEAKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAotQGNsYXNzIFZL
SW1hZ2VBbmFseXNpczsKKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvVmlzaW9uS2l0Q29yZVNQSS5o
PgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1
Y3QgVGV4dFJlY29nbml0aW9uUmVzdWx0OwpAQCAtMzgsNiArMzksMTAgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBib29sIGlzTGl2ZVRleHRBdmFpbGFibGVBbmRFbmFibGVkKCk7CiBXZWJDb3JlOjpU
ZXh0UmVjb2duaXRpb25SZXN1bHQgbWFrZVRleHRSZWNvZ25pdGlvblJlc3VsdChWS0ltYWdlQW5h
bHlzaXMgKik7CiAKKy8vIEZJWE1FOiBSZXBsYWNlIHRoZSByZXR1cm4gdHlwZXMgb2YgdGhlc2Ug
aGVscGVyIGZ1bmN0aW9ucyB3aXRoIFZLQ0ltYWdlQW5hbHl6ZXIgYW5kIFZLQ0ltYWdlQW5hbHl6
ZXJSZXF1ZXN0LCByZXNwZWN0aXZlbHkuCitSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVyPiBjcmVh
dGVJbWFnZUFuYWx5emVyKCk7CitSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVyUmVxdWVzdD4gY3Jl
YXRlSW1hZ2VBbmFseXplclJlcXVlc3QoQ0dJbWFnZVJlZiwgVktBbmFseXNpc1R5cGVzKTsKKwog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbQppbmRl
eCBhZmNiMzI1NmRjZWFhNDEzZDliZDA3NjY4NzZkZWU2YTU0MWJlMTM1Li5mNzY4YmI3NDRjZjZl
ODA0YzgzYjYxNDZmYmVmOGE3MTI5MDEzN2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5tbQpAQCAtMzUsNiAr
MzUsMzIgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
K3N0YXRpYyBib29sIGhhc1Zpc2lvbktpdENvcmVQcmVmaXhlZENsYXNzZXMoKQoreworICAgIHN0
YXRpYyBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNl
RmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgWyZdIHsKKyAgICAgICAgcmVzdWx0
ID0gISFQQUw6OmdldFZLQ0ltYWdlQW5hbHl6ZXJDbGFzcygpOworICAgIH0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK1JldGFpblB0cjxWS0ltYWdlQW5hbHl6ZXI+IGNyZWF0ZUltYWdlQW5h
bHl6ZXIoKQoreworICAgIGlmIChoYXNWaXNpb25LaXRDb3JlUHJlZml4ZWRDbGFzc2VzKCkpCisg
ICAgICAgIHJldHVybiBhZG9wdE5TKFtzdGF0aWNfY2FzdDxWS0ltYWdlQW5hbHl6ZXIgKj4oUEFM
OjphbGxvY1ZLQ0ltYWdlQW5hbHl6ZXJJbnN0YW5jZSgpKSBpbml0XSk7CisKKyAgICByZXR1cm4g
YWRvcHROUyhbUEFMOjphbGxvY1ZLSW1hZ2VBbmFseXplckluc3RhbmNlKCkgaW5pdF0pOworfQor
CitSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVyUmVxdWVzdD4gY3JlYXRlSW1hZ2VBbmFseXplclJl
cXVlc3QoQ0dJbWFnZVJlZiBpbWFnZSwgVktBbmFseXNpc1R5cGVzIHR5cGVzKQoreworICAgIGlm
IChoYXNWaXNpb25LaXRDb3JlUHJlZml4ZWRDbGFzc2VzKCkpCisgICAgICAgIHJldHVybiBhZG9w
dE5TKFtzdGF0aWNfY2FzdDxWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0ICo+KFBBTDo6YWxsb2NWS0NJ
bWFnZUFuYWx5emVyUmVxdWVzdEluc3RhbmNlKCkpIGluaXRXaXRoQ0dJbWFnZTppbWFnZSBvcmll
bnRhdGlvbjpWS0ltYWdlT3JpZW50YXRpb25VcCByZXF1ZXN0VHlwZTp0eXBlc10pOworCisgICAg
cmV0dXJuIGFkb3B0TlMoW1BBTDo6YWxsb2NWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0SW5zdGFuY2Uo
KSBpbml0V2l0aENHSW1hZ2U6aW1hZ2Ugb3JpZW50YXRpb246VktJbWFnZU9yaWVudGF0aW9uVXAg
cmVxdWVzdFR5cGU6dHlwZXNdKTsKK30KKwogc3RhdGljIEZsb2F0UXVhZCBmbG9hdFF1YWQoVktR
dWFkICpxdWFkKQogewogICAgIHJldHVybiB7IHF1YWQudG9wTGVmdCwgcXVhZC50b3BSaWdodCwg
cXVhZC5ib3R0b21SaWdodCwgcXVhZC5ib3R0b21MZWZ0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGNiODIzNjlhZTFhZTc5ZmFiYzExN2Iz
NDY2NjZiMzdiYjViZjkzNzguLmQ5NzU4Nzk5MWYzNDAzN2Y4ZTAzYzdlYzZiOTRmMzMxNmY0YThi
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBA
IC0xOTAsMTUgKzE5MCwxNSBAQCBWS0ltYWdlQW5hbHl6ZXIgKldlYlZpZXdJbXBsOjplbnN1cmVJ
bWFnZUFuYWx5emVyKCkKIHsKICAgICBpZiAoIW1faW1hZ2VBbmFseXplcikgewogICAgICAgICBt
X2ltYWdlQW5hbHl6ZXJRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJLaXQgaW1hZ2UgYW5h
bHl6ZXIgcXVldWUiKTsKLSAgICAgICAgbV9pbWFnZUFuYWx5emVyID0gYWRvcHROUyhbUEFMOjph
bGxvY1ZLSW1hZ2VBbmFseXplckluc3RhbmNlKCkgaW5pdF0pOworICAgICAgICBtX2ltYWdlQW5h
bHl6ZXIgPSBjcmVhdGVJbWFnZUFuYWx5emVyKCk7CiAgICAgICAgIFttX2ltYWdlQW5hbHl6ZXIg
c2V0Q2FsbGJhY2tRdWV1ZTptX2ltYWdlQW5hbHl6ZXJRdWV1ZS0+ZGlzcGF0Y2hRdWV1ZSgpXTsK
ICAgICB9CiAgICAgcmV0dXJuIG1faW1hZ2VBbmFseXplci5nZXQoKTsKIH0KIAotc3RhdGljIFJl
dGFpblB0cjxWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0PiBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVz
dChDR0ltYWdlUmVmIGltYWdlLCBjb25zdCBVUkwmIGltYWdlVVJMLCBjb25zdCBVUkwmIHBhZ2VV
UkwsIFZLQW5hbHlzaXNUeXBlcyB0eXBlcykKK3N0YXRpYyBSZXRhaW5QdHI8VktJbWFnZUFuYWx5
emVyUmVxdWVzdD4gY3JlYXRlSW1hZ2VBbmFseXplclJlcXVlc3QoQ0dJbWFnZVJlZiBpbWFnZSwg
Y29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgVVJMJiBwYWdlVVJMLCBWS0FuYWx5c2lzVHlwZXMg
dHlwZXMpCiB7Ci0gICAgYXV0byByZXF1ZXN0ID0gYWRvcHROUyhbUEFMOjphbGxvY1ZLSW1hZ2VB
bmFseXplclJlcXVlc3RJbnN0YW5jZSgpIGluaXRXaXRoQ0dJbWFnZTppbWFnZSBvcmllbnRhdGlv
bjpWS0ltYWdlT3JpZW50YXRpb25VcCByZXF1ZXN0VHlwZTp0eXBlc10pOworICAgIGF1dG8gcmVx
dWVzdCA9IGNyZWF0ZUltYWdlQW5hbHl6ZXJSZXF1ZXN0KGltYWdlLCB0eXBlcyk7CiAgICAgW3Jl
cXVlc3Qgc2V0SW1hZ2VVUkw6aW1hZ2VVUkxdOwogICAgIFtyZXF1ZXN0IHNldFBhZ2VVUkw6cGFn
ZVVSTF07CiAgICAgcmV0dXJuIHJlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggNjE2MmQ5YzRmOTA4
NWYyMDA5MmQwNzVmZTBjOGYyYzFlYzdlYzU2OC4uZmQxOGFkMDc0NTc5MzZlMGQ5MmNhYjllYmY5
Mzk5YjMyODA3YzcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMTA5LDcgKzEwOSw2IEBAIGNsYXNzIFdl
YlBhZ2VQcm94eTsKIH0KIAogQGNsYXNzIFFMUHJldmlld0NvbnRyb2xsZXI7Ci1AY2xhc3MgVktJ
bWFnZUFuYWx5emVyOwogQGNsYXNzIFdlYkV2ZW50OwogQGNsYXNzIFdlYlRleHRJbmRpY2F0b3JM
YXllcjsKIEBjbGFzcyBXS0FjdGlvblNoZWV0QXNzaXN0YW50OwpAQCAtNTA0LDcgKzUwMyw3IEBA
IHVzaW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8
SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVuCiAgICAgQk9PTCBfY29udGV4dE1lbnVXYXNUcmlnZ2Vy
ZWRCeUltYWdlQW5hbHlzaXNUaW1lb3V0OwogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQog
ICAgIEJPT0wgX2lzUHJvY2VlZGluZ1dpdGhUZXh0U2VsZWN0aW9uSW5JbWFnZTsKLSAgICBSZXRh
aW5QdHI8VktJbWFnZUFuYWx5emVyPiBfaW1hZ2VBbmFseXplcjsKKyAgICBSZXRhaW5QdHI8aWQ+
IF9pbWFnZUFuYWx5emVyOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIFJldGFpblB0cjxRTFBy
ZXZpZXdDb250cm9sbGVyPiBfdmlzdWFsU2VhcmNoUHJldmlld0NvbnRyb2xsZXI7CiAgICAgUmV0
YWluUHRyPFVJSW1hZ2U+IF92aXN1YWxTZWFyY2hQcmV2aWV3SW1hZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpp
bmRleCA0OGQ3YzZkMmE5MTFjZmY0NGRlYzc1MmU0OGFlNmM2ZTE4YmU4MTNiLi4zZTgyM2E2YWM2
YmEzNDE3MzE1OGU4YjkzZDdkZjA0ZDI3YTgwMThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTEwMDIw
LDcgKzEwMDIwLDcgQEAgLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCAqKWFzc2lzdGFudCBsb29rVXBJbWFnZTooVUkKIC0gKFZLSW1hZ2VBbmFseXpl
ciAqKWltYWdlQW5hbHl6ZXIKIHsKICAgICBpZiAoIV9pbWFnZUFuYWx5emVyKQotICAgICAgICBf
aW1hZ2VBbmFseXplciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NWS0ltYWdlQW5hbHl6ZXJJbnN0YW5j
ZSgpIGluaXRdKTsKKyAgICAgICAgX2ltYWdlQW5hbHl6ZXIgPSBXZWJLaXQ6OmNyZWF0ZUltYWdl
QW5hbHl6ZXIoKTsKICAgICByZXR1cm4gX2ltYWdlQW5hbHl6ZXIuZ2V0KCk7CiB9CiAKQEAgLTEw
MDg3LDE1ICsxMDA4NywxNSBAQCAtICh2b2lkKV9jYW5jZWxJbWFnZUFuYWx5c2lzCiAgICAgX2Vs
ZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyA9IHN0ZDo6bnVsbG9wdDsKIH0KIAotLSAoUmV0YWlu
UHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+KWNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OihW
S0FuYWx5c2lzVHlwZXMpYW5hbHlzaXNUeXBlcyBpbWFnZTooVUlJbWFnZSAqKWltYWdlIGltYWdl
VVJMOihOU1VSTCAqKWltYWdlVVJMCistIChSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVyUmVxdWVz
dD4pY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6KFZLQW5hbHlzaXNUeXBlcylhbmFseXNpc1R5
cGVzIGltYWdlOihDR0ltYWdlUmVmKWltYWdlIGltYWdlVVJMOihOU1VSTCAqKWltYWdlVVJMCiB7
Ci0gICAgYXV0byByZXF1ZXN0ID0gYWRvcHROUyhbUEFMOjphbGxvY1ZLSW1hZ2VBbmFseXplclJl
cXVlc3RJbnN0YW5jZSgpIGluaXRXaXRoSW1hZ2U6aW1hZ2Ugb3JpZW50YXRpb246VktJbWFnZU9y
aWVudGF0aW9uVXAgcmVxdWVzdFR5cGU6YW5hbHlzaXNUeXBlc10pOworICAgIGF1dG8gcmVxdWVz
dCA9IFdlYktpdDo6Y3JlYXRlSW1hZ2VBbmFseXplclJlcXVlc3QoaW1hZ2UsIGFuYWx5c2lzVHlw
ZXMpOwogICAgIFtyZXF1ZXN0IHNldEltYWdlVVJMOmltYWdlVVJMXTsKICAgICBbcmVxdWVzdCBz
ZXRQYWdlVVJMOltOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6X3BhZ2UtPmN1cnJlbnRVUkwo
KV1dOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCi0tIChSZXRhaW5QdHI8VktJbWFnZUFuYWx5
emVyUmVxdWVzdD4pY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6KFZLQW5hbHlzaXNUeXBlcylh
bmFseXNpc1R5cGVzIGltYWdlOihVSUltYWdlICopaW1hZ2UKKy0gKFJldGFpblB0cjxWS0ltYWdl
QW5hbHl6ZXJSZXF1ZXN0PiljcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDooVktBbmFseXNpc1R5
cGVzKWFuYWx5c2lzVHlwZXMgaW1hZ2U6KENHSW1hZ2VSZWYpaW1hZ2UKIHsKICAgICByZXR1cm4g
W3NlbGYgY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6YW5hbHlzaXNUeXBlcyBpbWFnZTppbWFn
ZSBpbWFnZVVSTDpfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZVVSTF07CiB9CkBAIC0xMDEzOSwx
MyArMTAxMzksNyBAQCAtICh2b2lkKXJlcXVlc3RUZXh0UmVjb2duaXRpb246KE5TVVJMICopaW1h
Z2VVUkwgaW1hZ2VEYXRhOihjb25zdCBXZWJLaXQ6OlNoYXJlYQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgYXV0byBpbWFnZSA9IGFkb3B0TlMoW1tVSUltYWdlIGFsbG9jXSBpbml0V2l0
aENHSW1hZ2U6Y2dJbWFnZS5nZXQoKV0pOwotICAgIGlmICghaW1hZ2UpIHsKLSAgICAgICAgY29t
cGxldGlvbih7IH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byByZXF1ZXN0
ID0gW3NlbGYgY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVUZXh0IGlt
YWdlOmltYWdlLmdldCgpXTsKKyAgICBhdXRvIHJlcXVlc3QgPSBbc2VsZiBjcmVhdGVJbWFnZUFu
YWx5c2lzUmVxdWVzdDpWS0FuYWx5c2lzVHlwZVRleHQgaW1hZ2U6Y2dJbWFnZS5nZXQoKV07CiAg
ICAgW1tzZWxmIGltYWdlQW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3QuZ2V0KCkgcHJv
Z3Jlc3NIYW5kbGVyOm5pbCBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NvbXBsZXRp
b24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pXSAoVktJbWFnZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJy
b3IgKikgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBsZXRpb24oV2ViS2l0OjptYWtlVGV4dFJlY29n
bml0aW9uUmVzdWx0KHJlc3VsdCkpOwogICAgIH0pLmdldCgpXTsKQEAgLTEwMjEwLDEyICsxMDIw
NCw2IEBAIC0gKHZvaWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRCZWdpbjooV0tJbWFnZUFuYWx5
c2lzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICBhdXRvIGltYWdlID0gYWRvcHROUyhbW1VJSW1hZ2UgYWxsb2NdIGlu
aXRXaXRoQ0dJbWFnZTpjZ0ltYWdlLmdldCgpXSk7Ci0gICAgICAgIGlmICghaW1hZ2UpIHsKLSAg
ICAgICAgICAgIFtzdHJvbmdTZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5k
aW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U6
Ok5vXTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCiAgICAgICAgIFJFTEVBU0Vf
TE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIHByZWZsaWdodCBnZXN0dXJlIGluaXRpYXRlZCAo
cmVxdWVzdCAlIiBQUkl1NjQgIikuIiwgcmVxdWVzdElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAK
ICAgICAgICAgc3Ryb25nU2VsZi0+X2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFseXNpcyA9IGluZm9y
bWF0aW9uLmltYWdlRWxlbWVudENvbnRleHQ7CkBAIC0xMDIyMyw4ICsxMDIxMSw4IEBAIC0gKHZv
aWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRCZWdpbjooV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJl
Y29nbml6ZXIgKilnZXN0dXJlCiAgICAgICAgIGF1dG8gcmVxdWVzdExvY2F0aW9uID0gaW5mb3Jt
YXRpb24ucmVxdWVzdC5wb2ludDsKICAgICAgICAgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxl
bWVudENvbnRleHQgPSAqaW5mb3JtYXRpb24uaW1hZ2VFbGVtZW50Q29udGV4dDsKIAotICAgICAg
ICBhdXRvIHJlcXVlc3RGb3JUZXh0U2VsZWN0aW9uID0gW3N0cm9uZ1NlbGYgY3JlYXRlSW1hZ2VB
bmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVUZXh0IGltYWdlOmltYWdlLmdldCgpXTsKLSAg
ICAgICAgYXV0byByZXF1ZXN0Rm9yQ29udGV4dE1lbnUgPSBbc3Ryb25nU2VsZiBjcmVhdGVJbWFn
ZUFuYWx5c2lzUmVxdWVzdDpWS0FuYWx5c2lzVHlwZVZpc3VhbFNlYXJjaCB8IFZLQW5hbHlzaXNU
eXBlTWFjaGluZVJlYWRhYmxlQ29kZSB8IFZLQW5hbHlzaXNUeXBlQXBwQ2xpcCBpbWFnZTppbWFn
ZS5nZXQoKV07CisgICAgICAgIGF1dG8gcmVxdWVzdEZvclRleHRTZWxlY3Rpb24gPSBbc3Ryb25n
U2VsZiBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDpWS0FuYWx5c2lzVHlwZVRleHQgaW1hZ2U6
Y2dJbWFnZS5nZXQoKV07CisgICAgICAgIGF1dG8gcmVxdWVzdEZvckNvbnRleHRNZW51ID0gW3N0
cm9uZ1NlbGYgY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVWaXN1YWxT
ZWFyY2ggfCBWS0FuYWx5c2lzVHlwZU1hY2hpbmVSZWFkYWJsZUNvZGUgfCBWS0FuYWx5c2lzVHlw
ZUFwcENsaXAgaW1hZ2U6Y2dJbWFnZS5nZXQoKV07CiAKICAgICAgICAgYXV0byB0ZXh0QW5hbHlz
aXNTdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICAgICAgW1tzdHJvbmdTZWxm
IGltYWdlQW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3RGb3JUZXh0U2VsZWN0aW9uLmdl
dCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6W3JlcXVlc3RJZGVudGlm
aWVyID0gV1RGTW92ZShyZXF1ZXN0SWRlbnRpZmllciksIHdlYWtTZWxmLCBlbGVtZW50Q29udGV4
dCwgcmVxdWVzdExvY2F0aW9uLCByZXF1ZXN0Rm9yQ29udGV4dE1lbnUsIGdlc3R1cmVEZWZlcnJh
bFRva2VuLCB0ZXh0QW5hbHlzaXNTdGFydFRpbWVdIChWS0ltYWdlQW5hbHlzaXMgKnJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIG11dGFibGUgewpAQCAtMTAzMjAsMTYgKzEwMzA4LDEyIEBAIC0gKHZv
aWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRUaW1lT3V0OihXS0ltYWdlQW5hbHlzaXNHZXN0dXJl
UmVjb2duaXplciAqKWdlc3R1CiAgICAgICAgIGlmICghY2dJbWFnZSkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBhdXRvIGltYWdlID0gYWRvcHROUyhbW1VJSW1hZ2UgYWxsb2NdIGlu
aXRXaXRoQ0dJbWFnZTpjZ0ltYWdlLmdldCgpXSk7Ci0gICAgICAgIGlmICghaW1hZ2UpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2VzLCAiSW1hZ2UgYW5h
bHlzaXMgdGltZW91dCBnZXN0dXJlIGluaXRpYXRlZC4iKTsKICAgICAgICAgLy8gRklYTUU6IFdl
IG5lZWQgdG8gaW1wbGVtZW50IHNvbWUgd2F5IHRvIGNhY2hlIGltYWdlIGFuYWx5c2lzIHJlc3Vs
dHMgcGVyIGVsZW1lbnQsIHNvIHRoYXQgd2UgZG9uJ3QgZW5kIHVwCiAgICAgICAgIC8vIG1ha2lu
ZyByZWR1bmRhbnQgaW1hZ2UgYW5hbHlzaXMgcmVxdWVzdHMgZm9yIHRoZSBzYW1lIGltYWdlIGRh
dGEuCiAKICAgICAgICAgYXV0byB2aXN1YWxTZWFyY2hBbmFseXNpc1N0YXJ0VGltZSA9IE1vbm90
b25pY1RpbWU6Om5vdygpOwotICAgICAgICBhdXRvIHJlcXVlc3RGb3JDb250ZXh0TWVudSA9IFtz
dHJvbmdTZWxmIGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OlZLQW5hbHlzaXNUeXBlVmlzdWFs
U2VhcmNoIHwgVktBbmFseXNpc1R5cGVNYWNoaW5lUmVhZGFibGVDb2RlIHwgVktBbmFseXNpc1R5
cGVBcHBDbGlwIGltYWdlOmltYWdlLmdldCgpXTsKKyAgICAgICAgYXV0byByZXF1ZXN0Rm9yQ29u
dGV4dE1lbnUgPSBbc3Ryb25nU2VsZiBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDpWS0FuYWx5
c2lzVHlwZVZpc3VhbFNlYXJjaCB8IFZLQW5hbHlzaXNUeXBlTWFjaGluZVJlYWRhYmxlQ29kZSB8
IFZLQW5hbHlzaXNUeXBlQXBwQ2xpcCBpbWFnZTpjZ0ltYWdlLmdldCgpXTsKICAgICAgICAgW1tz
dHJvbmdTZWxmIGltYWdlQW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3RGb3JDb250ZXh0
TWVudS5nZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFrU2Vs
ZiwgbG9jYXRpb24sIHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lXSAoVktJbWFnZUFuYWx5
c2lzICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgICAgICBhdXRvIHN0cm9uZ1Nl
bGYgPSB3ZWFrU2VsZi5nZXQoKTsKICAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441114</attachid>
            <date>2021-10-13 11:30:44 -0700</date>
            <delta_ts>2021-10-13 13:35:53 -0700</delta_ts>
            <desc>Fix macOS build</desc>
            <filename>bug-231683-20211013113043.patch</filename>
            <type>text/plain</type>
            <size>18132</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA2YmU0ZGI0
MGE2ZmMwMTg5ZGQ5ODY3ZDlhNWFhY2FiODUwOTRmMDdlLi40OGY1YWMzNThmOTlhYTg5MWI5ZTFj
OWI5ODVjNDEzMWM1ZjE0ZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAyMS0xMC0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBTdXBwb3J0IGJvdGggVksgYW5kIFZLQy1wcmVmaXhlZCBTUEkgd2hlbiBzb2Z0bGlua2lu
ZyBWaXNpb25LaXRDb3JlIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTY4MworICAgICAgICByZGFyOi8vODM3NDQ3MjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViS2l0L0NoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogcGFsL2NvY29hL1Zpc2lvbktpdENv
cmVTb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9jb2NvYS9WaXNpb25LaXRDb3JlU29mdExpbmsu
bW06CisKIDIwMjEtMTAtMTIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBzb21lIHN0YWdlZCBWaXNpb25LaXRDb3JlIFNQSSBpbnRvIFZpc2lv
bktpdENvcmVTUEkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2YTA3M2I5M2FiYzM2NzU3NTk2NTQ1NzQ2Yjc3NDY1
OGJiMGJiMGNhLi4yMTMxMjhmYTAyNmRmYmMzNjk1YTVhZGFkZmU2ZTdlYjQwODExYWE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTEwLTEzICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgYm90aCBWSyBhbmQgVktDLXByZWZp
eGVkIFNQSSB3aGVuIHNvZnRsaW5raW5nIFZpc2lvbktpdENvcmUgY2xhc3NlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjgzCisgICAgICAgIHJk
YXI6Ly84Mzc0NDcyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNldmVyYWwgU1BJIGNsYXNzZXMgaW4gVmlzaW9uS2l0Q29yZSBhcmUgZ29pbmcgdG8g
YmUgcmVuYW1lZCB0byBiZSBwcmVmaXhlZCB3aXRoIFZLQy0gcmF0aGVyIHRoYW4gVkstLCB3aXRo
IGEKKyAgICAgICAgYEBjb21wYXRpYmlsaXR5X2FsaWFzYCBmb3IgdGhlIGV4aXN0aW5nIFNQSSBu
YW1lcy4gUmVmYWN0b3IgTGl2ZSBUZXh0IHN1cHBvcnQgaW4gV2ViS2l0IHRvIGJlIGJvdGggYmlu
YXJ5IGFuZAorICAgICAgICBzb3VyY2UgY29tcGF0aWJsZSB3aXRoIHRoaXMgZnV0dXJlIHZlcnNp
b24gb2YgVmlzaW9uS2l0Q29yZSwgYnkgY2hlY2tpbmcgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYm90
aCBjbGFzcyBuYW1lcworICAgICAgICB3aGVuIHNvZnRsaW5raW5nIFZLSW1hZ2VBbmFseXplciBh
bmQgVktJbWFnZUFuYWx5emVyUmVxdWVzdC4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW06CisgICAg
ICAgIChXZWJLaXQ6Omhhc1Zpc2lvbktpdENvcmVQcmVmaXhlZENsYXNzZXMpOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVJbWFnZUFuYWx5emVyKToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlSW1h
Z2VBbmFseXplclJlcXVlc3QpOgorCisgICAgICAgIEluc3RlYWQgb2YgY2FsbGluZyBpbnRvIFBB
TCBzb2Z0bGlua2luZyBmdW5jdGlvbnMgdG8gYWxsb2NhdGUgVktJbWFnZUFuYWx5emVyLCBwdXQg
dGhpcyBsb2dpYyBiZWhpbmQgYSBoZWxwZXIKKyAgICAgICAgZnVuY3Rpb24gaW4gVGV4dFJlY29n
bml0aW9uVXRpbGl0aWVzLCB3aGljaCBrbm93cyBob3cgdG8gY2hlY2sgZm9yIGVpdGhlciBjbGFz
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmVuc3VyZUltYWdlQW5hbHl6ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpjcmVhdGVJbWFnZUFuYWx5emVyUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmNvbXB1dGVIYXNJbWFnZUFuYWx5c2lzUmVzdWx0cyk6CisgICAgICAgIChXZWJLaXQ6
OmNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0KTogRGVsZXRlZC4KKworICAgICAgICBVc2UgdGhl
IGhlbHBlciBmdW5jdGlvbnMgZGVjbGFyZWQgaW4gVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGltYWdlQW5hbHl6ZXJdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBjcmVhdGVJbWFnZUFuYWx5emVyUmVxdWVzdDppbWFnZTppbWFnZVVSTDpdKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBjcmVhdGVJbWFnZUFuYWx5emVyUmVxdWVzdDppbWFnZTpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyByZXF1ZXN0VGV4dFJlY29nbml0aW9uOmltYWdl
RGF0YTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbWFn
ZUFuYWx5c2lzR2VzdHVyZURpZEJlZ2luOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGlt
YWdlQW5hbHlzaXNHZXN0dXJlRGlkVGltZU91dDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDppbWFnZTppbWFnZVVSTDpdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDppbWFn
ZTpdKTogRGVsZXRlZC4KKworICAgICAgICBVc2UgdGhlIGhlbHBlciBmdW5jdGlvbnMgZGVjbGFy
ZWQgaW4gVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgsIGluc3RlYWQgb2YgdXNpbmcgUEFMIHNv
ZnRsaW5raW5nIGRpcmVjdGx5LiBXZQorICAgICAgICBhbHNvIHJlZmFjdG9yIHRoaXMgY29kZSB0
byBwYXNzIGEgQ0dJbWFnZVJlZiBpbnN0ZWFkIG9mIGEgVUlJbWFnZSB3aGVuIGluaXRpYWxpemlu
ZyB0aGUgaW1hZ2UgYW5hbHl6ZXIgcmVxdWVzdCwKKyAgICAgICAgc3VjaCB0aGF0IHRoZSBoZWxw
ZXIgZnVuY3Rpb25zIGNhbiB3b3JrIGFjcm9zcyBtYWNPUyBhbmQgaU9TLgorCisgICAgICAgIEFs
c28gcmVuYW1lIGBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdGAgdG8gYGNyZWF0ZUltYWdlQW5h
bHl6ZXJSZXF1ZXN0YCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgY2xhc3MgbmFtZS4KKwogMjAy
MS0xMC0xMiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQnVp
bGQtdGltZSBwZXJmXSBGb3J3YXJkLWRlY2xhcmUgbW9yZSB0aGluZ3MgaW4gRG9jdW1lbnQuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9WaXNpb25LaXRDb3JlU29m
dExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvVmlzaW9uS2l0Q29yZVNvZnRM
aW5rLmgKaW5kZXggYjhmZTM0NDMzMjcyMTE5Mjc0NTg3NzVlNDliZTE3ZWI5ZmQ1MzM3NC4uNzg5
MzViYjUxYTlhM2Y3YTMzOGY5NThlMmMwZWUxZGI0NTE3MjRiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9WaXNpb25LaXRDb3JlU29mdExpbmsuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Zpc2lvbktpdENvcmVTb2Z0TGluay5oCkBAIC0zMyw1
ICszMyw3IEBACiBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBWaXNpb25LaXRD
b3JlKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBWS0ltYWdlQW5hbHl6ZXIpCiBT
T0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFZLSW1hZ2VBbmFseXplclJlcXVlc3QpCitT
T0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFZLQ0ltYWdlQW5hbHl6ZXIpCitTT0ZUX0xJ
TktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFZLQ0ltYWdlQW5hbHl6ZXJSZXF1ZXN0KQogCiAjZW5k
aWYgLy8gSEFWRShWS19JTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY29jb2EvVmlzaW9uS2l0Q29yZVNvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jb2NvYS9WaXNpb25LaXRDb3JlU29mdExpbmsubW0KaW5kZXggNzg2OWVlZWRkYzQ3
YmFlODg3YzRlZTA0ZjZiODU0ZTJiOWEzMTIzNC4uYzhhYzY2YTUwOTQ0NDRjZWI1YTcxMGY4Y2Jk
NjdlZGJmNDJkMmE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9W
aXNpb25LaXRDb3JlU29mdExpbmsubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2Nv
YS9WaXNpb25LaXRDb3JlU29mdExpbmsubW0KQEAgLTMxLDcgKzMxLDkgQEAKICNpbXBvcnQgPHd0
Zi9Tb2Z0TGlua2luZy5oPgogCiBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIFZpc2lvbktpdENvcmUsIFBBTF9FWFBPUlQpCi1TT0ZUX0xJTktf
Q0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFZpc2lvbktpdENvcmUsIFZLSW1hZ2VB
bmFseXplciwgUEFMX0VYUE9SVCkKLVNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgVmlzaW9uS2l0Q29yZSwgVktJbWFnZUFuYWx5emVyUmVxdWVzdCwgUEFMX0VYUE9S
VCkKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUX0FORF9JU19PUFRJT05B
TChQQUwsIFZpc2lvbktpdENvcmUsIFZLSW1hZ2VBbmFseXplciwgUEFMX0VYUE9SVCwgdHJ1ZSkK
K1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUX0FORF9JU19PUFRJT05BTChQ
QUwsIFZpc2lvbktpdENvcmUsIFZLSW1hZ2VBbmFseXplclJlcXVlc3QsIFBBTF9FWFBPUlQsIHRy
dWUpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVF9BTkRfSVNfT1BUSU9O
QUwoUEFMLCBWaXNpb25LaXRDb3JlLCBWS0NJbWFnZUFuYWx5emVyLCBQQUxfRVhQT1JULCB0cnVl
KQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlRfQU5EX0lTX09QVElPTkFM
KFBBTCwgVmlzaW9uS2l0Q29yZSwgVktDSW1hZ2VBbmFseXplclJlcXVlc3QsIFBBTF9FWFBPUlQs
IHRydWUpCiAKICNlbmRpZiAvLyBIQVZFKFZLX0lNQUdFX0FOQUxZU0lTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaCBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLmgK
aW5kZXggMTJmNDNhYTMwNWZmYzJhN2Y3ZTBiMjU2NDhlNTE1MDcxM2EyMjgzNy4uMTBkOTQ5Yjc4
NTg5MGY2YzhjZTk3MWZjNDA4YzQ4OTcwNmJjMWYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL2NvY29hL1RleHRSZWNvZ25pdGlvblV0aWxpdGllcy5oCkBAIC0yNyw3
ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAKLUBjbGFzcyBWS0ltYWdl
QW5hbHlzaXM7CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1Zpc2lvbktpdENvcmVTUEkuaD4KKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IFRl
eHRSZWNvZ25pdGlvblJlc3VsdDsKQEAgLTM4LDYgKzM5LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogYm9vbCBpc0xpdmVUZXh0QXZhaWxhYmxlQW5kRW5hYmxlZCgpOwogV2ViQ29yZTo6VGV4dFJl
Y29nbml0aW9uUmVzdWx0IG1ha2VUZXh0UmVjb2duaXRpb25SZXN1bHQoVktJbWFnZUFuYWx5c2lz
ICopOwogCisvLyBGSVhNRTogUmVwbGFjZSB0aGUgcmV0dXJuIHR5cGVzIG9mIHRoZXNlIGhlbHBl
ciBmdW5jdGlvbnMgd2l0aCBWS0NJbWFnZUFuYWx5emVyIGFuZCBWS0NJbWFnZUFuYWx5emVyUmVx
dWVzdCwgcmVzcGVjdGl2ZWx5LgorUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplcj4gY3JlYXRlSW1h
Z2VBbmFseXplcigpOworUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+IGNyZWF0ZUlt
YWdlQW5hbHl6ZXJSZXF1ZXN0KENHSW1hZ2VSZWYsIFZLQW5hbHlzaXNUeXBlcyk7CisKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vY29jb2EvVGV4dFJlY29nbml0aW9uVXRpbGl0aWVzLm1tIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KaW5kZXggYWZj
YjMyNTZkY2VhYTQxM2Q5YmQwNzY2ODc2ZGVlNmE1NDFiZTEzNS4uZjc2OGJiNzQ0Y2Y2ZTgwNGM4
M2I2MTQ2ZmJlZjhhNzEyOTAxMzdlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9jb2NvYS9UZXh0UmVjb2duaXRpb25VdGlsaXRpZXMubW0KQEAgLTM1LDYgKzM1LDMy
IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCitzdGF0
aWMgYm9vbCBoYXNWaXNpb25LaXRDb3JlUHJlZml4ZWRDbGFzc2VzKCkKK3sKKyAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7
CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFsmXSB7CisgICAgICAgIHJlc3VsdCA9ICEh
UEFMOjpnZXRWS0NJbWFnZUFuYWx5emVyQ2xhc3MoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVyPiBjcmVhdGVJbWFnZUFuYWx5emVy
KCkKK3sKKyAgICBpZiAoaGFzVmlzaW9uS2l0Q29yZVByZWZpeGVkQ2xhc3NlcygpKQorICAgICAg
ICByZXR1cm4gYWRvcHROUyhbc3RhdGljX2Nhc3Q8VktJbWFnZUFuYWx5emVyICo+KFBBTDo6YWxs
b2NWS0NJbWFnZUFuYWx5emVySW5zdGFuY2UoKSkgaW5pdF0pOworCisgICAgcmV0dXJuIGFkb3B0
TlMoW1BBTDo6YWxsb2NWS0ltYWdlQW5hbHl6ZXJJbnN0YW5jZSgpIGluaXRdKTsKK30KKworUmV0
YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+IGNyZWF0ZUltYWdlQW5hbHl6ZXJSZXF1ZXN0
KENHSW1hZ2VSZWYgaW1hZ2UsIFZLQW5hbHlzaXNUeXBlcyB0eXBlcykKK3sKKyAgICBpZiAoaGFz
VmlzaW9uS2l0Q29yZVByZWZpeGVkQ2xhc3NlcygpKQorICAgICAgICByZXR1cm4gYWRvcHROUyhb
c3RhdGljX2Nhc3Q8VktJbWFnZUFuYWx5emVyUmVxdWVzdCAqPihQQUw6OmFsbG9jVktDSW1hZ2VB
bmFseXplclJlcXVlc3RJbnN0YW5jZSgpKSBpbml0V2l0aENHSW1hZ2U6aW1hZ2Ugb3JpZW50YXRp
b246VktJbWFnZU9yaWVudGF0aW9uVXAgcmVxdWVzdFR5cGU6dHlwZXNdKTsKKworICAgIHJldHVy
biBhZG9wdE5TKFtQQUw6OmFsbG9jVktJbWFnZUFuYWx5emVyUmVxdWVzdEluc3RhbmNlKCkgaW5p
dFdpdGhDR0ltYWdlOmltYWdlIG9yaWVudGF0aW9uOlZLSW1hZ2VPcmllbnRhdGlvblVwIHJlcXVl
c3RUeXBlOnR5cGVzXSk7Cit9CisKIHN0YXRpYyBGbG9hdFF1YWQgZmxvYXRRdWFkKFZLUXVhZCAq
cXVhZCkKIHsKICAgICByZXR1cm4geyBxdWFkLnRvcExlZnQsIHF1YWQudG9wUmlnaHQsIHF1YWQu
Ym90dG9tUmlnaHQsIHF1YWQuYm90dG9tTGVmdCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBjYjgyMzY5YWUxYWU3OWZhYmMxMTdiMzQ2NjY2
YjM3YmI1YmY5Mzc4Li4xOGNjZWMwZmVjNTRiNDYxMjlhYWFkMTUzNDJiYjc3ZWVhZjYwMDBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTkw
LDE1ICsxOTAsMTUgQEAgVktJbWFnZUFuYWx5emVyICpXZWJWaWV3SW1wbDo6ZW5zdXJlSW1hZ2VB
bmFseXplcigpCiB7CiAgICAgaWYgKCFtX2ltYWdlQW5hbHl6ZXIpIHsKICAgICAgICAgbV9pbWFn
ZUFuYWx5emVyUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiV2ViS2l0IGltYWdlIGFuYWx5emVy
IHF1ZXVlIik7Ci0gICAgICAgIG1faW1hZ2VBbmFseXplciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NW
S0ltYWdlQW5hbHl6ZXJJbnN0YW5jZSgpIGluaXRdKTsKKyAgICAgICAgbV9pbWFnZUFuYWx5emVy
ID0gY3JlYXRlSW1hZ2VBbmFseXplcigpOwogICAgICAgICBbbV9pbWFnZUFuYWx5emVyIHNldENh
bGxiYWNrUXVldWU6bV9pbWFnZUFuYWx5emVyUXVldWUtPmRpc3BhdGNoUXVldWUoKV07CiAgICAg
fQogICAgIHJldHVybiBtX2ltYWdlQW5hbHl6ZXIuZ2V0KCk7CiB9CiAKLXN0YXRpYyBSZXRhaW5Q
dHI8VktJbWFnZUFuYWx5emVyUmVxdWVzdD4gY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3QoQ0dJ
bWFnZVJlZiBpbWFnZSwgY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgVVJMJiBwYWdlVVJMLCBW
S0FuYWx5c2lzVHlwZXMgdHlwZXMpCitzdGF0aWMgUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJl
cXVlc3Q+IGNyZWF0ZUltYWdlQW5hbHl6ZXJSZXF1ZXN0KENHSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0
IFVSTCYgaW1hZ2VVUkwsIGNvbnN0IFVSTCYgcGFnZVVSTCwgVktBbmFseXNpc1R5cGVzIHR5cGVz
KQogewotICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NWS0ltYWdlQW5hbHl6
ZXJSZXF1ZXN0SW5zdGFuY2UoKSBpbml0V2l0aENHSW1hZ2U6aW1hZ2Ugb3JpZW50YXRpb246VktJ
bWFnZU9yaWVudGF0aW9uVXAgcmVxdWVzdFR5cGU6dHlwZXNdKTsKKyAgICBhdXRvIHJlcXVlc3Qg
PSBjcmVhdGVJbWFnZUFuYWx5emVyUmVxdWVzdChpbWFnZSwgdHlwZXMpOwogICAgIFtyZXF1ZXN0
IHNldEltYWdlVVJMOmltYWdlVVJMXTsKICAgICBbcmVxdWVzdCBzZXRQYWdlVVJMOnBhZ2VVUkxd
OwogICAgIHJldHVybiByZXF1ZXN0OwpAQCAtMjE4LDcgKzIxOCw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hh
cmVhYmxlQml0CiAgICAgfQogCiAgICAgYXV0byBjZ0ltYWdlID0gaW1hZ2VCaXRtYXAtPm1ha2VD
R0ltYWdlKCk7Ci0gICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Qo
Y2dJbWFnZS5nZXQoKSwgaW1hZ2VVUkwsIFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6bV9w
YWdlLT5jdXJyZW50VVJMKCldLCBWS0FuYWx5c2lzVHlwZVRleHQpOworICAgIGF1dG8gcmVxdWVz
dCA9IGNyZWF0ZUltYWdlQW5hbHl6ZXJSZXF1ZXN0KGNnSW1hZ2UuZ2V0KCksIGltYWdlVVJMLCBb
TlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOm1fcGFnZS0+Y3VycmVudFVSTCgpXSwgVktBbmFs
eXNpc1R5cGVUZXh0KTsKICAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygp
OwogICAgIFtlbnN1cmVJbWFnZUFuYWx5emVyKCkgcHJvY2Vzc1JlcXVlc3Q6cmVxdWVzdC5nZXQo
KSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY29t
cGxldGlvbiA9IFdURk1vdmUoY29tcGxldGlvbiksIHN0YXJ0VGltZV0gKFZLSW1hZ2VBbmFseXNp
cyAqYW5hbHlzaXMsIE5TRXJyb3IgKikgbXV0YWJsZSB7CiAgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgcmVzdWx0ID0gbWFrZVRleHRS
ZWNvZ25pdGlvblJlc3VsdChhbmFseXNpcyksIHN0YXJ0VGltZV0gKCkgbXV0YWJsZSB7CkBAIC0y
MzcsNyArMjM3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNS
ZXN1bHRzKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUIKIAogICAgIGF1dG8gY2dJbWFn
ZSA9IGltYWdlQml0bWFwLm1ha2VDR0ltYWdlKCk7CiAgICAgYXV0byBhbmFseXNpc1R5cGUgPSB0
eXBlID09IEltYWdlQW5hbHlzaXNUeXBlOjpWaXN1YWxTZWFyY2ggPyBWS0FuYWx5c2lzVHlwZVZp
c3VhbFNlYXJjaCA6IFZLQW5hbHlzaXNUeXBlVGV4dDsKLSAgICBhdXRvIHJlcXVlc3QgPSBjcmVh
dGVJbWFnZUFuYWx5c2lzUmVxdWVzdChjZ0ltYWdlLmdldCgpLCBpbWFnZVVSTCwgW05TVVJMIF93
ZWJfVVJMV2l0aFdURlN0cmluZzptX3BhZ2UtPmN1cnJlbnRVUkwoKV0sIGFuYWx5c2lzVHlwZSk7
CisgICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlSW1hZ2VBbmFseXplclJlcXVlc3QoY2dJbWFnZS5n
ZXQoKSwgaW1hZ2VVUkwsIFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6bV9wYWdlLT5jdXJy
ZW50VVJMKCldLCBhbmFseXNpc1R5cGUpOwogICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7CiAgICAgW2Vuc3VyZUltYWdlQW5hbHl6ZXIoKSBwcm9jZXNzUmVxdWVzdDpy
ZXF1ZXN0LmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9uKSwgc3RhcnRUaW1lLCBhbmFs
eXNpc1R5cGVdIChWS0ltYWdlQW5hbHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9yICopIG11dGFibGUg
ewogICAgICAgICBCT09MIHJlc3VsdCA9IFthbmFseXNpcyBoYXNSZXN1bHRzRm9yQW5hbHlzaXNU
eXBlczphbmFseXNpc1R5cGVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDYxNjJkOWM0ZjkwODVmMjAwOTJk
MDc1ZmUwYzhmMmMxZWM3ZWM1NjguLmZkMThhZDA3NDU3OTM2ZTBkOTJjYWI5ZWJmOTM5OWIzMjgw
N2M3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTEwOSw3ICsxMDksNiBAQCBjbGFzcyBXZWJQYWdlUHJv
eHk7CiB9CiAKIEBjbGFzcyBRTFByZXZpZXdDb250cm9sbGVyOwotQGNsYXNzIFZLSW1hZ2VBbmFs
eXplcjsKIEBjbGFzcyBXZWJFdmVudDsKIEBjbGFzcyBXZWJUZXh0SW5kaWNhdG9yTGF5ZXI7CiBA
Y2xhc3MgV0tBY3Rpb25TaGVldEFzc2lzdGFudDsKQEAgLTUwNCw3ICs1MDMsNyBAQCB1c2luZyBJ
bWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlQW5h
bHlzaXNSZXF1ZXN0SWRlbgogICAgIEJPT0wgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFn
ZUFuYWx5c2lzVGltZW91dDsKICNlbmRpZiAvLyBVU0UoVUlDT05URVhUTUVOVSkKICAgICBCT09M
IF9pc1Byb2NlZWRpbmdXaXRoVGV4dFNlbGVjdGlvbkluSW1hZ2U7Ci0gICAgUmV0YWluUHRyPFZL
SW1hZ2VBbmFseXplcj4gX2ltYWdlQW5hbHl6ZXI7CisgICAgUmV0YWluUHRyPGlkPiBfaW1hZ2VB
bmFseXplcjsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBSZXRhaW5QdHI8UUxQcmV2aWV3Q29u
dHJvbGxlcj4gX3Zpc3VhbFNlYXJjaFByZXZpZXdDb250cm9sbGVyOwogICAgIFJldGFpblB0cjxV
SUltYWdlPiBfdmlzdWFsU2VhcmNoUHJldmlld0ltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNDhk
N2M2ZDJhOTExY2ZmNDRkZWM3NTJlNDhhZTZjNmUxOGJlODEzYi4uMjUzNDUwMmU4NGJhNDgwZDI0
OGRkNmFlOGMyOWRjOWI0MzQxMDljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMDAyMCw3ICsxMDAy
MCw3IEBAIC0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQgKilhc3Npc3RhbnQgbG9va1VwSW1hZ2U6KFVJCiAtIChWS0ltYWdlQW5hbHl6ZXIgKilpbWFn
ZUFuYWx5emVyCiB7CiAgICAgaWYgKCFfaW1hZ2VBbmFseXplcikKLSAgICAgICAgX2ltYWdlQW5h
bHl6ZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9jVktJbWFnZUFuYWx5emVySW5zdGFuY2UoKSBpbml0
XSk7CisgICAgICAgIF9pbWFnZUFuYWx5emVyID0gV2ViS2l0OjpjcmVhdGVJbWFnZUFuYWx5emVy
KCk7CiAgICAgcmV0dXJuIF9pbWFnZUFuYWx5emVyLmdldCgpOwogfQogCkBAIC0xMDA4NywxNyAr
MTAwODcsMTcgQEAgLSAodm9pZClfY2FuY2VsSW1hZ2VBbmFseXNpcwogICAgIF9lbGVtZW50UGVu
ZGluZ0ltYWdlQW5hbHlzaXMgPSBzdGQ6Om51bGxvcHQ7CiB9CiAKLS0gKFJldGFpblB0cjxWS0lt
YWdlQW5hbHl6ZXJSZXF1ZXN0PiljcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDooVktBbmFseXNp
c1R5cGVzKWFuYWx5c2lzVHlwZXMgaW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBpbWFnZVVSTDooTlNV
UkwgKilpbWFnZVVSTAorLSAoUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+KWNyZWF0
ZUltYWdlQW5hbHl6ZXJSZXF1ZXN0OihWS0FuYWx5c2lzVHlwZXMpYW5hbHlzaXNUeXBlcyBpbWFn
ZTooQ0dJbWFnZVJlZilpbWFnZSBpbWFnZVVSTDooTlNVUkwgKilpbWFnZVVSTAogewotICAgIGF1
dG8gcmVxdWVzdCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0SW5z
dGFuY2UoKSBpbml0V2l0aEltYWdlOmltYWdlIG9yaWVudGF0aW9uOlZLSW1hZ2VPcmllbnRhdGlv
blVwIHJlcXVlc3RUeXBlOmFuYWx5c2lzVHlwZXNdKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBXZWJL
aXQ6OmNyZWF0ZUltYWdlQW5hbHl6ZXJSZXF1ZXN0KGltYWdlLCBhbmFseXNpc1R5cGVzKTsKICAg
ICBbcmVxdWVzdCBzZXRJbWFnZVVSTDppbWFnZVVSTF07CiAgICAgW3JlcXVlc3Qgc2V0UGFnZVVS
TDpbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOl9wYWdlLT5jdXJyZW50VVJMKCldXTsKICAg
ICByZXR1cm4gcmVxdWVzdDsKIH0KIAotLSAoUmV0YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVl
c3Q+KWNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OihWS0FuYWx5c2lzVHlwZXMpYW5hbHlzaXNU
eXBlcyBpbWFnZTooVUlJbWFnZSAqKWltYWdlCistIChSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVy
UmVxdWVzdD4pY3JlYXRlSW1hZ2VBbmFseXplclJlcXVlc3Q6KFZLQW5hbHlzaXNUeXBlcylhbmFs
eXNpc1R5cGVzIGltYWdlOihDR0ltYWdlUmVmKWltYWdlCiB7Ci0gICAgcmV0dXJuIFtzZWxmIGNy
ZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OmFuYWx5c2lzVHlwZXMgaW1hZ2U6aW1hZ2UgaW1hZ2VV
Ukw6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2VVUkxdOworICAgIHJldHVybiBbc2VsZiBjcmVh
dGVJbWFnZUFuYWx5emVyUmVxdWVzdDphbmFseXNpc1R5cGVzIGltYWdlOmltYWdlIGltYWdlVVJM
Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlVVJMXTsKIH0KIAogI2lmIFVTRShVSUNPTlRFWFRN
RU5VKSAmJiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRk9SX01BQ0hJTkVfUkVBREFCTEVfQ09ERVMp
CkBAIC0xMDEzOSwxMyArMTAxMzksNyBAQCAtICh2b2lkKXJlcXVlc3RUZXh0UmVjb2duaXRpb246
KE5TVVJMICopaW1hZ2VVUkwgaW1hZ2VEYXRhOihjb25zdCBXZWJLaXQ6OlNoYXJlYQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBpbWFnZSA9IGFkb3B0TlMoW1tVSUltYWdlIGFs
bG9jXSBpbml0V2l0aENHSW1hZ2U6Y2dJbWFnZS5nZXQoKV0pOwotICAgIGlmICghaW1hZ2UpIHsK
LSAgICAgICAgY29tcGxldGlvbih7IH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
YXV0byByZXF1ZXN0ID0gW3NlbGYgY3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNp
c1R5cGVUZXh0IGltYWdlOmltYWdlLmdldCgpXTsKKyAgICBhdXRvIHJlcXVlc3QgPSBbc2VsZiBj
cmVhdGVJbWFnZUFuYWx5emVyUmVxdWVzdDpWS0FuYWx5c2lzVHlwZVRleHQgaW1hZ2U6Y2dJbWFn
ZS5nZXQoKV07CiAgICAgW1tzZWxmIGltYWdlQW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVl
c3QuZ2V0KCkgcHJvZ3Jlc3NIYW5kbGVyOm5pbCBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQ
dHIoW2NvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pXSAoVktJbWFnZUFuYWx5c2lzICpy
ZXN1bHQsIE5TRXJyb3IgKikgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBsZXRpb24oV2ViS2l0Ojpt
YWtlVGV4dFJlY29nbml0aW9uUmVzdWx0KHJlc3VsdCkpOwogICAgIH0pLmdldCgpXTsKQEAgLTEw
MjEwLDEyICsxMDIwNCw2IEBAIC0gKHZvaWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRCZWdpbjoo
V0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIGltYWdlID0gYWRvcHROUyhbW1VJSW1h
Z2UgYWxsb2NdIGluaXRXaXRoQ0dJbWFnZTpjZ0ltYWdlLmdldCgpXSk7Ci0gICAgICAgIGlmICgh
aW1hZ2UpIHsKLSAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9pbnZva2VBbGxBY3Rpb25zVG9QZXJm
b3JtQWZ0ZXJQZW5kaW5nSW1hZ2VBbmFseXNpczpXZWJLaXQ6OlByb2NlZWRXaXRoVGV4dFNlbGVj
dGlvbkluSW1hZ2U6Ok5vXTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCiAgICAg
ICAgIFJFTEVBU0VfTE9HKEltYWdlcywgIkltYWdlIGFuYWx5c2lzIHByZWZsaWdodCBnZXN0dXJl
IGluaXRpYXRlZCAocmVxdWVzdCAlIiBQUkl1NjQgIikuIiwgcmVxdWVzdElkZW50aWZpZXIudG9V
SW50NjQoKSk7CiAKICAgICAgICAgc3Ryb25nU2VsZi0+X2VsZW1lbnRQZW5kaW5nSW1hZ2VBbmFs
eXNpcyA9IGluZm9ybWF0aW9uLmltYWdlRWxlbWVudENvbnRleHQ7CkBAIC0xMDIyMyw4ICsxMDIx
MSw4IEBAIC0gKHZvaWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRCZWdpbjooV0tJbWFnZUFuYWx5
c2lzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlCiAgICAgICAgIGF1dG8gcmVxdWVzdExvY2F0
aW9uID0gaW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludDsKICAgICAgICAgV2ViQ29yZTo6RWxlbWVu
dENvbnRleHQgZWxlbWVudENvbnRleHQgPSAqaW5mb3JtYXRpb24uaW1hZ2VFbGVtZW50Q29udGV4
dDsKIAotICAgICAgICBhdXRvIHJlcXVlc3RGb3JUZXh0U2VsZWN0aW9uID0gW3N0cm9uZ1NlbGYg
Y3JlYXRlSW1hZ2VBbmFseXNpc1JlcXVlc3Q6VktBbmFseXNpc1R5cGVUZXh0IGltYWdlOmltYWdl
LmdldCgpXTsKLSAgICAgICAgYXV0byByZXF1ZXN0Rm9yQ29udGV4dE1lbnUgPSBbc3Ryb25nU2Vs
ZiBjcmVhdGVJbWFnZUFuYWx5c2lzUmVxdWVzdDpWS0FuYWx5c2lzVHlwZVZpc3VhbFNlYXJjaCB8
IFZLQW5hbHlzaXNUeXBlTWFjaGluZVJlYWRhYmxlQ29kZSB8IFZLQW5hbHlzaXNUeXBlQXBwQ2xp
cCBpbWFnZTppbWFnZS5nZXQoKV07CisgICAgICAgIGF1dG8gcmVxdWVzdEZvclRleHRTZWxlY3Rp
b24gPSBbc3Ryb25nU2VsZiBjcmVhdGVJbWFnZUFuYWx5emVyUmVxdWVzdDpWS0FuYWx5c2lzVHlw
ZVRleHQgaW1hZ2U6Y2dJbWFnZS5nZXQoKV07CisgICAgICAgIGF1dG8gcmVxdWVzdEZvckNvbnRl
eHRNZW51ID0gW3N0cm9uZ1NlbGYgY3JlYXRlSW1hZ2VBbmFseXplclJlcXVlc3Q6VktBbmFseXNp
c1R5cGVWaXN1YWxTZWFyY2ggfCBWS0FuYWx5c2lzVHlwZU1hY2hpbmVSZWFkYWJsZUNvZGUgfCBW
S0FuYWx5c2lzVHlwZUFwcENsaXAgaW1hZ2U6Y2dJbWFnZS5nZXQoKV07CiAKICAgICAgICAgYXV0
byB0ZXh0QW5hbHlzaXNTdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICAgICAg
W1tzdHJvbmdTZWxmIGltYWdlQW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVlc3RGb3JUZXh0
U2VsZWN0aW9uLmdldCgpIHByb2dyZXNzSGFuZGxlcjpuaWwgY29tcGxldGlvbkhhbmRsZXI6W3Jl
cXVlc3RJZGVudGlmaWVyID0gV1RGTW92ZShyZXF1ZXN0SWRlbnRpZmllciksIHdlYWtTZWxmLCBl
bGVtZW50Q29udGV4dCwgcmVxdWVzdExvY2F0aW9uLCByZXF1ZXN0Rm9yQ29udGV4dE1lbnUsIGdl
c3R1cmVEZWZlcnJhbFRva2VuLCB0ZXh0QW5hbHlzaXNTdGFydFRpbWVdIChWS0ltYWdlQW5hbHlz
aXMgKnJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgewpAQCAtMTAzMjAsMTYgKzEwMzA4
LDEyIEBAIC0gKHZvaWQpaW1hZ2VBbmFseXNpc0dlc3R1cmVEaWRUaW1lT3V0OihXS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1CiAgICAgICAgIGlmICghY2dJbWFnZSkKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBhdXRvIGltYWdlID0gYWRvcHROUyhbW1VJSW1h
Z2UgYWxsb2NdIGluaXRXaXRoQ0dJbWFnZTpjZ0ltYWdlLmdldCgpXSk7Ci0gICAgICAgIGlmICgh
aW1hZ2UpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgUkVMRUFTRV9MT0coSW1hZ2Vz
LCAiSW1hZ2UgYW5hbHlzaXMgdGltZW91dCBnZXN0dXJlIGluaXRpYXRlZC4iKTsKICAgICAgICAg
Ly8gRklYTUU6IFdlIG5lZWQgdG8gaW1wbGVtZW50IHNvbWUgd2F5IHRvIGNhY2hlIGltYWdlIGFu
YWx5c2lzIHJlc3VsdHMgcGVyIGVsZW1lbnQsIHNvIHRoYXQgd2UgZG9uJ3QgZW5kIHVwCiAgICAg
ICAgIC8vIG1ha2luZyByZWR1bmRhbnQgaW1hZ2UgYW5hbHlzaXMgcmVxdWVzdHMgZm9yIHRoZSBz
YW1lIGltYWdlIGRhdGEuCiAKICAgICAgICAgYXV0byB2aXN1YWxTZWFyY2hBbmFseXNpc1N0YXJ0
VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotICAgICAgICBhdXRvIHJlcXVlc3RGb3JDb250
ZXh0TWVudSA9IFtzdHJvbmdTZWxmIGNyZWF0ZUltYWdlQW5hbHlzaXNSZXF1ZXN0OlZLQW5hbHlz
aXNUeXBlVmlzdWFsU2VhcmNoIHwgVktBbmFseXNpc1R5cGVNYWNoaW5lUmVhZGFibGVDb2RlIHwg
VktBbmFseXNpc1R5cGVBcHBDbGlwIGltYWdlOmltYWdlLmdldCgpXTsKKyAgICAgICAgYXV0byBy
ZXF1ZXN0Rm9yQ29udGV4dE1lbnUgPSBbc3Ryb25nU2VsZiBjcmVhdGVJbWFnZUFuYWx5emVyUmVx
dWVzdDpWS0FuYWx5c2lzVHlwZVZpc3VhbFNlYXJjaCB8IFZLQW5hbHlzaXNUeXBlTWFjaGluZVJl
YWRhYmxlQ29kZSB8IFZLQW5hbHlzaXNUeXBlQXBwQ2xpcCBpbWFnZTpjZ0ltYWdlLmdldCgpXTsK
ICAgICAgICAgW1tzdHJvbmdTZWxmIGltYWdlQW5hbHl6ZXJdIHByb2Nlc3NSZXF1ZXN0OnJlcXVl
c3RGb3JDb250ZXh0TWVudS5nZXQoKSBwcm9ncmVzc0hhbmRsZXI6bmlsIGNvbXBsZXRpb25IYW5k
bGVyOlt3ZWFrU2VsZiwgbG9jYXRpb24sIHZpc3VhbFNlYXJjaEFuYWx5c2lzU3RhcnRUaW1lXSAo
VktJbWFnZUFuYWx5c2lzICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgICAgICBh
dXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKICAgICAgICAgICAgIGlmICghc3Ryb25n
U2VsZikK
</data>

          </attachment>
      

    </bug>

</bugzilla>