<?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>226292</bug_id>
          
          <creation_ts>2021-05-26 14:19:43 -0700</creation_ts>
          <short_desc>Add a PAL softlinking header for the Reveal framework</short_desc>
          <delta_ts>2021-05-26 16:18:33 -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>Platform</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>
          
          <blocked>226274</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>annulen</cc>
    
    <cc>bdakin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764049</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-26 14:19:43 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764061</commentid>
    <comment_count>1</comment_count>
      <attachid>429796</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-26 14:36:28 -0700</bug_when>
    <thetext>Created attachment 429796
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764065</commentid>
    <comment_count>2</comment_count>
      <attachid>429798</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-26 14:48:44 -0700</bug_when>
    <thetext>Created attachment 429798
Keep Xcode project file sorted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764108</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-26 16:17:57 -0700</bug_when>
    <thetext>Committed r278131 (238181@main): &lt;https://commits.webkit.org/238181@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429798.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764109</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-26 16:18:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/78538813&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429796</attachid>
            <date>2021-05-26 14:36:28 -0700</date>
            <delta_ts>2021-05-26 14:48:42 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-226292-20210526143627.patch</filename>
            <type>text/plain</type>
            <size>26361</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY1MmI0ZDJhY2YzYzVk
Y2U4Yzk0MzM3YzQ5MDdiMGE1YWEzNzYwNC4uN2Y3MGE2YWFiMjM4ZmJlNzVkMzg3YWUwZDU0MWJl
Y2JiZDI5MTk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA1LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFBBTCBz
b2Z0bGlua2luZyBoZWFkZXIgZm9yIHRoZSBSZXZlYWwgZnJhbWV3b3JrCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyOTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIHNvZnQtbGlua2luZyBiaXRz
IG91dCBvZiBgRGljdGlvbmFyeUxvb2t1cC5tbWAgYW5kIGludG8gYSBzZXBhcmF0ZSBQQUwgaGVh
ZGVyLCBzbyB0aGF0IHdlIGNhbiBlYXNpbHkgc29mdC0KKyAgICAgICAgbGluayBib3RoIFJldmVh
bCBhbmQgUmV2ZWFsQ29yZSBpbiBXZWJLaXQsIGluIGZ1dHVyZSBwYXRjaGVzLiBTZWUgYmVsb3cg
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBlZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW06CisKKyAgICAgICAgQWxz
byBkbyBzb21lIG1pbm9yIGNsZWFudXAgYXJvdW5kIHRoaXMgY29kZToKKworICAgICAgICAtICAg
VXNlIGBhdXRvYCBpbiBtb3JlIHBsYWNlcy4KKyAgICAgICAgLSAgIE1ha2UgYFdlYlJldmVhbEhp
Z2hsaWdodGAgY29uZm9ybSB0byBgUlZQcmVzZW50ZXJIaWdobGlnaHREZWxlZ2F0ZWAgYW5kIGBV
SVJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGVgLCBhcworICAgICAgICAgICAgd2FzIChwcm9i
YWJseSkgaW50ZW5kZWQuIEN1cnJlbnRseSwgdGhlIG5hbWVzIG9mIHRoZXNlIGRlbGVnYXRlIG1l
dGhvZHMgYXJlIHRyZWF0ZWQgYXMgdW51c2VkIHR5cGUgdGVtcGxhdGUKKyAgICAgICAgICAgIGFy
Z3VtZW50cyBvbiB0aGUgY2xhc3MuIFRoaXMgbWVhbnMgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gYHN0
YXRpY19jYXN0YCB0byB0aGUgcHJvdG9jb2wgd2hlbiBwYXNzaW5nIHRoZXNlCisgICAgICAgICAg
ICBvYmplY3RzIGFyb3VuZC4KKyAgICAgICAgLSAgIE1vdmUgc2V2ZXJhbCBpdmFycyBvbiBgV2Vi
UmV2ZWFsSGlnaGxpZ2h0YCBvdXQgb2YgdGhlIEBpbnRlcmZhY2UsIGFuZCBpbnRvIHRoZSBAaW1w
bGVtZW50YXRpb24uCisKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IHJldmVhbENvbnRl
eHQ6ZHJhd1JlY3RzRm9ySXRlbTpdKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNyZWF0ZVJldmVh
bEl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnJhbmdlRm9yU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnJhbmdlQXRIaXRU
ZXN0UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OnNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9u
Q29udHJvbGxlcik6CisgICAgICAgIChTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwpOiBEZWxldGVk
LgorCiAyMDIxLTA1LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZmFjdG9yIHNvbWUgZGF0YSBkZXRlY3RvciBjb2RlIGluIFdlYkNvcmU6OkZy
YW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBmMDBkNTVjZWJhZWFkYWUwN2QyYjI4NGIwOTJhMDNl
ZmEzNjQ3ZjdiLi45OTkwMmNiOGIxOGM0OGE2Mzg4NmFjY2MxODk0ODdkZDBhYTU4YzA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNS0yNiAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBQQUwgc29mdGxpbmtp
bmcgaGVhZGVyIGZvciB0aGUgUmV2ZWFsIGZyYW1ld29yaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBuZXcgaGVhZGVyIGFuZCBzb3VyY2Ug
ZmlsZS4KKworICAgICAgICAqIFBBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHBhbC9QbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBwYWwvY29jb2EvUmV2ZWFsU29m
dExpbmsuaDogQWRkZWQuCisgICAgICAgICogcGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLm1tOiBB
ZGRlZC4KKwogMjAyMS0wNS0yNCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQ29udmVydCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgZnJvbSBhbiBlbnVtIHRvIGNsYXNz
IHdyYXBwaW5nIGEgcGxhdGZvcm0gY29sb3Igc3BhY2UgKENHQ29sb3JTcGFjZVJlZiBmb3IgQ0cg
cG9ydHMsIGV0Yy4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNzA5MjRlZGEyMmRjNDliNjNmMGQ0ZTAyN2ZhODRiZjY5YmUwZjg5
Yi4uYzJlZWZiODUzMTdkNjRkODVlMTdjZThjMGJlNzk1ZTI3ODcyNDNmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA3LDYg
KzIwNyw4IEBACiAJCUY0NDI5MTYwMUZBNTI2MUUwMDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0Mjkx
NUYxRkE1MjYxRTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyLmggKi87IH07CiAJCUY0NDI5
MTY0MUZBNTI2NzAwMDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQyOTE2MjFGQTUyNjcwMDAyQ0M5
M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwICovOyB9OwogCQlGNDQyOTE2ODFGQTUyNzA1MDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDI5MTY2MUZBNTI3MDUwMDJDQzkzRSAvKiBGaWxl
U2l6ZUZvcm1hdHRlckNvY29hLm1tICovOyB9OworCQlGNDk3NEVBMzI2NUVFQTIyMDBCNDlCOEMg
LyogUmV2ZWFsU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0OTc0RUExMjY1RUVBMjIwMEI0OUI4QyAvKiBSZXZlYWxTb2Z0TGluay5oICov
OyB9OworCQlGNDk3NEVBNDI2NUVFQTIyMDBCNDlCOEMgLyogUmV2ZWFsU29mdExpbmsubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDk3NEVBMjI2NUVF
QTIyMDBCNDlCOEMgLyogUmV2ZWFsU29mdExpbmsubW0gKi87IH07CiAJCUY0Qzg1QTRFMjY1ODU1
MUEwMDVCODlDQyAvKiBRdWlja0xvb2tVSVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDODVBNEMyNjU4NTUxOTAwNUI4OUNDIC8qIFF1
aWNrTG9va1VJU29mdExpbmsubW0gKi87IH07CiAJCUY0Qzg1QTRGMjY1ODU1MUEwMDVCODlDQyAv
KiBRdWlja0xvb2tVSVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNEM4NUE0RDI2NTg1NTFBMDA1Qjg5Q0MgLyogUXVpY2tMb29rVUlTb2Z0
TGluay5oICovOyB9OwogCQlGNERERDAxQjI2NERDNjlFMDBFRjFCOTEgLyogRGF0YURldGVjdG9y
c0NvcmVTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0REREMDE5MjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRM
aW5rLm1tICovOyB9OwpAQCAtNDI0LDYgKzQyNiw4IEBACiAJCUY0NDI5MTVGMUZBNTI2MUUwMDJD
QzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU2l6ZUZvcm1h
dHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQyOTE2MjFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVNp
emVGb3JtYXR0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQyOTE2NjFG
QTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0OTc0RUExMjY1RUVBMjIwMEI0OUI4QyAvKiBSZXZlYWxTb2Z0TGluay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXZlYWxTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNDk3NEVBMjI2NUVFQTIyMDBCNDlCOEMgLyogUmV2ZWFsU29mdExpbmsubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBSZXZlYWxTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjRDODVBNEMyNjU4NTUxOTAwNUI4OUNDIC8qIFF1aWNrTG9va1VJU29mdExpbmsu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBRdWlja0xvb2tVSVNv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEM4NUE0RDI2NTg1NTFB
MDA1Qjg5Q0MgLyogUXVpY2tMb29rVUlTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBRdWlja0xvb2tVSVNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0REREMDE5MjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRM
aW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVj
dG9yc0NvcmVTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNSw2
ICs3MjksOCBAQAogCQkJCTMxNjQ3RkFFMjUxNzU5REIwMDEwRjhGQiAvKiBPcGVuR0xTb2Z0TGlu
a0NvY29hLm1tICovLAogCQkJCUExRjYzQzlEMjFBNERCRjcwMDZGQjQzQiAvKiBQYXNzS2l0U29m
dExpbmsuaCAqLywKIAkJCQlBMUY2M0M5RTIxQTREQkY3MDA2RkI0M0IgLyogUGFzc0tpdFNvZnRM
aW5rLm1tICovLAorCQkJCUY0OTc0RUExMjY1RUVBMjIwMEI0OUI4QyAvKiBSZXZlYWxTb2Z0TGlu
ay5oICovLAorCQkJCUY0OTc0RUEyMjY1RUVBMjIwMEI0OUI4QyAvKiBSZXZlYWxTb2Z0TGluay5t
bSAqLywKIAkJCQk5M0IzOEVCRDI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCAq
LywKIAkJCQk5M0IzOEVCRjI1ODIxQ0Q3MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsubW0gKi8s
CiAJCQkJMDc2MTFEQjQyNDNGQTVCRTAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5o
ICovLApAQCAtOTYxLDYgKzk2Nyw3IEBACiAJCQkJQTNBQjZFNTYxRjNEMUREQjAwOUMxNEIxIC8q
IFNsZWVwRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUEzQUI2RTYxMUYzRDFFMzkwMDlD
MTRCMSAvKiBTbGVlcERpc2FibGVyQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCUEzNzg4RTk4
MUYwNUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ5NzRFQTMy
NjVFRUEyMjAwQjQ5QjhDIC8qIFJldmVhbFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0IzOEVCRTI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzQjM4RUMyMjU4MjFEMjIwMDE5OEU2MyAvKiBTcGVlY2hTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExMTc1QjQ5MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEku
aCBpbiBIZWFkZXJzICovLApAQCAtMTA5Niw2ICsxMTAzLDcgQEAKIAkJCQlBM0M2NkNEQzFGNDYy
RDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzQUI2RTUy
MUYzRDFEQzUwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUEzQUI2RTYwMUYzRDFFMzkwMDlDMTRCMSAvKiBTbGVlcERpc2FibGVyQ29jb2EuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjQ5NzRFQTQyNjVFRUEyMjAwQjQ5QjhDIC8qIFJldmVhbFNvZnRMaW5r
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTM3ODhFOUMxRjA1Qjc4MjAwNjc5NDI1IC8qIFNvdW5k
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzNzg4RTlFMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3Vu
ZE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzQjM4RUMwMjU4MjFDRDgwMDE5OEU2MyAvKiBT
cGVlY2hTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1NYWMuY21ha2UKaW5kZXggYWZkODhiNzg2M2Q1OGE4ZDQ3ZWUxOTJhYTBjYjFjOTFjY2Uw
OGQ3Mi4uNTQyMDQ5Y2U2Nzk5ZTg4MzhjY2E4ZjRkYTBjMTQ4Yzk3MDZmZWE3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0xNiw2ICsxNiw3IEBAIGxpc3Qo
QVBQRU5EIFBBTF9QVUJMSUNfSEVBREVSUwogICAgIGNvY29hL01lZGlhVG9vbGJveFNvZnRMaW5r
LmgKICAgICBjb2NvYS9PcGVuR0xTb2Z0TGlua0NvY29hLmgKICAgICBjb2NvYS9QYXNzS2l0U29m
dExpbmsuaAorICAgIGNvY29hL1JldmVhbFNvZnRMaW5rLmgKICAgICBjb2NvYS9TcGVlY2hTb2Z0
TGluay5oCiAgICAgY29jb2EvVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmgKIApAQCAtMTU2LDYgKzE1
Nyw3IEBAIGxpc3QoQVBQRU5EIFBBTF9TT1VSQ0VTCiAgICAgY29jb2EvTWVkaWFUb29sYm94U29m
dExpbmsuY3BwCiAgICAgY29jb2EvT3BlbkdMU29mdExpbmtDb2NvYS5tbQogICAgIGNvY29hL1Bh
c3NLaXRTb2Z0TGluay5tbQorICAgIGNvY29hL1JldmVhbFNvZnRMaW5rLm1tCiAgICAgY29jb2Ev
U3BlZWNoU29mdExpbmsubW0KICAgICBjb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsubW0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9SZXZlYWxTb2Z0TGluay5o
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9SZXZlYWxTb2Z0TGluay5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZjNjI3NGI0NTM4MjYwNDQ3YzcyNzA0ZTcyMmNjMmUzOWRmYWJkNzUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLmgKQEAg
LTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFJF
VkVBTCkKKworI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaD4KKyNpbXBvcnQgPHd0
Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBS
ZXZlYWwpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFJWUHJlc2VudGVyKQorU09G
VF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBSVlByZXNlbnRpbmdDb250ZXh0KQorCitTT0ZU
X0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBSZXZlYWxDb3JlKQorU09GVF9MSU5LX0NM
QVNTX0ZPUl9IRUFERVIoUEFMLCBSVkl0ZW0pCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQ
QUwsIFJWU2VsZWN0aW9uKQorCisjZW5kaWYgLy8gRU5BQkxFKFJFVkVBTCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvUmV2ZWFsU29mdExpbmsubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1NzQz
OTlkMGU2MWM0YWE3MWZjNWRmOGM0ZWI2ZGE2NzAzYTVkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLm1tCkBAIC0wLDAgKzEs
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShSRVZF
QUwpCisKKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUmV2ZWFsU1BJLmg+CisjaW1wb3J0IDx3dGYv
U29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBSZXZlYWwsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ0xBU1NfRk9S
X1NPVVJDRV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIFJldmVhbCwgUlZQcmVzZW50ZXIsIFBB
TF9FWFBPUlQpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05BTF9XSVRIX0VYUE9S
VChQQUwsIFJldmVhbCwgUlZQcmVzZW50aW5nQ29udGV4dCwgUEFMX0VYUE9SVCkKKworU09GVF9M
SU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBSZXZlYWxD
b3JlLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfT1BUSU9OQUxfV0lU
SF9FWFBPUlQoUEFMLCBSZXZlYWxDb3JlLCBSVkl0ZW0sIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
Q0xBU1NfRk9SX1NPVVJDRV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIFJldmVhbENvcmUsIFJW
U2VsZWN0aW9uLCBQQUxfRVhQT1JUKQorCisjZW5kaWYgLy8gRU5BQkxFKFJFVkVBTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbSBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQppbmRleCA3
ODA3MWIwZmE2MDFjYWI5ZjQ3ZjYxMGEzMzAwMjQxZjMzYjkxNWI1Li5hNDBlMGZkNWEzNDc0Yjc0
MzdkM2Q5OGY3ZDdjNjE0MzNiOTg5OGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tCkBAIC00Nyw4ICs0Nyw4IEBACiAjaW1wb3J0ICJW
aXNpYmxlUG9zaXRpb24uaCIKICNpbXBvcnQgIlZpc2libGVTZWxlY3Rpb24uaCIKICNpbXBvcnQg
IlZpc2libGVVbml0cy5oIgorI2ltcG9ydCA8cGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgotI2ltcG9ydCA8cGFsL3NwaS9j
b2NvYS9SZXZlYWxTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAj
aW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAKQEAgLTY3LDIxICs2Nyw5IEBAIFNPRlRfTElOS19QUklW
QVRFX0ZSQU1FV09SSyhVSUtpdE1hY0hlbHBlcikKIFNPRlRfTElOSyhVSUtpdE1hY0hlbHBlciwg
VUlOU1NoYXJlZFJldmVhbENvbnRyb2xsZXIsIGlkPFVJTlNSZXZlYWxDb250cm9sbGVyPiwgKHZv
aWQpLCAoKSkKICNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRBTFlTVCkKIAotI2lmIEVOQUJMRShS
RVZFQUwpCi1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9OQUwoUmV2ZWFsKQotU09G
VF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKFJldmVhbENvcmUpCi1TT0ZUX0xJTktf
Q0xBU1NfT1BUSU9OQUwoUmV2ZWFsLCBSVlByZXNlbnRlcikKLVNPRlRfTElOS19DTEFTU19PUFRJ
T05BTChSZXZlYWwsIFJWUHJlc2VudGluZ0NvbnRleHQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9O
QUwoUmV2ZWFsQ29yZSwgUlZJdGVtKQotU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKFJldmVhbENv
cmUsIFJWU2VsZWN0aW9uKQotI2VuZGlmCi0KICNpZiBQTEFURk9STShNQUMpCiAKLUBpbnRlcmZh
Y2UgV2ViUmV2ZWFsSGlnaGxpZ2h0IDxSVlByZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlPiA6IE5T
T2JqZWN0IHsKLUBwcml2YXRlCi0gICAgRnVuY3Rpb248dm9pZCgpPiBfY2xlYXJUZXh0SW5kaWNh
dG9yOwotfQorQGludGVyZmFjZSBXZWJSZXZlYWxIaWdobGlnaHQgOiBOU09iamVjdDxSVlByZXNl
bnRlckhpZ2hsaWdodERlbGVnYXRlPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IE5TUmVjdCBoaWdobGlnaHRSZWN0OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIHVzZURlZmF1bHRIaWdobGlnaHQ7CkBAIC05Miw3ICs4MCw5IEBAIC0gKHZvaWQpc2V0Q2xl
YXJUZXh0SW5kaWNhdG9yOihGdW5jdGlvbjx2b2lkKCk+JiYpY2xlYXJUZXh0SW5kaWNhdG9yOwog
CiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJSZXZlYWxIaWdobGlnaHQKK0BpbXBsZW1lbnRh
dGlvbiBXZWJSZXZlYWxIaWdobGlnaHQgeworICAgIEZ1bmN0aW9uPHZvaWQoKT4gX2NsZWFyVGV4
dEluZGljYXRvcjsKK30KIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSGlnaGxpZ2h0UmVjdDoo
TlNSZWN0KWhpZ2hsaWdodFJlY3QgdXNlRGVmYXVsdEhpZ2hsaWdodDooQk9PTCl1c2VEZWZhdWx0
SGlnaGxpZ2h0IGF0dHJpYnV0ZWRTdHJpbmc6KE5TQXR0cmlidXRlZFN0cmluZyAqKSBhdHRyaWJ1
dGVkU3RyaW5nCiB7CkBAIC0xMjYsMTIgKzExNiwxMiBAQCAtICh2b2lkKXJldmVhbENvbnRleHQ6
KFJWUHJlc2VudGluZ0NvbnRleHQgKiljb250ZXh0IGRyYXdSZWN0c0Zvckl0ZW06KFJWSXRlbSAq
KQogICAgICAgICBOU1JlY3QgcmVjdCA9IHJlY3RWYWwucmVjdFZhbHVlOwogCiAgICAgICAgIC8v
IEdldCBjdXJyZW50IGZvbnQgYXR0cmlidXRlcyBmcm9tIHRoZSBhdHRyaWJ1dGVkIHN0cmluZyBh
Ym92ZSwgYW5kIGFkZCBwYXJhZ3JhcGggc3R5bGUgYXR0cmlidXRlIGluIG9yZGVyIHRvIGNlbnRl
ciB0ZXh0LgotICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gYXR0cmlidXRl
cyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aERpY3Rpb25h
cnk6W3NlbGYuYXR0cmlidXRlZFN0cmluZyBmb250QXR0cmlidXRlc0luUmFuZ2U6TlNNYWtlUmFu
Z2UoMCwgW3NlbGYuYXR0cmlidXRlZFN0cmluZyBsZW5ndGhdKV1dKTsKLSAgICAgICAgUmV0YWlu
UHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0eWxlPiBwYXJhZ3JhcGggPSBhZG9wdE5TKFtbTlNNdXRh
YmxlUGFyYWdyYXBoU3R5bGUgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgYXV0byBhdHRyaWJ1dGVz
ID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoRGljdGlvbmFy
eTpbc2VsZi5hdHRyaWJ1dGVkU3RyaW5nIGZvbnRBdHRyaWJ1dGVzSW5SYW5nZTpOU01ha2VSYW5n
ZSgwLCBbc2VsZi5hdHRyaWJ1dGVkU3RyaW5nIGxlbmd0aF0pXV0pOworICAgICAgICBhdXRvIHBh
cmFncmFwaCA9IGFkb3B0TlMoW1tOU011dGFibGVQYXJhZ3JhcGhTdHlsZSBhbGxvY10gaW5pdF0p
OwogICAgICAgICBbcGFyYWdyYXBoIHNldEFsaWdubWVudDpOU1RleHRBbGlnbm1lbnRDZW50ZXJd
OwogICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmplY3Q6cGFyYWdyYXBoLmdldCgpIGZvcktleTpO
U1BhcmFncmFwaFN0eWxlQXR0cmlidXRlTmFtZV07CiAgICAgCi0gICAgICAgIFJldGFpblB0cjxO
U0F0dHJpYnV0ZWRTdHJpbmc+IHN0cmluZyA9IGFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcg
YWxsb2NdIGluaXRXaXRoU3RyaW5nOltzZWxmLmF0dHJpYnV0ZWRTdHJpbmcgc3RyaW5nXSBhdHRy
aWJ1dGVzOmF0dHJpYnV0ZXMuZ2V0KCldKTsKKyAgICAgICAgYXV0byBzdHJpbmcgPSBhZG9wdE5T
KFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0aFN0cmluZzpbc2VsZi5hdHRyaWJ1
dGVkU3RyaW5nIHN0cmluZ10gYXR0cmlidXRlczphdHRyaWJ1dGVzLmdldCgpXSk7CiAgICAgICAg
IFtzdHJpbmcgZHJhd0luUmVjdDpyZWN0XTsKICAgICB9CiB9CkBAIC0xNTYsMTkgKzE0NiwxOCBA
QCBAZW5kCiAKICNlbGlmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAvLyBQTEFURk9STShNQUMpCiAK
LUBpbnRlcmZhY2UgV2ViUmV2ZWFsSGlnaGxpZ2h0IDxVSVJWUHJlc2VudGVySGlnaGxpZ2h0RGVs
ZWdhdGU+IDogTlNPYmplY3QgewotQHByaXZhdGUKLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+
IF9pbWFnZTsKLSAgICBDR1JlY3QgX2hpZ2hsaWdodFJlY3Q7Ci0gICAgQk9PTCBfaGlnaGxpZ2h0
aW5nOwotICAgIFVJVmlldyAqX3ZpZXc7Ci19CitAaW50ZXJmYWNlIFdlYlJldmVhbEhpZ2hsaWdo
dCA6IE5TT2JqZWN0PFVJUlZQcmVzZW50ZXJIaWdobGlnaHREZWxlZ2F0ZT4KIAogLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdodFJlY3Qgdmlldzoo
VUlWaWV3ICopdmlldyBpbWFnZTooUmVmUHRyPFdlYkNvcmU6OkltYWdlPiYmKWltYWdlOwogCiBA
ZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJSZXZlYWxIaWdobGlnaHQKK0BpbXBsZW1lbnRhdGlv
biBXZWJSZXZlYWxIaWdobGlnaHQgeworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gX2ltYWdl
OworICAgIENHUmVjdCBfaGlnaGxpZ2h0UmVjdDsKKyAgICBCT09MIF9oaWdobGlnaHRpbmc7Cisg
ICAgVUlWaWV3ICpfdmlldzsKK30KIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSGlnaGxpZ2h0
UmVjdDooTlNSZWN0KWhpZ2hsaWdodFJlY3QgdmlldzooVUlWaWV3ICopdmlldyBpbWFnZTooUmVm
UHRyPFdlYkNvcmU6OkltYWdlPiYmKWltYWdlCiB7CkBAIC0yNjMsMTEgKzI1MiwyMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoUkVWRUFMKQogCitzdGF0aWMgYm9vbCBjYW5D
cmVhdGVSZXZlYWxJdGVtcygpCit7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0OworICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywg
WyZdIHsKKyAgICAgICAgcmVzdWx0ID0gUEFMOjppc1JldmVhbEZyYW1ld29ya0F2YWlsYWJsZSgp
ICYmIFBBTDo6aXNSZXZlYWxDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjpnZXRSVkl0
ZW1DbGFzcygpOworICAgIH0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIE9wdGlvbmFsPHN0
ZDo6dHVwbGU8U2ltcGxlUmFuZ2UsIE5TRGljdGlvbmFyeSAqPj4gRGljdGlvbmFyeUxvb2t1cDo6
cmFuZ2VGb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewog
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCi0gICAgaWYgKCFSZXZlYWxMaWJyYXJ5
KCkgfHwgIVJldmVhbENvcmVMaWJyYXJ5KCkgfHwgIWdldFJWSXRlbUNsYXNzKCkpCisgICAgaWYg
KCFjYW5DcmVhdGVSZXZlYWxJdGVtcygpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owog
CiAgICAgLy8gU2luY2Ugd2UgYWxyZWFkeSBoYXZlIHRoZSByYW5nZSB3ZSB3YW50LCB3ZSBqdXN0
IG5lZWQgdG8gZ3JhYiB0aGUgcmV0dXJuZWQgb3B0aW9ucy4KQEAgLTI4Niw3ICsyODUsNyBAQCBP
cHRpb25hbDxzdGQ6OnR1cGxlPFNpbXBsZVJhbmdlLCBOU0RpY3Rpb25hcnkgKj4+IERpY3Rpb25h
cnlMb29rdXA6OnJhbmdlRm9yU2VsZQogCiAgICAgYXV0byBmdWxsQ2hhcmFjdGVyUmFuZ2UgPSAq
bWFrZVNpbXBsZVJhbmdlKHBhcmFncmFwaFN0YXJ0LCBwYXJhZ3JhcGhFbmQpOwogICAgIFN0cmlu
ZyBpdGVtU3RyaW5nID0gcGxhaW5UZXh0KGZ1bGxDaGFyYWN0ZXJSYW5nZSk7Ci0gICAgTlNSYW5n
ZSBoaWdobGlnaHRSYW5nZSA9IGFkb3B0TlMoW2FsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0V2l0
aFRleHQ6aXRlbVN0cmluZyBzZWxlY3RlZFJhbmdlOnJhbmdlVG9QYXNzXSkuZ2V0KCkuaGlnaGxp
Z2h0UmFuZ2U7CisgICAgTlNSYW5nZSBoaWdobGlnaHRSYW5nZSA9IGFkb3B0TlMoW1BBTDo6YWxs
b2NSVkl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoVGV4dDppdGVtU3RyaW5nIHNlbGVjdGVkUmFuZ2U6
cmFuZ2VUb1Bhc3NdKS5nZXQoKS5oaWdobGlnaHRSYW5nZTsKIAogICAgIHJldHVybiB7IHsgcmVz
b2x2ZUNoYXJhY3RlclJhbmdlKGZ1bGxDaGFyYWN0ZXJSYW5nZSwgaGlnaGxpZ2h0UmFuZ2UpLCBu
aWwgfSB9OwogCkBAIC0yOTksNyArMjk4LDcgQEAgT3B0aW9uYWw8c3RkOjp0dXBsZTxTaW1wbGVS
YW5nZSwgTlNEaWN0aW9uYXJ5ICo+PiBEaWN0aW9uYXJ5TG9va3VwOjpyYW5nZUF0SGl0VGUKIHsK
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAKLSAgICBpZiAoIVJldmVhbExp
YnJhcnkoKSB8fCAhUmV2ZWFsQ29yZUxpYnJhcnkoKSB8fCAhZ2V0UlZJdGVtQ2xhc3MoKSkKKyAg
ICBpZiAoIWNhbkNyZWF0ZVJldmVhbEl0ZW1zKCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAgICAgCiAgICAgYXV0byogbm9kZSA9IGhpdFRlc3RSZXN1bHQuaW5uZXJOb25TaGFyZWRO
b2RlKCk7CkBAIC0zNTAsMTAgKzM0OSwxMCBAQCBPcHRpb25hbDxzdGQ6OnR1cGxlPFNpbXBsZVJh
bmdlLCBOU0RpY3Rpb25hcnkgKj4+IERpY3Rpb25hcnlMb29rdXA6OnJhbmdlQXRIaXRUZQogICAg
ICAgICBoaXRJbmRleCA9IGNoYXJhY3RlckNvdW50KCptYWtlU2ltcGxlUmFuZ2UoZnVsbENoYXJh
Y3RlclJhbmdlLT5zdGFydCwgcG9zaXRpb24pKTsKICAgICB9CiAKLSAgICBOU1JhbmdlIHNlbGVj
dGVkUmFuZ2UgPSBbZ2V0UlZTZWxlY3Rpb25DbGFzcygpIHJldmVhbFJhbmdlQXRJbmRleDpoaXRJ
bmRleCBzZWxlY3RlZFJhbmdlczpAW1tOU1ZhbHVlIHZhbHVlV2l0aFJhbmdlOnNlbGVjdGlvblJh
bmdlXV0gc2hvdWxkVXBkYXRlU2VsZWN0aW9uOm5pbF07CisgICAgTlNSYW5nZSBzZWxlY3RlZFJh
bmdlID0gW1BBTDo6Z2V0UlZTZWxlY3Rpb25DbGFzcygpIHJldmVhbFJhbmdlQXRJbmRleDpoaXRJ
bmRleCBzZWxlY3RlZFJhbmdlczpAW1tOU1ZhbHVlIHZhbHVlV2l0aFJhbmdlOnNlbGVjdGlvblJh
bmdlXV0gc2hvdWxkVXBkYXRlU2VsZWN0aW9uOm5pbF07CiAKICAgICBTdHJpbmcgaXRlbVN0cmlu
ZyA9IHBsYWluVGV4dCgqZnVsbENoYXJhY3RlclJhbmdlKTsKLSAgICBhdXRvIGhpZ2hsaWdodFJh
bmdlID0gYWRvcHROUyhbYWxsb2NSVkl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoVGV4dDppdGVtU3Ry
aW5nIHNlbGVjdGVkUmFuZ2U6c2VsZWN0ZWRSYW5nZV0pLmdldCgpLmhpZ2hsaWdodFJhbmdlOwor
ICAgIGF1dG8gaGlnaGxpZ2h0UmFuZ2UgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZJdGVtSW5zdGFu
Y2UoKSBpbml0V2l0aFRleHQ6aXRlbVN0cmluZyBzZWxlY3RlZFJhbmdlOnNlbGVjdGVkUmFuZ2Vd
KS5nZXQoKS5oaWdobGlnaHRSYW5nZTsKIAogICAgIGlmIChoaWdobGlnaHRSYW5nZS5sb2NhdGlv
biA9PSBOU05vdEZvdW5kIHx8ICFoaWdobGlnaHRSYW5nZS5sZW5ndGgpCiAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CkBAIC0zODUsNyArMzg0LDcgQEAgc3RkOjp0dXBsZTxOU1N0cmluZyAq
LCBOU0RpY3Rpb25hcnkgKj4gRGljdGlvbmFyeUxvb2t1cDo6c3RyaW5nRm9yUERGU2VsZWN0aW9u
KFAKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAKLSAgICBpZiAoIVJl
dmVhbExpYnJhcnkoKSB8fCAhUmV2ZWFsQ29yZUxpYnJhcnkoKSB8fCAhZ2V0UlZJdGVtQ2xhc3Mo
KSkKKyAgICBpZiAoIWNhbkNyZWF0ZVJldmVhbEl0ZW1zKCkpCiAgICAgICAgIHJldHVybiB7IG51
bGxwdHIsIG5pbCB9OwogCiAgICAgLy8gRG9uJ3QgZG8gYW55dGhpbmcgaWYgdGhlcmUgaXMgbm8g
Y2hhcmFjdGVyIGF0IHRoZSBwb2ludC4KQEAgLTQwMyw3ICs0MDIsNyBAQCBzdGQ6OnR1cGxlPE5T
U3RyaW5nICosIE5TRGljdGlvbmFyeSAqPiBEaWN0aW9uYXJ5TG9va3VwOjpzdHJpbmdGb3JQREZT
ZWxlY3Rpb24oUAogICAgIGF1dG8gZnVsbFBsYWluVGV4dFN0cmluZyA9IFtzZWxlY3Rpb25Gb3JM
b29rdXAgc3RyaW5nXTsKICAgICBhdXRvIHJhbmdlVG9QYXNzID0gTlNNYWtlUmFuZ2UoY2hhcmFj
dGVyc0FkZGVkQmVmb3JlU3RhcnQsIDApOwogCi0gICAgUmV0YWluUHRyPFJWSXRlbT4gaXRlbSA9
IGFkb3B0TlMoW2FsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0V2l0aFRleHQ6ZnVsbFBsYWluVGV4
dFN0cmluZyBzZWxlY3RlZFJhbmdlOnJhbmdlVG9QYXNzXSk7CisgICAgYXV0byBpdGVtID0gYWRv
cHROUyhbUEFMOjphbGxvY1JWSXRlbUluc3RhbmNlKCkgaW5pdFdpdGhUZXh0OmZ1bGxQbGFpblRl
eHRTdHJpbmcgc2VsZWN0ZWRSYW5nZTpyYW5nZVRvUGFzc10pOwogICAgIE5TUmFuZ2UgZXh0cmFj
dGVkUmFuZ2UgPSBpdGVtLmdldCgpLmhpZ2hsaWdodFJhbmdlOwogICAgIAogICAgIGlmIChleHRy
YWN0ZWRSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQpAQCAtNDI4LDg5ICs0MjcsNzcgQEAg
c3RhdGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRy
b2xsZXIoYm9vbCBjcmVhdGVBbmltYXQKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
ICAgICAKICNpZiBQTEFURk9STShNQUMpCi0gICAgCi0gICAgaWYgKCFSZXZlYWxMaWJyYXJ5KCkg
fHwgIVJldmVhbENvcmVMaWJyYXJ5KCkgfHwgIWdldFJWSXRlbUNsYXNzKCkgfHwgIWdldFJWUHJl
c2VudGVyQ2xhc3MoKSkKKyAgICBpZiAoIWNhbkNyZWF0ZVJldmVhbEl0ZW1zKCkgfHwgIVBBTDo6
Z2V0UlZQcmVzZW50ZXJDbGFzcygpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgUmV0YWlu
UHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IG11dGFibGVPcHRpb25zID0gYWRvcHROUyhbW05TTXV0
YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIG11dGFibGVPcHRpb25zID0g
YWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBpZiAoTlNE
aWN0aW9uYXJ5ICpvcHRpb25zID0gZGljdGlvbmFyeVBvcHVwSW5mby5vcHRpb25zLmdldCgpKQog
ICAgICAgICBbbXV0YWJsZU9wdGlvbnMgYWRkRW50cmllc0Zyb21EaWN0aW9uYXJ5Om9wdGlvbnNd
OwogCiAgICAgYXV0byB0ZXh0SW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6Y3JlYXRlKGRpY3Rp
b25hcnlQb3B1cEluZm8udGV4dEluZGljYXRvcik7Ci0gICAgCi0gICAgUmV0YWluUHRyPFJWUHJl
c2VudGVyPiBwcmVzZW50ZXIgPSBhZG9wdE5TKFthbGxvY1JWUHJlc2VudGVySW5zdGFuY2UoKSBp
bml0XSk7Ci0gICAgCisKKyAgICBhdXRvIHByZXNlbnRlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NS
VlByZXNlbnRlckluc3RhbmNlKCkgaW5pdF0pOworCiAgICAgTlNSZWN0IGhpZ2hsaWdodFJlY3Q7
CiAgICAgTlNQb2ludCBwb2ludGVyTG9jYXRpb247Ci0gICAgCisKICAgICBpZiAodGV4dEluZGlj
YXRvci5nZXQoKS5jb250ZW50SW1hZ2UoKSkgewogICAgICAgICB0ZXh0SW5kaWNhdG9ySW5zdGFs
bGF0aW9uQ2FsbGJhY2sodGV4dEluZGljYXRvci5nZXQoKSk7CiAKICAgICAgICAgRmxvYXRSZWN0
IGZpcnN0VGV4dFJlY3RJblZpZXdDb29yZGluYXRlcyA9IHRleHRJbmRpY2F0b3IuZ2V0KCkudGV4
dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcygpWzBdOwogICAgICAgICBGbG9hdFJlY3Qg
dGV4dEJvdW5kaW5nUmVjdEluVmlld0Nvb3JkaW5hdGVzID0gdGV4dEluZGljYXRvci5nZXQoKS50
ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CiAgICAgICAgIEZsb2F0UmVj
dCBzZWxlY3Rpb25Cb3VuZGluZ1JlY3RJblZpZXdDb29yZGluYXRlcyA9IHRleHRJbmRpY2F0b3Iu
Z2V0KCkuc2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygpOwotICAgICAgICAKKwog
ICAgICAgICBpZiAocm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2spIHsKICAgICAgICAg
ICAgIHRleHRCb3VuZGluZ1JlY3RJblZpZXdDb29yZGluYXRlcyA9IHJvb3RWaWV3VG9WaWV3Q29u
dmVyc2lvbkNhbGxiYWNrKHRleHRCb3VuZGluZ1JlY3RJblZpZXdDb29yZGluYXRlcyk7CiAgICAg
ICAgICAgICBzZWxlY3Rpb25Cb3VuZGluZ1JlY3RJblZpZXdDb29yZGluYXRlcyA9IHJvb3RWaWV3
VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrKHNlbGVjdGlvbkJvdW5kaW5nUmVjdEluVmlld0Nvb3Jk
aW5hdGVzKTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBmaXJzdFRleHRSZWN0SW5W
aWV3Q29vcmRpbmF0ZXMubW92ZUJ5KHRleHRCb3VuZGluZ1JlY3RJblZpZXdDb29yZGluYXRlcy5s
b2NhdGlvbigpKTsKICAgICAgICAgaGlnaGxpZ2h0UmVjdCA9IHNlbGVjdGlvbkJvdW5kaW5nUmVj
dEluVmlld0Nvb3JkaW5hdGVzOwogICAgICAgICBwb2ludGVyTG9jYXRpb24gPSBmaXJzdFRleHRS
ZWN0SW5WaWV3Q29vcmRpbmF0ZXMubG9jYXRpb24oKTsKLSAgICAgICAgCiAgICAgfSBlbHNlIHsK
ICAgICAgICAgTlNQb2ludCB0ZXh0QmFzZWxpbmVPcmlnaW4gPSBkaWN0aW9uYXJ5UG9wdXBJbmZv
Lm9yaWdpbjsKLSAgICAgICAgCiAgICAgICAgIGhpZ2hsaWdodFJlY3QgPSB0ZXh0SW5kaWNhdG9y
LT5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCk7CiAgICAgICAgIHBvaW50ZXJM
b2NhdGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDp0ZXh0QmFzZWxpbmVPcmlnaW4gdG9WaWV3Om5p
bF07CiAgICAgfQotICAgIAotICAgIFJldGFpblB0cjxXZWJSZXZlYWxIaWdobGlnaHQ+IHdlYkhp
Z2hsaWdodCA9ICBhZG9wdE5TKFtbV2ViUmV2ZWFsSGlnaGxpZ2h0IGFsbG9jXSBpbml0V2l0aEhp
Z2hsaWdodFJlY3Q6IGhpZ2hsaWdodFJlY3QgdXNlRGVmYXVsdEhpZ2hsaWdodDohdGV4dEluZGlj
YXRvci5nZXQoKS5jb250ZW50SW1hZ2UoKSBhdHRyaWJ1dGVkU3RyaW5nOmRpY3Rpb25hcnlQb3B1
cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKV0pOwotICAgIFJldGFpblB0cjxSVlByZXNlbnRp
bmdDb250ZXh0PiBjb250ZXh0ID0gYWRvcHROUyhbYWxsb2NSVlByZXNlbnRpbmdDb250ZXh0SW5z
dGFuY2UoKSBpbml0V2l0aFBvaW50ZXJMb2NhdGlvbkluVmlldzpwb2ludGVyTG9jYXRpb24gaW5W
aWV3OnZpZXcgaGlnaGxpZ2h0RGVsZWdhdGU6KGlkPFJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdh
dGU+KSB3ZWJIaWdobGlnaHQuZ2V0KCldKTsKLSAgICAKLSAgICBSZXRhaW5QdHI8UlZJdGVtPiBp
dGVtID0gYWRvcHROUyhbYWxsb2NSVkl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoVGV4dDpkaWN0aW9u
YXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkuc3RyaW5nIHNlbGVjdGVkUmFuZ2U6
TlNNYWtlUmFuZ2UoMCwgZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdldCgp
LnN0cmluZy5sZW5ndGgpXSk7Ci0gICAgCisKKyAgICBhdXRvIHdlYkhpZ2hsaWdodCA9ICBhZG9w
dE5TKFtbV2ViUmV2ZWFsSGlnaGxpZ2h0IGFsbG9jXSBpbml0V2l0aEhpZ2hsaWdodFJlY3Q6IGhp
Z2hsaWdodFJlY3QgdXNlRGVmYXVsdEhpZ2hsaWdodDohdGV4dEluZGljYXRvci5nZXQoKS5jb250
ZW50SW1hZ2UoKSBhdHRyaWJ1dGVkU3RyaW5nOmRpY3Rpb25hcnlQb3B1cEluZm8uYXR0cmlidXRl
ZFN0cmluZy5nZXQoKV0pOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NS
VlByZXNlbnRpbmdDb250ZXh0SW5zdGFuY2UoKSBpbml0V2l0aFBvaW50ZXJMb2NhdGlvbkluVmll
dzpwb2ludGVyTG9jYXRpb24gaW5WaWV3OnZpZXcgaGlnaGxpZ2h0RGVsZWdhdGU6d2ViSGlnaGxp
Z2h0LmdldCgpXSk7CisgICAgYXV0byBpdGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1JWSXRlbUlu
c3RhbmNlKCkgaW5pdFdpdGhUZXh0OmRpY3Rpb25hcnlQb3B1cEluZm8uYXR0cmlidXRlZFN0cmlu
Zy5nZXQoKS5zdHJpbmcgc2VsZWN0ZWRSYW5nZTpOU01ha2VSYW5nZSgwLCBkaWN0aW9uYXJ5UG9w
dXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkuc3RyaW5nLmxlbmd0aCldKTsKKwogICAgIFt3
ZWJIaWdobGlnaHQgc2V0Q2xlYXJUZXh0SW5kaWNhdG9yOlt3ZWJIaWdobGlnaHQgPSBXVEZNb3Zl
KHdlYkhpZ2hsaWdodCksIGNsZWFyVGV4dEluZGljYXRvciA9IFdURk1vdmUoY2xlYXJUZXh0SW5k
aWNhdG9yKV0gewogICAgICAgICBpZiAoY2xlYXJUZXh0SW5kaWNhdG9yKQogICAgICAgICAgICAg
Y2xlYXJUZXh0SW5kaWNhdG9yKCk7CiAgICAgfV07Ci0gICAgCisKICAgICBpZiAoY3JlYXRlQW5p
bWF0aW9uQ29udHJvbGxlcikKICAgICAgICAgcmV0dXJuIFtwcmVzZW50ZXIgYW5pbWF0aW9uQ29u
dHJvbGxlckZvckl0ZW06aXRlbS5nZXQoKSBkb2N1bWVudENvbnRleHQ6bmlsIHByZXNlbnRpbmdD
b250ZXh0OmNvbnRleHQuZ2V0KCkgb3B0aW9uczpuaWxdOworCiAgICAgW3ByZXNlbnRlciByZXZl
YWxJdGVtOml0ZW0uZ2V0KCkgZG9jdW1lbnRDb250ZXh0Om5pbCBwcmVzZW50aW5nQ29udGV4dDpj
b250ZXh0LmdldCgpIG9wdGlvbnM6QHsgQCJmb3JjZUxvb2t1cCI6IEBZRVMgfV07CiAgICAgcmV0
dXJuIG5pbDsKLSAgICAKICNlbGlmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIAogICAgIFVO
VVNFRF9QQVJBTSh0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2spOwogICAgIFVOVVNF
RF9QQVJBTShyb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjayk7CiAgICAgVU5VU0VEX1BB
UkFNKGNsZWFyVGV4dEluZGljYXRvcik7CiAgICAgQVNTRVJUX1VOVVNFRChjcmVhdGVBbmltYXRp
b25Db250cm9sbGVyLCAhY3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcik7Ci0KICAgICBhdXRvIHRl
eHRJbmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGUoZGljdGlvbmFyeVBvcHVwSW5mby50
ZXh0SW5kaWNhdG9yKTsKLSAgICAKLSAgICBSZXRhaW5QdHI8V2ViUmV2ZWFsSGlnaGxpZ2h0PiB3
ZWJIaWdobGlnaHQgPSBhZG9wdE5TKFtbV2ViUmV2ZWFsSGlnaGxpZ2h0IGFsbG9jXSBpbml0V2l0
aEhpZ2hsaWdodFJlY3Q6W3ZpZXcgY29udmVydFJlY3Q6dGV4dEluZGljYXRvci0+c2VsZWN0aW9u
UmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygpIHRvVmlldzpuaWxdIHZpZXc6dmlldyBpbWFnZTp0
ZXh0SW5kaWNhdG9yLT5jb250ZW50SW1hZ2UoKV0pOworICAgIGF1dG8gd2ViSGlnaGxpZ2h0ID0g
YWRvcHROUyhbW1dlYlJldmVhbEhpZ2hsaWdodCBhbGxvY10gaW5pdFdpdGhIaWdobGlnaHRSZWN0
Olt2aWV3IGNvbnZlcnRSZWN0OnRleHRJbmRpY2F0b3ItPnNlbGVjdGlvblJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXMoKSB0b1ZpZXc6bmlsXSB2aWV3OnZpZXcgaW1hZ2U6dGV4dEluZGljYXRvci0+
Y29udGVudEltYWdlKCldKTsKKyAgICBhdXRvIGl0ZW0gPSBhZG9wdE5TKFtQQUw6OmFsbG9jUlZJ
dGVtSW5zdGFuY2UoKSBpbml0V2l0aFRleHQ6ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVk
U3RyaW5nLmdldCgpLnN0cmluZyBzZWxlY3RlZFJhbmdlOk5TTWFrZVJhbmdlKDAsIGRpY3Rpb25h
cnlQb3B1cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKS5zdHJpbmcubGVuZ3RoKV0pOwogCi0g
ICAgUmV0YWluUHRyPFJWSXRlbT4gaXRlbSA9IGFkb3B0TlMoW2FsbG9jUlZJdGVtSW5zdGFuY2Uo
KSBpbml0V2l0aFRleHQ6ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdldCgp
LnN0cmluZyBzZWxlY3RlZFJhbmdlOk5TTWFrZVJhbmdlKDAsIGRpY3Rpb25hcnlQb3B1cEluZm8u
YXR0cmlidXRlZFN0cmluZy5nZXQoKS5zdHJpbmcubGVuZ3RoKV0pOwotICAgIAotICAgIFtVSU5T
U2hhcmVkUmV2ZWFsQ29udHJvbGxlcigpIHJldmVhbEl0ZW06aXRlbS5nZXQoKSBsb2NhdGlvbklu
V2luZG93OmRpY3Rpb25hcnlQb3B1cEluZm8ub3JpZ2luIHdpbmRvdzp2aWV3LndpbmRvdyBoaWdo
bGlnaHRlcjooaWQ8VUlSVlByZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlPikgd2ViSGlnaGxpZ2h0
LmdldCgpXTsKKyAgICBbVUlOU1NoYXJlZFJldmVhbENvbnRyb2xsZXIoKSByZXZlYWxJdGVtOml0
ZW0uZ2V0KCkgbG9jYXRpb25JbldpbmRvdzpkaWN0aW9uYXJ5UG9wdXBJbmZvLm9yaWdpbiB3aW5k
b3c6dmlldy53aW5kb3cgaGlnaGxpZ2h0ZXI6d2ViSGlnaGxpZ2h0LmdldCgpXTsKICAgICByZXR1
cm4gbmlsOwotICAgIAogI2Vsc2UgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAKICAgICBV
TlVTRURfUEFSQU0oY3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcik7CiAgICAgVU5VU0VEX1BBUkFN
KGRpY3Rpb25hcnlQb3B1cEluZm8pOwogICAgIFVOVVNFRF9QQVJBTSh2aWV3KTsKICAgICBVTlVT
RURfUEFSQU0odGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrKTsKICAgICBVTlVTRURf
UEFSQU0ocm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2spOwogICAgIFVOVVNFRF9QQVJB
TShjbGVhclRleHRJbmRpY2F0b3IpOwotICAgIAogICAgIHJldHVybiBuaWw7CiAjZW5kaWYgLy8g
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAKKwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKLSAgICAKIH0KIAogdm9pZCBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoY29uc3QgRGlj
dGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgQ29jb2FWaWV3ICp2aWV3LCBj
b25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiYgdGV4dEluZGljYXRvcklu
c3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0aW9uPEZsb2F0UmVjdChGbG9hdFJl
Y3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2ssIFdURjo6RnVuY3Rpb248dm9p
ZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429798</attachid>
            <date>2021-05-26 14:48:44 -0700</date>
            <delta_ts>2021-05-26 16:17:59 -0700</delta_ts>
            <desc>Keep Xcode project file sorted</desc>
            <filename>bug-226292-20210526144843.patch</filename>
            <type>text/plain</type>
            <size>26382</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY1MmI0ZDJhY2YzYzVk
Y2U4Yzk0MzM3YzQ5MDdiMGE1YWEzNzYwNC4uN2Y3MGE2YWFiMjM4ZmJlNzVkMzg3YWUwZDU0MWJl
Y2JiZDI5MTk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA1LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIFBBTCBz
b2Z0bGlua2luZyBoZWFkZXIgZm9yIHRoZSBSZXZlYWwgZnJhbWV3b3JrCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyOTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsIHNvZnQtbGlua2luZyBiaXRz
IG91dCBvZiBgRGljdGlvbmFyeUxvb2t1cC5tbWAgYW5kIGludG8gYSBzZXBhcmF0ZSBQQUwgaGVh
ZGVyLCBzbyB0aGF0IHdlIGNhbiBlYXNpbHkgc29mdC0KKyAgICAgICAgbGluayBib3RoIFJldmVh
bCBhbmQgUmV2ZWFsQ29yZSBpbiBXZWJLaXQsIGluIGZ1dHVyZSBwYXRjaGVzLiBTZWUgYmVsb3cg
Zm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBlZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW06CisKKyAgICAgICAgQWxz
byBkbyBzb21lIG1pbm9yIGNsZWFudXAgYXJvdW5kIHRoaXMgY29kZToKKworICAgICAgICAtICAg
VXNlIGBhdXRvYCBpbiBtb3JlIHBsYWNlcy4KKyAgICAgICAgLSAgIE1ha2UgYFdlYlJldmVhbEhp
Z2hsaWdodGAgY29uZm9ybSB0byBgUlZQcmVzZW50ZXJIaWdobGlnaHREZWxlZ2F0ZWAgYW5kIGBV
SVJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGVgLCBhcworICAgICAgICAgICAgd2FzIChwcm9i
YWJseSkgaW50ZW5kZWQuIEN1cnJlbnRseSwgdGhlIG5hbWVzIG9mIHRoZXNlIGRlbGVnYXRlIG1l
dGhvZHMgYXJlIHRyZWF0ZWQgYXMgdW51c2VkIHR5cGUgdGVtcGxhdGUKKyAgICAgICAgICAgIGFy
Z3VtZW50cyBvbiB0aGUgY2xhc3MuIFRoaXMgbWVhbnMgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gYHN0
YXRpY19jYXN0YCB0byB0aGUgcHJvdG9jb2wgd2hlbiBwYXNzaW5nIHRoZXNlCisgICAgICAgICAg
ICBvYmplY3RzIGFyb3VuZC4KKyAgICAgICAgLSAgIE1vdmUgc2V2ZXJhbCBpdmFycyBvbiBgV2Vi
UmV2ZWFsSGlnaGxpZ2h0YCBvdXQgb2YgdGhlIEBpbnRlcmZhY2UsIGFuZCBpbnRvIHRoZSBAaW1w
bGVtZW50YXRpb24uCisKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IHJldmVhbENvbnRl
eHQ6ZHJhd1JlY3RzRm9ySXRlbTpdKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNyZWF0ZVJldmVh
bEl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnJhbmdlRm9yU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnJhbmdlQXRIaXRU
ZXN0UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OnNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9u
Q29udHJvbGxlcik6CisgICAgICAgIChTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwpOiBEZWxldGVk
LgorCiAyMDIxLTA1LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZmFjdG9yIHNvbWUgZGF0YSBkZXRlY3RvciBjb2RlIGluIFdlYkNvcmU6OkZy
YW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBmMDBkNTVjZWJhZWFkYWUwN2QyYjI4NGIwOTJhMDNl
ZmEzNjQ3ZjdiLi45OTkwMmNiOGIxOGM0OGE2Mzg4NmFjY2MxODk0ODdkZDBhYTU4YzA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNS0yNiAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBQQUwgc29mdGxpbmtp
bmcgaGVhZGVyIGZvciB0aGUgUmV2ZWFsIGZyYW1ld29yaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBuZXcgaGVhZGVyIGFuZCBzb3VyY2Ug
ZmlsZS4KKworICAgICAgICAqIFBBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHBhbC9QbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBwYWwvY29jb2EvUmV2ZWFsU29m
dExpbmsuaDogQWRkZWQuCisgICAgICAgICogcGFsL2NvY29hL1JldmVhbFNvZnRMaW5rLm1tOiBB
ZGRlZC4KKwogMjAyMS0wNS0yNCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQ29udmVydCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgZnJvbSBhbiBlbnVtIHRvIGNsYXNz
IHdyYXBwaW5nIGEgcGxhdGZvcm0gY29sb3Igc3BhY2UgKENHQ29sb3JTcGFjZVJlZiBmb3IgQ0cg
cG9ydHMsIGV0Yy4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNzA5MjRlZGEyMmRjNDliNjNmMGQ0ZTAyN2ZhODRiZjY5YmUwZjg5
Yi4uMjVjYThiYzE0YjBiMjUzMzI0ZTYwMDYzZTQ4MjQ2ZjY0NTY4NWY2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA3LDYg
KzIwNyw4IEBACiAJCUY0NDI5MTYwMUZBNTI2MUUwMDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0Mjkx
NUYxRkE1MjYxRTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyLmggKi87IH07CiAJCUY0NDI5
MTY0MUZBNTI2NzAwMDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQyOTE2MjFGQTUyNjcwMDAyQ0M5
M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwICovOyB9OwogCQlGNDQyOTE2ODFGQTUyNzA1MDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDI5MTY2MUZBNTI3MDUwMDJDQzkzRSAvKiBGaWxl
U2l6ZUZvcm1hdHRlckNvY29hLm1tICovOyB9OworCQlGNDk3NEVBMzI2NUVFQTIyMDBCNDlCOEMg
LyogUmV2ZWFsU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0OTc0RUExMjY1RUVBMjIwMEI0OUI4QyAvKiBSZXZlYWxTb2Z0TGluay5oICov
OyB9OworCQlGNDk3NEVBNDI2NUVFQTIyMDBCNDlCOEMgLyogUmV2ZWFsU29mdExpbmsubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDk3NEVBMjI2NUVF
QTIyMDBCNDlCOEMgLyogUmV2ZWFsU29mdExpbmsubW0gKi87IH07CiAJCUY0Qzg1QTRFMjY1ODU1
MUEwMDVCODlDQyAvKiBRdWlja0xvb2tVSVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDODVBNEMyNjU4NTUxOTAwNUI4OUNDIC8qIFF1
aWNrTG9va1VJU29mdExpbmsubW0gKi87IH07CiAJCUY0Qzg1QTRGMjY1ODU1MUEwMDVCODlDQyAv
KiBRdWlja0xvb2tVSVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNEM4NUE0RDI2NTg1NTFBMDA1Qjg5Q0MgLyogUXVpY2tMb29rVUlTb2Z0
TGluay5oICovOyB9OwogCQlGNERERDAxQjI2NERDNjlFMDBFRjFCOTEgLyogRGF0YURldGVjdG9y
c0NvcmVTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0REREMDE5MjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRM
aW5rLm1tICovOyB9OwpAQCAtNDI0LDYgKzQyNiw4IEBACiAJCUY0NDI5MTVGMUZBNTI2MUUwMDJD
QzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU2l6ZUZvcm1h
dHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQyOTE2MjFGQTUyNjcwMDAy
Q0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVNp
emVGb3JtYXR0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQyOTE2NjFG
QTUyNzA1MDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEZpbGVTaXplRm9ybWF0dGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0OTc0RUExMjY1RUVBMjIwMEI0OUI4QyAvKiBSZXZlYWxTb2Z0TGluay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXZlYWxTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNDk3NEVBMjI2NUVFQTIyMDBCNDlCOEMgLyogUmV2ZWFsU29mdExpbmsubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBSZXZlYWxTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjRDODVBNEMyNjU4NTUxOTAwNUI4OUNDIC8qIFF1aWNrTG9va1VJU29mdExpbmsu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBRdWlja0xvb2tVSVNv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEM4NUE0RDI2NTg1NTFB
MDA1Qjg5Q0MgLyogUXVpY2tMb29rVUlTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBRdWlja0xvb2tVSVNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0REREMDE5MjY0REM2OUUwMEVGMUI5MSAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRM
aW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVj
dG9yc0NvcmVTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNSw2
ICs3MjksOCBAQAogCQkJCTMxNjQ3RkFFMjUxNzU5REIwMDEwRjhGQiAvKiBPcGVuR0xTb2Z0TGlu
a0NvY29hLm1tICovLAogCQkJCUExRjYzQzlEMjFBNERCRjcwMDZGQjQzQiAvKiBQYXNzS2l0U29m
dExpbmsuaCAqLywKIAkJCQlBMUY2M0M5RTIxQTREQkY3MDA2RkI0M0IgLyogUGFzc0tpdFNvZnRM
aW5rLm1tICovLAorCQkJCUY0OTc0RUExMjY1RUVBMjIwMEI0OUI4QyAvKiBSZXZlYWxTb2Z0TGlu
ay5oICovLAorCQkJCUY0OTc0RUEyMjY1RUVBMjIwMEI0OUI4QyAvKiBSZXZlYWxTb2Z0TGluay5t
bSAqLywKIAkJCQk5M0IzOEVCRDI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCAq
LywKIAkJCQk5M0IzOEVCRjI1ODIxQ0Q3MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsubW0gKi8s
CiAJCQkJMDc2MTFEQjQyNDNGQTVCRTAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5o
ICovLApAQCAtOTU0LDYgKzk2MCw3IEBACiAJCQkJNDQ1MEZDQTAyMUY1RjYwMjAwNERGQTU2IC8q
IFF1aWNrTG9va1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkyMDFGNDNBNEM3
MDAyRUFDMDIgLyogUXVpY2tMb29rU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEM4NUE0RjI2
NTg1NTFBMDA1Qjg5Q0MgLyogUXVpY2tMb29rVUlTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjQ5NzRFQTMyNjVFRUEyMjAwQjQ5QjhDIC8qIFJldmVhbFNvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NDI5NTZDRDIxOEE3MkRGMDA4MERCNTQgLyogUmV2ZWFsU1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1NzBBQjhGMTIwQUUyRThEMDBCOEJFODcgLyogU2VjS2V5UHJveHlTUEku
aCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU4MUYzQkVCNDkwMERCQzMxNyAvKiBTZXJ2ZXJz
U1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwOTMsNiArMTEwMCw3IEBACiAJCQkJQTExNzVCNEYx
RjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ0NTBG
QzlGMjFGNUY2MDIwMDRERkE1NiAvKiBRdWlja0xvb2tTb2Z0TGluay5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUY0Qzg1QTRFMjY1ODU1MUEwMDVCODlDQyAvKiBRdWlja0xvb2tVSVNvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJRjQ5NzRFQTQyNjVFRUEyMjAwQjQ5QjhDIC8qIFJldmVhbFNv
ZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNDNjZDREMxRjQ2MkQ2QTAwOUU2RUU5IC8q
IFNlc3Npb25JRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0FCNkU1MjFGM0QxREM1MDA5QzE0
QjEgLyogU2xlZXBEaXNhYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0FCNkU2MDFGM0Qx
RTM5MDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlckNvY29hLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYWZkODhiNzg2M2Q1OGE4
ZDQ3ZWUxOTJhYTBjYjFjOTFjY2UwOGQ3Mi4uNTQyMDQ5Y2U2Nzk5ZTg4MzhjY2E4ZjRkYTBjMTQ4
Yzk3MDZmZWE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybU1h
Yy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtTWFjLmNtYWtlCkBA
IC0xNiw2ICsxNiw3IEBAIGxpc3QoQVBQRU5EIFBBTF9QVUJMSUNfSEVBREVSUwogICAgIGNvY29h
L01lZGlhVG9vbGJveFNvZnRMaW5rLmgKICAgICBjb2NvYS9PcGVuR0xTb2Z0TGlua0NvY29hLmgK
ICAgICBjb2NvYS9QYXNzS2l0U29mdExpbmsuaAorICAgIGNvY29hL1JldmVhbFNvZnRMaW5rLmgK
ICAgICBjb2NvYS9TcGVlY2hTb2Z0TGluay5oCiAgICAgY29jb2EvVXNhZ2VUcmFja2luZ1NvZnRM
aW5rLmgKIApAQCAtMTU2LDYgKzE1Nyw3IEBAIGxpc3QoQVBQRU5EIFBBTF9TT1VSQ0VTCiAgICAg
Y29jb2EvTWVkaWFUb29sYm94U29mdExpbmsuY3BwCiAgICAgY29jb2EvT3BlbkdMU29mdExpbmtD
b2NvYS5tbQogICAgIGNvY29hL1Bhc3NLaXRTb2Z0TGluay5tbQorICAgIGNvY29hL1JldmVhbFNv
ZnRMaW5rLm1tCiAgICAgY29jb2EvU3BlZWNoU29mdExpbmsubW0KICAgICBjb2NvYS9Vc2FnZVRy
YWNraW5nU29mdExpbmsubW0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9SZXZlYWxTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9SZXZl
YWxTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNjI3NGI0NTM4MjYwNDQ3YzcyNzA0ZTcyMmNjMmUz
OWRmYWJkNzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29h
L1JldmVhbFNvZnRMaW5rLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFJFVkVBTCkKKworI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9SZXZl
YWxTUEkuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVX
T1JLX0ZPUl9IRUFERVIoUEFMLCBSZXZlYWwpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQ
QUwsIFJWUHJlc2VudGVyKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBSVlByZXNl
bnRpbmdDb250ZXh0KQorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBSZXZl
YWxDb3JlKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBSVkl0ZW0pCitTT0ZUX0xJ
TktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFJWU2VsZWN0aW9uKQorCisjZW5kaWYgLy8gRU5BQkxF
KFJFVkVBTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvUmV2ZWFs
U29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1JldmVhbFNvZnRMaW5r
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ1NzQzOTlkMGU2MWM0YWE3MWZjNWRmOGM0ZWI2ZGE2NzAzYTVkNjQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1JldmVhbFNv
ZnRMaW5rLm1tCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShSRVZFQUwpCisKKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUmV2ZWFs
U1BJLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVf
RlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBSZXZlYWwsIFBBTF9FWFBPUlQp
CitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIFJl
dmVhbCwgUlZQcmVzZW50ZXIsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJD
RV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIFJldmVhbCwgUlZQcmVzZW50aW5nQ29udGV4dCwg
UEFMX0VYUE9SVCkKKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBSZXZlYWxDb3JlLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NMQVNTX0ZP
Ul9TT1VSQ0VfT1BUSU9OQUxfV0lUSF9FWFBPUlQoUEFMLCBSZXZlYWxDb3JlLCBSVkl0ZW0sIFBB
TF9FWFBPUlQpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05BTF9XSVRIX0VYUE9S
VChQQUwsIFJldmVhbENvcmUsIFJWU2VsZWN0aW9uLCBQQUxfRVhQT1JUKQorCisjZW5kaWYgLy8g
RU5BQkxFKFJFVkVBTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2Ev
RGljdGlvbmFyeUxvb2t1cC5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlv
bmFyeUxvb2t1cC5tbQppbmRleCA3ODA3MWIwZmE2MDFjYWI5ZjQ3ZjYxMGEzMzAwMjQxZjMzYjkx
NWI1Li5hNDBlMGZkNWEzNDc0Yjc0MzdkM2Q5OGY3ZDdjNjE0MzNiOTg5OGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tCkBAIC00Nyw4
ICs0Nyw4IEBACiAjaW1wb3J0ICJWaXNpYmxlUG9zaXRpb24uaCIKICNpbXBvcnQgIlZpc2libGVT
ZWxlY3Rpb24uaCIKICNpbXBvcnQgIlZpc2libGVVbml0cy5oIgorI2ltcG9ydCA8cGFsL2NvY29h
L1JldmVhbFNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5o
PgotI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9j
a09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAKQEAgLTY3LDIxICs2
Nyw5IEBAIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhVSUtpdE1hY0hlbHBlcikKIFNPRlRf
TElOSyhVSUtpdE1hY0hlbHBlciwgVUlOU1NoYXJlZFJldmVhbENvbnRyb2xsZXIsIGlkPFVJTlNS
ZXZlYWxDb250cm9sbGVyPiwgKHZvaWQpLCAoKSkKICNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRB
TFlTVCkKIAotI2lmIEVOQUJMRShSRVZFQUwpCi1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktf
T1BUSU9OQUwoUmV2ZWFsKQotU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKFJl
dmVhbENvcmUpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoUmV2ZWFsLCBSVlByZXNlbnRlcikK
LVNPRlRfTElOS19DTEFTU19PUFRJT05BTChSZXZlYWwsIFJWUHJlc2VudGluZ0NvbnRleHQpCi1T
T0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoUmV2ZWFsQ29yZSwgUlZJdGVtKQotU09GVF9MSU5LX0NM
QVNTX09QVElPTkFMKFJldmVhbENvcmUsIFJWU2VsZWN0aW9uKQotI2VuZGlmCi0KICNpZiBQTEFU
Rk9STShNQUMpCiAKLUBpbnRlcmZhY2UgV2ViUmV2ZWFsSGlnaGxpZ2h0IDxSVlByZXNlbnRlckhp
Z2hsaWdodERlbGVnYXRlPiA6IE5TT2JqZWN0IHsKLUBwcml2YXRlCi0gICAgRnVuY3Rpb248dm9p
ZCgpPiBfY2xlYXJUZXh0SW5kaWNhdG9yOwotfQorQGludGVyZmFjZSBXZWJSZXZlYWxIaWdobGln
aHQgOiBOU09iamVjdDxSVlByZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlPgogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TUmVjdCBoaWdobGlnaHRSZWN0OwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHVzZURlZmF1bHRIaWdobGlnaHQ7CkBAIC05Miw3ICs4
MCw5IEBAIC0gKHZvaWQpc2V0Q2xlYXJUZXh0SW5kaWNhdG9yOihGdW5jdGlvbjx2b2lkKCk+JiYp
Y2xlYXJUZXh0SW5kaWNhdG9yOwogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJSZXZlYWxI
aWdobGlnaHQKK0BpbXBsZW1lbnRhdGlvbiBXZWJSZXZlYWxIaWdobGlnaHQgeworICAgIEZ1bmN0
aW9uPHZvaWQoKT4gX2NsZWFyVGV4dEluZGljYXRvcjsKK30KIAogLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdodFJlY3QgdXNlRGVmYXVsdEhpZ2hs
aWdodDooQk9PTCl1c2VEZWZhdWx0SGlnaGxpZ2h0IGF0dHJpYnV0ZWRTdHJpbmc6KE5TQXR0cmli
dXRlZFN0cmluZyAqKSBhdHRyaWJ1dGVkU3RyaW5nCiB7CkBAIC0xMjYsMTIgKzExNiwxMiBAQCAt
ICh2b2lkKXJldmVhbENvbnRleHQ6KFJWUHJlc2VudGluZ0NvbnRleHQgKiljb250ZXh0IGRyYXdS
ZWN0c0Zvckl0ZW06KFJWSXRlbSAqKQogICAgICAgICBOU1JlY3QgcmVjdCA9IHJlY3RWYWwucmVj
dFZhbHVlOwogCiAgICAgICAgIC8vIEdldCBjdXJyZW50IGZvbnQgYXR0cmlidXRlcyBmcm9tIHRo
ZSBhdHRyaWJ1dGVkIHN0cmluZyBhYm92ZSwgYW5kIGFkZCBwYXJhZ3JhcGggc3R5bGUgYXR0cmli
dXRlIGluIG9yZGVyIHRvIGNlbnRlciB0ZXh0LgotICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxl
RGljdGlvbmFyeT4gYXR0cmlidXRlcyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFs
bG9jXSBpbml0V2l0aERpY3Rpb25hcnk6W3NlbGYuYXR0cmlidXRlZFN0cmluZyBmb250QXR0cmli
dXRlc0luUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW3NlbGYuYXR0cmlidXRlZFN0cmluZyBsZW5ndGhd
KV1dKTsKLSAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZVBhcmFncmFwaFN0eWxlPiBwYXJhZ3Jh
cGggPSBhZG9wdE5TKFtbTlNNdXRhYmxlUGFyYWdyYXBoU3R5bGUgYWxsb2NdIGluaXRdKTsKKyAg
ICAgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxs
b2NdIGluaXRXaXRoRGljdGlvbmFyeTpbc2VsZi5hdHRyaWJ1dGVkU3RyaW5nIGZvbnRBdHRyaWJ1
dGVzSW5SYW5nZTpOU01ha2VSYW5nZSgwLCBbc2VsZi5hdHRyaWJ1dGVkU3RyaW5nIGxlbmd0aF0p
XV0pOworICAgICAgICBhdXRvIHBhcmFncmFwaCA9IGFkb3B0TlMoW1tOU011dGFibGVQYXJhZ3Jh
cGhTdHlsZSBhbGxvY10gaW5pdF0pOwogICAgICAgICBbcGFyYWdyYXBoIHNldEFsaWdubWVudDpO
U1RleHRBbGlnbm1lbnRDZW50ZXJdOwogICAgICAgICBbYXR0cmlidXRlcyBzZXRPYmplY3Q6cGFy
YWdyYXBoLmdldCgpIGZvcktleTpOU1BhcmFncmFwaFN0eWxlQXR0cmlidXRlTmFtZV07CiAgICAg
Ci0gICAgICAgIFJldGFpblB0cjxOU0F0dHJpYnV0ZWRTdHJpbmc+IHN0cmluZyA9IGFkb3B0TlMo
W1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRoU3RyaW5nOltzZWxmLmF0dHJpYnV0
ZWRTdHJpbmcgc3RyaW5nXSBhdHRyaWJ1dGVzOmF0dHJpYnV0ZXMuZ2V0KCldKTsKKyAgICAgICAg
YXV0byBzdHJpbmcgPSBhZG9wdE5TKFtbTlNBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0V2l0
aFN0cmluZzpbc2VsZi5hdHRyaWJ1dGVkU3RyaW5nIHN0cmluZ10gYXR0cmlidXRlczphdHRyaWJ1
dGVzLmdldCgpXSk7CiAgICAgICAgIFtzdHJpbmcgZHJhd0luUmVjdDpyZWN0XTsKICAgICB9CiB9
CkBAIC0xNTYsMTkgKzE0NiwxOCBAQCBAZW5kCiAKICNlbGlmIFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KSAvLyBQTEFURk9STShNQUMpCiAKLUBpbnRlcmZhY2UgV2ViUmV2ZWFsSGlnaGxpZ2h0IDxVSVJW
UHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+IDogTlNPYmplY3QgewotQHByaXZhdGUKLSAgICBS
ZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IF9pbWFnZTsKLSAgICBDR1JlY3QgX2hpZ2hsaWdodFJlY3Q7
Ci0gICAgQk9PTCBfaGlnaGxpZ2h0aW5nOwotICAgIFVJVmlldyAqX3ZpZXc7Ci19CitAaW50ZXJm
YWNlIFdlYlJldmVhbEhpZ2hsaWdodCA6IE5TT2JqZWN0PFVJUlZQcmVzZW50ZXJIaWdobGlnaHRE
ZWxlZ2F0ZT4KIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0
KWhpZ2hsaWdodFJlY3QgdmlldzooVUlWaWV3ICopdmlldyBpbWFnZTooUmVmUHRyPFdlYkNvcmU6
OkltYWdlPiYmKWltYWdlOwogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJSZXZlYWxIaWdo
bGlnaHQKK0BpbXBsZW1lbnRhdGlvbiBXZWJSZXZlYWxIaWdobGlnaHQgeworICAgIFJlZlB0cjxX
ZWJDb3JlOjpJbWFnZT4gX2ltYWdlOworICAgIENHUmVjdCBfaGlnaGxpZ2h0UmVjdDsKKyAgICBC
T09MIF9oaWdobGlnaHRpbmc7CisgICAgVUlWaWV3ICpfdmlldzsKK30KIAogLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdodFJlY3QgdmlldzooVUlW
aWV3ICopdmlldyBpbWFnZTooUmVmUHRyPFdlYkNvcmU6OkltYWdlPiYmKWltYWdlCiB7CkBAIC0y
NjMsMTEgKzI1MiwyMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoUkVWRUFM
KQogCitzdGF0aWMgYm9vbCBjYW5DcmVhdGVSZXZlYWxJdGVtcygpCit7CisgICAgc3RhdGljIGJv
b2wgcmVzdWx0OworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlRmxhZywgWyZdIHsKKyAgICAgICAgcmVzdWx0ID0gUEFMOjppc1JldmVh
bEZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6aXNSZXZlYWxDb3JlRnJhbWV3b3JrQXZhaWxh
YmxlKCkgJiYgUEFMOjpnZXRSVkl0ZW1DbGFzcygpOworICAgIH0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKIE9wdGlvbmFsPHN0ZDo6dHVwbGU8U2ltcGxlUmFuZ2UsIE5TRGljdGlvbmFyeSAq
Pj4gRGljdGlvbmFyeUxvb2t1cDo6cmFuZ2VGb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCi0g
ICAgaWYgKCFSZXZlYWxMaWJyYXJ5KCkgfHwgIVJldmVhbENvcmVMaWJyYXJ5KCkgfHwgIWdldFJW
SXRlbUNsYXNzKCkpCisgICAgaWYgKCFjYW5DcmVhdGVSZXZlYWxJdGVtcygpKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgLy8gU2luY2Ugd2UgYWxyZWFkeSBoYXZlIHRoZSBy
YW5nZSB3ZSB3YW50LCB3ZSBqdXN0IG5lZWQgdG8gZ3JhYiB0aGUgcmV0dXJuZWQgb3B0aW9ucy4K
QEAgLTI4Niw3ICsyODUsNyBAQCBPcHRpb25hbDxzdGQ6OnR1cGxlPFNpbXBsZVJhbmdlLCBOU0Rp
Y3Rpb25hcnkgKj4+IERpY3Rpb25hcnlMb29rdXA6OnJhbmdlRm9yU2VsZQogCiAgICAgYXV0byBm
dWxsQ2hhcmFjdGVyUmFuZ2UgPSAqbWFrZVNpbXBsZVJhbmdlKHBhcmFncmFwaFN0YXJ0LCBwYXJh
Z3JhcGhFbmQpOwogICAgIFN0cmluZyBpdGVtU3RyaW5nID0gcGxhaW5UZXh0KGZ1bGxDaGFyYWN0
ZXJSYW5nZSk7Ci0gICAgTlNSYW5nZSBoaWdobGlnaHRSYW5nZSA9IGFkb3B0TlMoW2FsbG9jUlZJ
dGVtSW5zdGFuY2UoKSBpbml0V2l0aFRleHQ6aXRlbVN0cmluZyBzZWxlY3RlZFJhbmdlOnJhbmdl
VG9QYXNzXSkuZ2V0KCkuaGlnaGxpZ2h0UmFuZ2U7CisgICAgTlNSYW5nZSBoaWdobGlnaHRSYW5n
ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NSVkl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoVGV4dDppdGVt
U3RyaW5nIHNlbGVjdGVkUmFuZ2U6cmFuZ2VUb1Bhc3NdKS5nZXQoKS5oaWdobGlnaHRSYW5nZTsK
IAogICAgIHJldHVybiB7IHsgcmVzb2x2ZUNoYXJhY3RlclJhbmdlKGZ1bGxDaGFyYWN0ZXJSYW5n
ZSwgaGlnaGxpZ2h0UmFuZ2UpLCBuaWwgfSB9OwogCkBAIC0yOTksNyArMjk4LDcgQEAgT3B0aW9u
YWw8c3RkOjp0dXBsZTxTaW1wbGVSYW5nZSwgTlNEaWN0aW9uYXJ5ICo+PiBEaWN0aW9uYXJ5TG9v
a3VwOjpyYW5nZUF0SGl0VGUKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAg
ICAKLSAgICBpZiAoIVJldmVhbExpYnJhcnkoKSB8fCAhUmV2ZWFsQ29yZUxpYnJhcnkoKSB8fCAh
Z2V0UlZJdGVtQ2xhc3MoKSkKKyAgICBpZiAoIWNhbkNyZWF0ZVJldmVhbEl0ZW1zKCkpCiAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCiAgICAgYXV0byogbm9kZSA9IGhpdFRlc3RS
ZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCk7CkBAIC0zNTAsMTAgKzM0OSwxMCBAQCBPcHRpb25h
bDxzdGQ6OnR1cGxlPFNpbXBsZVJhbmdlLCBOU0RpY3Rpb25hcnkgKj4+IERpY3Rpb25hcnlMb29r
dXA6OnJhbmdlQXRIaXRUZQogICAgICAgICBoaXRJbmRleCA9IGNoYXJhY3RlckNvdW50KCptYWtl
U2ltcGxlUmFuZ2UoZnVsbENoYXJhY3RlclJhbmdlLT5zdGFydCwgcG9zaXRpb24pKTsKICAgICB9
CiAKLSAgICBOU1JhbmdlIHNlbGVjdGVkUmFuZ2UgPSBbZ2V0UlZTZWxlY3Rpb25DbGFzcygpIHJl
dmVhbFJhbmdlQXRJbmRleDpoaXRJbmRleCBzZWxlY3RlZFJhbmdlczpAW1tOU1ZhbHVlIHZhbHVl
V2l0aFJhbmdlOnNlbGVjdGlvblJhbmdlXV0gc2hvdWxkVXBkYXRlU2VsZWN0aW9uOm5pbF07Cisg
ICAgTlNSYW5nZSBzZWxlY3RlZFJhbmdlID0gW1BBTDo6Z2V0UlZTZWxlY3Rpb25DbGFzcygpIHJl
dmVhbFJhbmdlQXRJbmRleDpoaXRJbmRleCBzZWxlY3RlZFJhbmdlczpAW1tOU1ZhbHVlIHZhbHVl
V2l0aFJhbmdlOnNlbGVjdGlvblJhbmdlXV0gc2hvdWxkVXBkYXRlU2VsZWN0aW9uOm5pbF07CiAK
ICAgICBTdHJpbmcgaXRlbVN0cmluZyA9IHBsYWluVGV4dCgqZnVsbENoYXJhY3RlclJhbmdlKTsK
LSAgICBhdXRvIGhpZ2hsaWdodFJhbmdlID0gYWRvcHROUyhbYWxsb2NSVkl0ZW1JbnN0YW5jZSgp
IGluaXRXaXRoVGV4dDppdGVtU3RyaW5nIHNlbGVjdGVkUmFuZ2U6c2VsZWN0ZWRSYW5nZV0pLmdl
dCgpLmhpZ2hsaWdodFJhbmdlOworICAgIGF1dG8gaGlnaGxpZ2h0UmFuZ2UgPSBhZG9wdE5TKFtQ
QUw6OmFsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0V2l0aFRleHQ6aXRlbVN0cmluZyBzZWxlY3Rl
ZFJhbmdlOnNlbGVjdGVkUmFuZ2VdKS5nZXQoKS5oaWdobGlnaHRSYW5nZTsKIAogICAgIGlmICho
aWdobGlnaHRSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kIHx8ICFoaWdobGlnaHRSYW5nZS5s
ZW5ndGgpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC0zODUsNyArMzg0LDcgQEAg
c3RkOjp0dXBsZTxOU1N0cmluZyAqLCBOU0RpY3Rpb25hcnkgKj4gRGljdGlvbmFyeUxvb2t1cDo6
c3RyaW5nRm9yUERGU2VsZWN0aW9uKFAKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKICAgICAKLSAgICBpZiAoIVJldmVhbExpYnJhcnkoKSB8fCAhUmV2ZWFsQ29yZUxpYnJhcnko
KSB8fCAhZ2V0UlZJdGVtQ2xhc3MoKSkKKyAgICBpZiAoIWNhbkNyZWF0ZVJldmVhbEl0ZW1zKCkp
CiAgICAgICAgIHJldHVybiB7IG51bGxwdHIsIG5pbCB9OwogCiAgICAgLy8gRG9uJ3QgZG8gYW55
dGhpbmcgaWYgdGhlcmUgaXMgbm8gY2hhcmFjdGVyIGF0IHRoZSBwb2ludC4KQEAgLTQwMyw3ICs0
MDIsNyBAQCBzdGQ6OnR1cGxlPE5TU3RyaW5nICosIE5TRGljdGlvbmFyeSAqPiBEaWN0aW9uYXJ5
TG9va3VwOjpzdHJpbmdGb3JQREZTZWxlY3Rpb24oUAogICAgIGF1dG8gZnVsbFBsYWluVGV4dFN0
cmluZyA9IFtzZWxlY3Rpb25Gb3JMb29rdXAgc3RyaW5nXTsKICAgICBhdXRvIHJhbmdlVG9QYXNz
ID0gTlNNYWtlUmFuZ2UoY2hhcmFjdGVyc0FkZGVkQmVmb3JlU3RhcnQsIDApOwogCi0gICAgUmV0
YWluUHRyPFJWSXRlbT4gaXRlbSA9IGFkb3B0TlMoW2FsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0
V2l0aFRleHQ6ZnVsbFBsYWluVGV4dFN0cmluZyBzZWxlY3RlZFJhbmdlOnJhbmdlVG9QYXNzXSk7
CisgICAgYXV0byBpdGVtID0gYWRvcHROUyhbUEFMOjphbGxvY1JWSXRlbUluc3RhbmNlKCkgaW5p
dFdpdGhUZXh0OmZ1bGxQbGFpblRleHRTdHJpbmcgc2VsZWN0ZWRSYW5nZTpyYW5nZVRvUGFzc10p
OwogICAgIE5TUmFuZ2UgZXh0cmFjdGVkUmFuZ2UgPSBpdGVtLmdldCgpLmhpZ2hsaWdodFJhbmdl
OwogICAgIAogICAgIGlmIChleHRyYWN0ZWRSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQpA
QCAtNDI4LDg5ICs0MjcsNzcgQEAgc3RhdGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBP
ckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBjcmVhdGVBbmltYXQKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAKICNpZiBQTEFURk9STShNQUMpCi0gICAgCi0gICAg
aWYgKCFSZXZlYWxMaWJyYXJ5KCkgfHwgIVJldmVhbENvcmVMaWJyYXJ5KCkgfHwgIWdldFJWSXRl
bUNsYXNzKCkgfHwgIWdldFJWUHJlc2VudGVyQ2xhc3MoKSkKKyAgICBpZiAoIWNhbkNyZWF0ZVJl
dmVhbEl0ZW1zKCkgfHwgIVBBTDo6Z2V0UlZQcmVzZW50ZXJDbGFzcygpKQogICAgICAgICByZXR1
cm4gbmlsOwogCi0gICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IG11dGFibGVPcHRp
b25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICBh
dXRvIG11dGFibGVPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2Nd
IGluaXRdKTsKICAgICBpZiAoTlNEaWN0aW9uYXJ5ICpvcHRpb25zID0gZGljdGlvbmFyeVBvcHVw
SW5mby5vcHRpb25zLmdldCgpKQogICAgICAgICBbbXV0YWJsZU9wdGlvbnMgYWRkRW50cmllc0Zy
b21EaWN0aW9uYXJ5Om9wdGlvbnNdOwogCiAgICAgYXV0byB0ZXh0SW5kaWNhdG9yID0gVGV4dElu
ZGljYXRvcjo6Y3JlYXRlKGRpY3Rpb25hcnlQb3B1cEluZm8udGV4dEluZGljYXRvcik7Ci0gICAg
Ci0gICAgUmV0YWluUHRyPFJWUHJlc2VudGVyPiBwcmVzZW50ZXIgPSBhZG9wdE5TKFthbGxvY1JW
UHJlc2VudGVySW5zdGFuY2UoKSBpbml0XSk7Ci0gICAgCisKKyAgICBhdXRvIHByZXNlbnRlciA9
IGFkb3B0TlMoW1BBTDo6YWxsb2NSVlByZXNlbnRlckluc3RhbmNlKCkgaW5pdF0pOworCiAgICAg
TlNSZWN0IGhpZ2hsaWdodFJlY3Q7CiAgICAgTlNQb2ludCBwb2ludGVyTG9jYXRpb247Ci0gICAg
CisKICAgICBpZiAodGV4dEluZGljYXRvci5nZXQoKS5jb250ZW50SW1hZ2UoKSkgewogICAgICAg
ICB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2sodGV4dEluZGljYXRvci5nZXQoKSk7
CiAKICAgICAgICAgRmxvYXRSZWN0IGZpcnN0VGV4dFJlY3RJblZpZXdDb29yZGluYXRlcyA9IHRl
eHRJbmRpY2F0b3IuZ2V0KCkudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcygpWzBd
OwogICAgICAgICBGbG9hdFJlY3QgdGV4dEJvdW5kaW5nUmVjdEluVmlld0Nvb3JkaW5hdGVzID0g
dGV4dEluZGljYXRvci5nZXQoKS50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVz
KCk7CiAgICAgICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25Cb3VuZGluZ1JlY3RJblZpZXdDb29yZGlu
YXRlcyA9IHRleHRJbmRpY2F0b3IuZ2V0KCkuc2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGlu
YXRlcygpOwotICAgICAgICAKKwogICAgICAgICBpZiAocm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9u
Q2FsbGJhY2spIHsKICAgICAgICAgICAgIHRleHRCb3VuZGluZ1JlY3RJblZpZXdDb29yZGluYXRl
cyA9IHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrKHRleHRCb3VuZGluZ1JlY3RJblZp
ZXdDb29yZGluYXRlcyk7CiAgICAgICAgICAgICBzZWxlY3Rpb25Cb3VuZGluZ1JlY3RJblZpZXdD
b29yZGluYXRlcyA9IHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrKHNlbGVjdGlvbkJv
dW5kaW5nUmVjdEluVmlld0Nvb3JkaW5hdGVzKTsKICAgICAgICAgfQotICAgICAgICAKKwogICAg
ICAgICBmaXJzdFRleHRSZWN0SW5WaWV3Q29vcmRpbmF0ZXMubW92ZUJ5KHRleHRCb3VuZGluZ1Jl
Y3RJblZpZXdDb29yZGluYXRlcy5sb2NhdGlvbigpKTsKICAgICAgICAgaGlnaGxpZ2h0UmVjdCA9
IHNlbGVjdGlvbkJvdW5kaW5nUmVjdEluVmlld0Nvb3JkaW5hdGVzOwogICAgICAgICBwb2ludGVy
TG9jYXRpb24gPSBmaXJzdFRleHRSZWN0SW5WaWV3Q29vcmRpbmF0ZXMubG9jYXRpb24oKTsKLSAg
ICAgICAgCiAgICAgfSBlbHNlIHsKICAgICAgICAgTlNQb2ludCB0ZXh0QmFzZWxpbmVPcmlnaW4g
PSBkaWN0aW9uYXJ5UG9wdXBJbmZvLm9yaWdpbjsKLSAgICAgICAgCiAgICAgICAgIGhpZ2hsaWdo
dFJlY3QgPSB0ZXh0SW5kaWNhdG9yLT5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVz
KCk7CiAgICAgICAgIHBvaW50ZXJMb2NhdGlvbiA9IFt2aWV3IGNvbnZlcnRQb2ludDp0ZXh0QmFz
ZWxpbmVPcmlnaW4gdG9WaWV3Om5pbF07CiAgICAgfQotICAgIAotICAgIFJldGFpblB0cjxXZWJS
ZXZlYWxIaWdobGlnaHQ+IHdlYkhpZ2hsaWdodCA9ICBhZG9wdE5TKFtbV2ViUmV2ZWFsSGlnaGxp
Z2h0IGFsbG9jXSBpbml0V2l0aEhpZ2hsaWdodFJlY3Q6IGhpZ2hsaWdodFJlY3QgdXNlRGVmYXVs
dEhpZ2hsaWdodDohdGV4dEluZGljYXRvci5nZXQoKS5jb250ZW50SW1hZ2UoKSBhdHRyaWJ1dGVk
U3RyaW5nOmRpY3Rpb25hcnlQb3B1cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKV0pOwotICAg
IFJldGFpblB0cjxSVlByZXNlbnRpbmdDb250ZXh0PiBjb250ZXh0ID0gYWRvcHROUyhbYWxsb2NS
VlByZXNlbnRpbmdDb250ZXh0SW5zdGFuY2UoKSBpbml0V2l0aFBvaW50ZXJMb2NhdGlvbkluVmll
dzpwb2ludGVyTG9jYXRpb24gaW5WaWV3OnZpZXcgaGlnaGxpZ2h0RGVsZWdhdGU6KGlkPFJWUHJl
c2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+KSB3ZWJIaWdobGlnaHQuZ2V0KCldKTsKLSAgICAKLSAg
ICBSZXRhaW5QdHI8UlZJdGVtPiBpdGVtID0gYWRvcHROUyhbYWxsb2NSVkl0ZW1JbnN0YW5jZSgp
IGluaXRXaXRoVGV4dDpkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCku
c3RyaW5nIHNlbGVjdGVkUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgZGljdGlvbmFyeVBvcHVwSW5mby5h
dHRyaWJ1dGVkU3RyaW5nLmdldCgpLnN0cmluZy5sZW5ndGgpXSk7Ci0gICAgCisKKyAgICBhdXRv
IHdlYkhpZ2hsaWdodCA9ICBhZG9wdE5TKFtbV2ViUmV2ZWFsSGlnaGxpZ2h0IGFsbG9jXSBpbml0
V2l0aEhpZ2hsaWdodFJlY3Q6IGhpZ2hsaWdodFJlY3QgdXNlRGVmYXVsdEhpZ2hsaWdodDohdGV4
dEluZGljYXRvci5nZXQoKS5jb250ZW50SW1hZ2UoKSBhdHRyaWJ1dGVkU3RyaW5nOmRpY3Rpb25h
cnlQb3B1cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKV0pOworICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0TlMoW1BBTDo6YWxsb2NSVlByZXNlbnRpbmdDb250ZXh0SW5zdGFuY2UoKSBpbml0V2l0
aFBvaW50ZXJMb2NhdGlvbkluVmlldzpwb2ludGVyTG9jYXRpb24gaW5WaWV3OnZpZXcgaGlnaGxp
Z2h0RGVsZWdhdGU6d2ViSGlnaGxpZ2h0LmdldCgpXSk7CisgICAgYXV0byBpdGVtID0gYWRvcHRO
UyhbUEFMOjphbGxvY1JWSXRlbUluc3RhbmNlKCkgaW5pdFdpdGhUZXh0OmRpY3Rpb25hcnlQb3B1
cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKS5zdHJpbmcgc2VsZWN0ZWRSYW5nZTpOU01ha2VS
YW5nZSgwLCBkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkuc3RyaW5n
Lmxlbmd0aCldKTsKKwogICAgIFt3ZWJIaWdobGlnaHQgc2V0Q2xlYXJUZXh0SW5kaWNhdG9yOlt3
ZWJIaWdobGlnaHQgPSBXVEZNb3ZlKHdlYkhpZ2hsaWdodCksIGNsZWFyVGV4dEluZGljYXRvciA9
IFdURk1vdmUoY2xlYXJUZXh0SW5kaWNhdG9yKV0gewogICAgICAgICBpZiAoY2xlYXJUZXh0SW5k
aWNhdG9yKQogICAgICAgICAgICAgY2xlYXJUZXh0SW5kaWNhdG9yKCk7CiAgICAgfV07Ci0gICAg
CisKICAgICBpZiAoY3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcikKICAgICAgICAgcmV0dXJuIFtw
cmVzZW50ZXIgYW5pbWF0aW9uQ29udHJvbGxlckZvckl0ZW06aXRlbS5nZXQoKSBkb2N1bWVudENv
bnRleHQ6bmlsIHByZXNlbnRpbmdDb250ZXh0OmNvbnRleHQuZ2V0KCkgb3B0aW9uczpuaWxdOwor
CiAgICAgW3ByZXNlbnRlciByZXZlYWxJdGVtOml0ZW0uZ2V0KCkgZG9jdW1lbnRDb250ZXh0Om5p
bCBwcmVzZW50aW5nQ29udGV4dDpjb250ZXh0LmdldCgpIG9wdGlvbnM6QHsgQCJmb3JjZUxvb2t1
cCI6IEBZRVMgfV07CiAgICAgcmV0dXJuIG5pbDsKLSAgICAKICNlbGlmIFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQotICAgIAogICAgIFVOVVNFRF9QQVJBTSh0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9u
Q2FsbGJhY2spOwogICAgIFVOVVNFRF9QQVJBTShyb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxs
YmFjayk7CiAgICAgVU5VU0VEX1BBUkFNKGNsZWFyVGV4dEluZGljYXRvcik7CiAgICAgQVNTRVJU
X1VOVVNFRChjcmVhdGVBbmltYXRpb25Db250cm9sbGVyLCAhY3JlYXRlQW5pbWF0aW9uQ29udHJv
bGxlcik7Ci0KICAgICBhdXRvIHRleHRJbmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGUo
ZGljdGlvbmFyeVBvcHVwSW5mby50ZXh0SW5kaWNhdG9yKTsKLSAgICAKLSAgICBSZXRhaW5QdHI8
V2ViUmV2ZWFsSGlnaGxpZ2h0PiB3ZWJIaWdobGlnaHQgPSBhZG9wdE5TKFtbV2ViUmV2ZWFsSGln
aGxpZ2h0IGFsbG9jXSBpbml0V2l0aEhpZ2hsaWdodFJlY3Q6W3ZpZXcgY29udmVydFJlY3Q6dGV4
dEluZGljYXRvci0+c2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygpIHRvVmlldzpu
aWxdIHZpZXc6dmlldyBpbWFnZTp0ZXh0SW5kaWNhdG9yLT5jb250ZW50SW1hZ2UoKV0pOworICAg
IGF1dG8gd2ViSGlnaGxpZ2h0ID0gYWRvcHROUyhbW1dlYlJldmVhbEhpZ2hsaWdodCBhbGxvY10g
aW5pdFdpdGhIaWdobGlnaHRSZWN0Olt2aWV3IGNvbnZlcnRSZWN0OnRleHRJbmRpY2F0b3ItPnNl
bGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSB0b1ZpZXc6bmlsXSB2aWV3OnZpZXcg
aW1hZ2U6dGV4dEluZGljYXRvci0+Y29udGVudEltYWdlKCldKTsKKyAgICBhdXRvIGl0ZW0gPSBh
ZG9wdE5TKFtQQUw6OmFsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0V2l0aFRleHQ6ZGljdGlvbmFy
eVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdldCgpLnN0cmluZyBzZWxlY3RlZFJhbmdlOk5T
TWFrZVJhbmdlKDAsIGRpY3Rpb25hcnlQb3B1cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKS5z
dHJpbmcubGVuZ3RoKV0pOwogCi0gICAgUmV0YWluUHRyPFJWSXRlbT4gaXRlbSA9IGFkb3B0TlMo
W2FsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0V2l0aFRleHQ6ZGljdGlvbmFyeVBvcHVwSW5mby5h
dHRyaWJ1dGVkU3RyaW5nLmdldCgpLnN0cmluZyBzZWxlY3RlZFJhbmdlOk5TTWFrZVJhbmdlKDAs
IGRpY3Rpb25hcnlQb3B1cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKS5zdHJpbmcubGVuZ3Ro
KV0pOwotICAgIAotICAgIFtVSU5TU2hhcmVkUmV2ZWFsQ29udHJvbGxlcigpIHJldmVhbEl0ZW06
aXRlbS5nZXQoKSBsb2NhdGlvbkluV2luZG93OmRpY3Rpb25hcnlQb3B1cEluZm8ub3JpZ2luIHdp
bmRvdzp2aWV3LndpbmRvdyBoaWdobGlnaHRlcjooaWQ8VUlSVlByZXNlbnRlckhpZ2hsaWdodERl
bGVnYXRlPikgd2ViSGlnaGxpZ2h0LmdldCgpXTsKKyAgICBbVUlOU1NoYXJlZFJldmVhbENvbnRy
b2xsZXIoKSByZXZlYWxJdGVtOml0ZW0uZ2V0KCkgbG9jYXRpb25JbldpbmRvdzpkaWN0aW9uYXJ5
UG9wdXBJbmZvLm9yaWdpbiB3aW5kb3c6dmlldy53aW5kb3cgaGlnaGxpZ2h0ZXI6d2ViSGlnaGxp
Z2h0LmdldCgpXTsKICAgICByZXR1cm4gbmlsOwotICAgIAogI2Vsc2UgLy8gUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICAKICAgICBVTlVTRURfUEFSQU0oY3JlYXRlQW5pbWF0aW9uQ29udHJvbGxl
cik7CiAgICAgVU5VU0VEX1BBUkFNKGRpY3Rpb25hcnlQb3B1cEluZm8pOwogICAgIFVOVVNFRF9Q
QVJBTSh2aWV3KTsKICAgICBVTlVTRURfUEFSQU0odGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNh
bGxiYWNrKTsKICAgICBVTlVTRURfUEFSQU0ocm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJh
Y2spOwogICAgIFVOVVNFRF9QQVJBTShjbGVhclRleHRJbmRpY2F0b3IpOwotICAgIAogICAgIHJl
dHVybiBuaWw7CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAKKwogICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICAKIH0KIAogdm9pZCBEaWN0aW9uYXJ5TG9va3Vw
OjpzaG93UG9wdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5m
bywgQ29jb2FWaWV3ICp2aWV3LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRv
ciYpPiYgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0
aW9uPEZsb2F0UmVjdChGbG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJh
Y2ssIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikK
</data>

          </attachment>
      

    </bug>

</bugzilla>