<?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>236186</bug_id>
          
          <creation_ts>2022-02-05 16:24:29 -0800</creation_ts>
          <short_desc>[LBSE] Generalize RenderLayer::renderBoxLocation(), adding support for SVG layers</short_desc>
          <delta_ts>2022-02-07 05:54:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</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>90738</blocked>
    
    <blocked>236192</blocked>
    
    <blocked>236194</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>annulen</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1837814</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-02-05 16:24:29 -0800</bug_when>
    <thetext>Prepare RenderLayer/RenderLayerBacking for RenderSVGModelObject support:

Rename renderBoxLocation() -&gt; rendererLocation() and extended it to support RenderSVGModelObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837825</commentid>
    <comment_count>1</comment_count>
      <attachid>451011</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-02-05 16:33:13 -0800</bug_when>
    <thetext>Created attachment 451011
Patch, v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837862</commentid>
    <comment_count>2</comment_count>
      <attachid>451028</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-02-06 02:33:08 -0800</bug_when>
    <thetext>Created attachment 451028
Patch, v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837863</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-02-06 02:35:49 -0800</bug_when>
    <thetext>Forgot to include the Headers.cmake changes necessary to copy some new SVG headers to PrivateHeaders - patch v1 already included the necessary Xcode project changes, v2 also the CMake related changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838051</commentid>
    <comment_count>4</comment_count>
      <attachid>451028</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-02-07 03:27:02 -0800</bug_when>
    <thetext>Comment on attachment 451028
Patch, v2

View in context: https://bugs.webkit.org/attachment.cgi?id=451028&amp;action=review

&gt; Source/WebCore/Headers.cmake:1917
&gt; +    rendering/svg/SVGRenderSupport.h

Why is this needed exactly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838052</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-02-07 03:30:43 -0800</bug_when>
    <thetext>(In reply to Rob Buis from comment #4)
&gt; Comment on attachment 451028 [details]
&gt; Patch, v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=451028&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Headers.cmake:1917
&gt; &gt; +    rendering/svg/SVGRenderSupport.h
&gt; 
&gt; Why is this needed exactly?

rendererLocation() is inlined in RenderLayer.h, and therefore RenderLayer.h needs to include RenderBox.h. To generalize this to additionally support RenderSVGModelObject, RenderLayer.h needs to include RenderSVGModelObject.h to be able to perform the is&lt;...&gt;/downcast&lt;...&gt; type system.

RenderLayer.h is utilized by projects outside of WebCore utilizing the WebCore PrivateHeaders/. Therefore RenderSVGModelObject.h and all its included need to be marked as &apos;private headers&apos; in both the Xcode and CMake project files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838088</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-02-07 05:53:53 -0800</bug_when>
    <thetext>Committed r289210 (246895@trunk): &lt;https://commits.webkit.org/246895@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838089</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-07 05:54:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/88568285&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451011</attachid>
            <date>2022-02-05 16:33:13 -0800</date>
            <delta_ts>2022-02-06 02:33:03 -0800</delta_ts>
            <desc>Patch, v1</desc>
            <filename>bug-236186-20220205163312.patch</filename>
            <type>text/plain</type>
            <size>21992</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg5ZWU5MzVlZWJmNmM0
ZWQ1NGRmNjNhZGVkMmY3ZTVmYzkwMTQ0Ni4uZWRiZmUxZDllZjU4YmIwNjU3NzNjMGJhNzFmZGIy
MWNmMmI4OGVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIyLTAyLTA1ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBHZW5lcmFsaXplIFJlbmRlckxheWVyOjpyZW5kZXJCb3hMb2NhdGlvbigpLCBhZGRpbmcgc3Vw
cG9ydCBmb3IgU1ZHIGxheWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM2MTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIGxheWVyLWF3YXJlIFJlbmRlclNWR01vZGVsT2JqZWN0IGV4cG9zZXMg
YSAnbGF5b3V0TG9jYXRpb24oKScgbWV0aG9kIHdoaWNoIG1pbWljcworICAgICAgICB0aGUgQ1NT
ICdsb2NhdGlvbigpJyBvZiBhIFJlbmRlckJveCAtLSB0aGUgbGF5b3V0IHByb2NlZHVyZSBpdHNl
bGYgdGFrZXMgY2FyZSBvZgorICAgICAgICBjb21wdXRpbmcgdGhlc2UgcXVhbnRpdGllcyBpbiB0
aGUgY29ycmVjdCBDU1MgY29vcmRpbmF0ZSBzeXN0ZW0uIFRoZXJlZm9yZSwgaW4KKyAgICAgICAg
UmVuZGVyTGF5ZXIgd2UgY2FuIHVzZSBSZW5kZXJTVkdNb2RlbE9iamVjdCBsYXlvdXRMb2NhdGlv
bigpIGFzIGRyb3AtaW4gcmVwbGFjbWVudAorICAgICAgICBmb3IgdGhlIGxvY2F0aW9uKCkgbWV0
aG9kIG9mIGEgUmVuZGVyQm94IHdoZW4gaGFuZGxpbmcgU1ZHIHByaW1pdGl2ZXMsIHdoaWxlCisg
ICAgICAgIGtlZXBpbmcgdGhlIHJlc3Qgb2YgUmVuZGVyTGF5ZXIgYXMgbXVjaCAiU1ZHIHVuYXdh
cmUiIGFzIHBvc3NpYmxlLgorCisgICAgICAgIHJlbmRlckJveExvY2F0aW9uKCkgaXMgcmVuYW1l
ZCB0byByZW5kZXJlckxvY2F0aW9uKCkgYW5kIGV4dGVuZGVkIHRvIHN1cHBvcnQKKyAgICAgICAg
UmVuZGVyU1ZHTW9kZWxPYmplY3QuIFRvIGtlZXAgcmVuZGVyZXJMb2NhdGlvbigpIGlubGluZSwg
UmVuZGVyTGF5ZXIgbmVlZHMgdG8KKyAgICAgICAgaW5jbHVkZSBSZW5kZXJTVkdNb2RlbE9iamVj
dCwgd2hpY2ggY3VycmVudGx5IGluY2x1ZGVzIHRoZSBSZW5kZXJMYXllciBoZWFkZXIuCisgICAg
ICAgIEZpeCB0aGF0LCBieSBpbmNsdWRpbmcgUmVuZGVyQm94LmggYW5kIGlubGluaW5nIHRoZSAn
ZWxlbWVudCgpJyBmdW5jdGlvbiwgaW4KKyAgICAgICAgUmVuZGVyU1ZHTW9kZWxPYmplY3RJbmxp
bmVzLmggLSBpbiB0aGUgc2FtZSBzcGlyaXQgYXMgUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmguCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW91
ci4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnBhaW50QmFja2dyb3VuZEZvckZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRzV2l0aFBoYXNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludE91dGxpbmVGb3JGcmFnbWVudHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TWFza0ZvckZyYWdtZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRDaGlsZENsaXBwaW5nTWFza0ZvckZyYWdt
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRPdmVyZmxvd0NvbnRy
b2xzRm9yRnJhZ21lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjb2xsZWN0
RXZlbnRSZWdpb25Gb3JGcmFnbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OmhpdFRlc3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGl0VGVzdENv
bnRlbnRzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW5kZXJlckxvY2F0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW5kZXJCb3hMb2NhdGlvbiBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmVsZW1lbnQgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3RJbmxpbmVz
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGVJbmxpbmVzLmguCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6ZWxl
bWVudCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZUlubGlu
ZXMuaDoKKwogMjAyMi0wMi0wNSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AaWdh
bGlhLmNvbT4KIAogICAgICAgICBbTEJTRV0gQmVnaW4gc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiB0
cmFuc2Zvcm0gc3VwcG9ydCBmb3IgU1ZHIGxheWVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRhNzhlYTllNGQ5ZGIxMzcxZGE3
ZjU0ZmUyNGZkZTUzNzBiZTgzNWQuLjM3MGQxMGE5MTdlMjU0ZDc3YTRiNzE5YjFiZTExMGJkZjJl
OTc2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI0Miw3ICsyNDIsNyBAQAogCQkwODFFQkYzQjBGRDM0RjQxMDBEQTc1NTkg
LyogU1ZHRmlsdGVyQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDgxRUJGMzkwRkQzNEY0MTAwREE3NTU5IC8qIFNWR0ZpbHRlckJ1aWxkZXIu
aCAqLzsgfTsKIAkJMDgzREFFQTcwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9s
TXVsdGlMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUu
aCAqLzsgfTsKIAkJMDgzREFFQTkwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDgzREFFQTUwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5oICovOyB9OwotCQkwODQ0QjAxRDEyNTVCNEU2MDBCOUNERDAgLyogU1ZHQm91bmRpbmdCb3hD
b21wdXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDg0NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24u
aCAqLzsgfTsKKwkJMDg0NEIwMUQxMjU1QjRFNjAwQjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29t
cHV0YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA4NDRCMDFEMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDg0NEIw
MUQxMjU1QjVBNjEwQjhBRkQxIC8qIFNWR0NvbnRhaW5lckxheW91dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg0NEIwMUQxMjU1RTVBNjEwQjhBRkQx
IC8qIFNWR0NvbnRhaW5lckxheW91dC5oICovOyB9OwogCQkwODQ1NjgwODEyQjkwREE2MDA5NjBB
OUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4NTRCMDE1MTI1
NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5k
ZXJTVkdJbmxpbmUuaCAqLzsgfTsKQEAgLTEyNjQsMTIgKzEyNjQsMTIgQEAKIAkJNDM2NzA4RTkx
MkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEFBMTJEOUNB
NEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggKi87IH07CiAJ
CTQzNjcwOEVCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2NzA4QUMx
MkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmggKi87IH07CiAJ
CTQzNjcwOEVFMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdNYXJrZXJEYXRhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDhBRjEyRDlDQTRCMDAwNDQy
MzQgLyogU1ZHTWFya2VyRGF0YS5oICovOyB9OwotCQk0MzY3MDhGMjEyRDlDQTRCMDAwNDQyMzQg
LyogU1ZHUmVuZGVyU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDM2NzA4QjMxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR1JlbmRlclN1cHBvcnQu
aCAqLzsgfTsKKwkJNDM2NzA4RjIxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR1JlbmRlclN1cHBvcnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEIz
MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZW5kZXJTdXBwb3J0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDM2NzA4RjQxMkQ5Q0E0QjAwMDQ0MjM0
IC8qIFNWR1JlbmRlclRyZWVBc1RleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQzNjcwOEI1MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZW5kZXJUcmVl
QXNUZXh0LmggKi87IH07CiAJCTQzNjcwOEY2MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJj
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcw
OEI3MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJjZXMuaCAqLzsgfTsKIAkJNDM2NzA4Rjgx
MkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR1Jlc291cmNlc0NhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDhCOTEyRDlDQTRCMDAwNDQyMzQgLyog
U1ZHUmVzb3VyY2VzQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0MzY3MDhGQTEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHUmVzb3VyY2VzQ3lj
bGVTb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQzNjcwOEJCMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJjZXNDeWNsZVNvbHZlci5oICov
OyB9OwotCQk0MzY3MEM5MzQyRDlCQzRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEZE
MTJEOUNBNEEwMDAzMjExNCAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdC5oICovOyB9OworCQk0MzY3
MEM5MzQyRDlCQzRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEZEMTJEOUNBNEEwMDAz
MjExNCAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQzOTA0NkQ4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5k
ZXJNYXRoTUxCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDM5MDQ2QzQxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEJsb2NrLmggKi87
IH07CiAJCTQzOTA0NkRBMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGZW5jZWQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzOTA0NkM2MTJE
QTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGZW5jZWQuaCAqLzsgfTsKIAkJNDM5MDQ2REEx
MkRBMjVFODAwQUY4MUIzIC8qIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzkwNDZDNjEyREEyNUU4MDBB
RjgxQjMgLyogUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuaCAqLzsgfTsKQEAgLTQ2NDEsNiAr
NDY0MSw3IEBACiAJCUNERjc0N0U2MjcwRjY5NjYwMDhGRUVFQyAvKiBTVkdJbmxpbmVUZXh0Qm94
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RGNzQ3RTUyNzBGNjk2NjAwOEZFRUVDIC8qIFNWR0lubGluZVRleHRCb3hJbmxpbmVzLmggKi87
IH07CiAJCUNERjc0N0U5MjcwRjZDQUUwMDhGRUVFQyAvKiBSZW5kZXJTVkdJbmxpbmVJbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdF
ODI3MEY2Q0FFMDA4RkVFRUMgLyogUmVuZGVyU1ZHSW5saW5lSW5saW5lcy5oICovOyB9OwogCQlD
REY3NDdFQjI3MEY2RDg4MDA4RkVFRUMgLyogUmVuZGVyU1ZHQmxvY2tJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdFQTI3MEY2RDg4
MDA4RkVFRUMgLyogUmVuZGVyU1ZHQmxvY2tJbmxpbmVzLmggKi87IH07CisJCUNERjc0N0VCMzYx
QUFDNzcwMTNGRUVFQyAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdElubGluZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0VBMzYxQUFDNzcwMTNG
RUVFQyAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdElubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RUQy
NzBGNkVEMTAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlRmlsdGVySW5saW5lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RUMyNzBGNkVE
MTAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlRmlsdGVySW5saW5lcy5oICovOyB9OwogCQlD
REY3NDdFRjI3MEY2RjhEMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVySW5saW5l
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3
RUUyNzBGNkY4RDAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcklubGluZXMuaCAq
LzsgfTsKIAkJQ0RGNzQ3RjEyNzBGNzY2RjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFy
a2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RGNzQ3RjAyNzBGNzY2RjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5s
aW5lcy5oICovOyB9OwpAQCAtMTYzNDQsNiArMTYzNDUsNyBAQAogCQlDREY3NDdFNTI3MEY2OTY2
MDA4RkVFRUMgLyogU1ZHSW5saW5lVGV4dEJveElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
SW5saW5lVGV4dEJveElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RG
NzQ3RTgyNzBGNkNBRTAwOEZFRUVDIC8qIFJlbmRlclNWR0lubGluZUlubGluZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyU1ZHSW5saW5lSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREY3NDdFQTI3MEY2RDg4MDA4RkVFRUMgLyogUmVuZGVyU1ZHQmxvY2tJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR0Jsb2NrSW5saW5lcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDREY3NDdFQTM2MUFBQzc3MDEzRkVFRUMgLyogUmVuZGVyU1ZHTW9k
ZWxPYmplY3RJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR01vZGVsT2JqZWN0SW5s
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdFQzI3MEY2RUQxMDA4
RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbmRlclNWR1Jlc291cmNlRmlsdGVySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREY3NDdFRTI3MEY2RjhEMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VDbGlw
cGVySW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXJJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0YwMjcwRjc2NkYwMDhG
RUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xOTAyNiw2ICsxOTAyOCw3IEBACiAJCQkJMDg1NEIwMDUxMjU1RTRFNjAwQjlDREQw
IC8qIFJlbmRlclNWR0lubGluZVRleHQuaCAqLywKIAkJCQk0MzY3MDg4RDM0RTlDQTRBMDAwNDQy
MzQgLyogUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwICovLAogCQkJCTQzNjcwOEZEMTJEOUNBNEEw
MDAzMjExNCAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdC5oICovLAorCQkJCUNERjc0N0VBMzYxQUFD
NzcwMTNGRUVFQyAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdElubGluZXMuaCAqLywKIAkJCQlBRERG
MUFENDEyNTdDRDlBMDAwM0E3NTkgLyogUmVuZGVyU1ZHUGF0aC5jcHAgKi8sCiAJCQkJQURERjFB
RDUxMjU3Q0Q5QTAwMDNBNzU5IC8qIFJlbmRlclNWR1BhdGguaCAqLywKIAkJCQlBMTBCQjU4MjE0
ODRFM0E3MDBCM0FCNkQgLyogUmVuZGVyU1ZHUmVjdC5jcHAgKi8sCkBAIC0zNjg1Myw2ICszNjg1
Niw3IEBACiAJCQkJQ0RGNzQ3RTkyNzBGNkNBRTAwOEZFRUVDIC8qIFJlbmRlclNWR0lubGluZUlu
bGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NTRCMDE3MTI1NUU0RTYwMEI5Q0REMCAvKiBS
ZW5kZXJTVkdJbmxpbmVUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MEM5MzQyRDlCQzRC
MDAwNDQyMzQgLyogUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
Rjc0N0VCMzYxQUFDNzcwMTNGRUVFQyAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdElubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUFEREYxQUQ3MTI1N0NEOUEwMDAzQTc1OSAvKiBSZW5kZXJTVkdQ
YXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBCQjU4NTE0ODRFM0E3MDBCM0FCNkQgLyogUmVu
ZGVyU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4Q0QxMkQ5Q0E0QjAwMDQ0MjM0
IC8qIFJlbmRlclNWR1Jlc291cmNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDE4M2NiMTVhM2ZjOGQ3ZWE4OGFkODg3ZWM1MGQ0
ZTc0ZmUwOWIxZjguLjFlMmE5YWE0OWZhMjlhNmFkOTAxMTlmY2U1Zjg2OGUwNTRmZjhkMGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzc5NSw3ICszNzk1
LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRCYWNrZ3JvdW5kRm9yRnJhZ21lbnRzKGNvbnN0
IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW4KICAgICAgICAgLy8gUGFpbnQgdGhlIGJhY2tn
cm91bmQuCiAgICAgICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlIHdpbGwgY29sbGVjdCB0aGUg
cmVnaW9uIGZyb20gdGhlIGZyYWdtZW50IGl0c2VsZiBpbnN0ZWFkIG9mIGp1c3QgZnJvbSB0aGUg
cGFpbnQgaW5mby4KICAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhjb250ZXh0LCBmcmFnbWVu
dC5iYWNrZ3JvdW5kUmVjdC5yZWN0KCksIFBhaW50UGhhc2U6OkJsb2NrQmFja2dyb3VuZCwgcGFp
bnRCZWhhdmlvciwgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyLCBudWxscHRyLCBudWxscHRy
LCAmbG9jYWxQYWludGluZ0luZm8ucm9vdExheWVyLT5yZW5kZXJlcigpLCB0aGlzKTsKLSAgICAg
ICAgcmVuZGVyZXIoKS5wYWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5
ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlckJveExvY2F0aW9uKCkgKyBsb2NhbFBhaW50aW5n
SW5mby5zdWJwaXhlbE9mZnNldCkpOworICAgICAgICByZW5kZXJlcigpLnBhaW50KHBhaW50SW5m
bywgdG9MYXlvdXRQb2ludChmcmFnbWVudC5sYXllckJvdW5kcy5sb2NhdGlvbigpIC0gcmVuZGVy
ZXJMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQpKTsKICAgICB9
CiB9CiAKQEAgLTM4NzcsNyArMzg3Nyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50Rm9yZWdy
b3VuZEZvckZyYWdtZW50c1dpdGhQaGFzZShQYWludFBoYXNlIHBoYXNlLCBjb25zdCBMCiAgICAg
ICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3Qu
cmVjdCgpLCBwaGFzZSwgcGFpbnRCZWhhdmlvciwgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVy
LCBudWxscHRyLCBudWxscHRyLCAmbG9jYWxQYWludGluZ0luZm8ucm9vdExheWVyLT5yZW5kZXJl
cigpLCB0aGlzLCBsb2NhbFBhaW50aW5nSW5mby5yZXF1aXJlU2VjdXJpdHlPcmlnaW5BY2Nlc3NG
b3JXaWRnZXRzKTsKICAgICAgICAgaWYgKHBoYXNlID09IFBhaW50UGhhc2U6OkZvcmVncm91bmQp
CiAgICAgICAgICAgICBwYWludEluZm8ub3ZlcmxhcFRlc3RSZXF1ZXN0cyA9IGxvY2FsUGFpbnRp
bmdJbmZvLm92ZXJsYXBUZXN0UmVxdWVzdHM7Ci0gICAgICAgIHJlbmRlcmVyKCkucGFpbnQocGFp
bnRJbmZvLCB0b0xheW91dFBvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSBy
ZW5kZXJCb3hMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQpKTsK
KyAgICAgICAgcmVuZGVyZXIoKS5wYWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQoZnJhZ21l
bnQubGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlcmVyTG9jYXRpb24oKSArIGxvY2FsUGFp
bnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSk7CiAgICAgfQogfQogCkBAIC0zODk1LDcgKzM4OTUs
NyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludE91dGxpbmVGb3JGcmFnbWVudHMoY29uc3QgTGF5
ZXJGcmFnbWVudHMmIGxheWVyRnJhZ21lbnRzLAogICAgICAgICBFdmVudFJlZ2lvbkNvbnRleHRT
dGF0ZVNhdmVyIGV2ZW50UmVnaW9uU3RhdGVTYXZlcihsb2NhbFBhaW50aW5nSW5mby5ldmVudFJl
Z2lvbkNvbnRleHQpOwogCiAgICAgICAgIGNsaXBUb1JlY3QoY29udGV4dCwgc3RhdGVTYXZlciwg
ZXZlbnRSZWdpb25TdGF0ZVNhdmVyLCBsb2NhbFBhaW50aW5nSW5mbywgcGFpbnRCZWhhdmlvciwg
ZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QsIERvTm90SW5jbHVkZVNlbGZGb3JCb3JkZXJSYWRpdXMp
OwotICAgICAgICByZW5kZXJlcigpLnBhaW50KHBhaW50SW5mbywgdG9MYXlvdXRQb2ludChmcmFn
bWVudC5sYXllckJvdW5kcy5sb2NhdGlvbigpIC0gcmVuZGVyQm94TG9jYXRpb24oKSArIGxvY2Fs
UGFpbnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSk7CisgICAgICAgIHJlbmRlcmVyKCkucGFpbnQo
cGFpbnRJbmZvLCB0b0xheW91dFBvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkg
LSByZW5kZXJlckxvY2F0aW9uKCkgKyBsb2NhbFBhaW50aW5nSW5mby5zdWJwaXhlbE9mZnNldCkp
OwogICAgIH0KIH0KIApAQCAtMzkxNSw3ICszOTE1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFp
bnRNYXNrRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW50cywg
R3IKICAgICAgICAgLy8gUGFpbnQgdGhlIG1hc2suCiAgICAgICAgIC8vIEZJWE1FOiBFdmVudHVh
bGx5IHdlIHdpbGwgY29sbGVjdCB0aGUgcmVnaW9uIGZyb20gdGhlIGZyYWdtZW50IGl0c2VsZiBp
bnN0ZWFkIG9mIGp1c3QgZnJvbSB0aGUgcGFpbnQgaW5mby4KICAgICAgICAgUGFpbnRJbmZvIHBh
aW50SW5mbyhjb250ZXh0LCBmcmFnbWVudC5iYWNrZ3JvdW5kUmVjdC5yZWN0KCksIFBhaW50UGhh
c2U6Ok1hc2ssIHBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5kZXJlciwgbnVs
bHB0ciwgbnVsbHB0ciwgJmxvY2FsUGFpbnRpbmdJbmZvLnJvb3RMYXllci0+cmVuZGVyZXIoKSwg
dGhpcyk7Ci0gICAgICAgIHJlbmRlcmVyKCkucGFpbnQocGFpbnRJbmZvLCB0b0xheW91dFBvaW50
KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJCb3hMb2NhdGlvbigpICsg
bG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQpKTsKKyAgICAgICAgcmVuZGVyZXIoKS5w
YWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5ZXJCb3VuZHMubG9jYXRp
b24oKSAtIHJlbmRlcmVyTG9jYXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1YnBpeGVsT2Zm
c2V0KSk7CiAgICAgfQogfQogCkBAIC0zOTMzLDcgKzM5MzMsNyBAQCB2b2lkIFJlbmRlckxheWVy
OjpwYWludENoaWxkQ2xpcHBpbmdNYXNrRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRz
JiBsYXllcgogCiAgICAgICAgIC8vIFBhaW50IHRoZSBjbGlwcGVkIG1hc2suCiAgICAgICAgIFBh
aW50SW5mbyBwYWludEluZm8oY29udGV4dCwgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QucmVjdCgp
LCBQYWludFBoYXNlOjpDbGlwcGluZ01hc2ssIHBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWludFJv
b3RGb3JSZW5kZXJlciwgbnVsbHB0ciwgbnVsbHB0ciwgJmxvY2FsUGFpbnRpbmdJbmZvLnJvb3RM
YXllci0+cmVuZGVyZXIoKSwgdGhpcyk7Ci0gICAgICAgIHJlbmRlcmVyKCkucGFpbnQocGFpbnRJ
bmZvLCB0b0xheW91dFBvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5k
ZXJCb3hMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQpKTsKKyAg
ICAgICAgcmVuZGVyZXIoKS5wYWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQu
bGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlcmVyTG9jYXRpb24oKSArIGxvY2FsUGFpbnRp
bmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSk7CiAgICAgfQogfQogCkBAIC0zOTQ5LDcgKzM5NDksNyBA
QCB2b2lkIFJlbmRlckxheWVyOjpwYWludE92ZXJmbG93Q29udHJvbHNGb3JGcmFnbWVudHMoY29u
c3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRgogICAgICAgICBFdmVudFJlZ2lvbkNvbnRleHRTdGF0
ZVNhdmVyIGV2ZW50UmVnaW9uU3RhdGVTYXZlcihsb2NhbFBhaW50aW5nSW5mby5ldmVudFJlZ2lv
bkNvbnRleHQpOwogCiAgICAgICAgIGNsaXBUb1JlY3QoY29udGV4dCwgc3RhdGVTYXZlciwgZXZl
bnRSZWdpb25TdGF0ZVNhdmVyLCBsb2NhbFBhaW50aW5nSW5mbywgeyB9LCBmcmFnbWVudC5iYWNr
Z3JvdW5kUmVjdCk7Ci0gICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPnBhaW50T3ZlcmZsb3dDb250
cm9scyhjb250ZXh0LCByb3VuZGVkSW50UG9pbnQodG9MYXlvdXRQb2ludChmcmFnbWVudC5sYXll
ckJvdW5kcy5sb2NhdGlvbigpIC0gcmVuZGVyQm94TG9jYXRpb24oKSArIGxvY2FsUGFpbnRpbmdJ
bmZvLnN1YnBpeGVsT2Zmc2V0KSksIHNuYXBwZWRJbnRSZWN0KGZyYWdtZW50LmJhY2tncm91bmRS
ZWN0LnJlY3QoKSksIHRydWUpOworICAgICAgICBtX3Njcm9sbGFibGVBcmVhLT5wYWludE92ZXJm
bG93Q29udHJvbHMoY29udGV4dCwgcm91bmRlZEludFBvaW50KHRvTGF5b3V0UG9pbnQoZnJhZ21l
bnQubGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlcmVyTG9jYXRpb24oKSArIGxvY2FsUGFp
bnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSksIHNuYXBwZWRJbnRSZWN0KGZyYWdtZW50LmJhY2tn
cm91bmRSZWN0LnJlY3QoKSksIHRydWUpOwogICAgIH0KIH0KIApAQCAtMzk2MCw3ICszOTYwLDcg
QEAgdm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdEV2ZW50UmVnaW9uRm9yRnJhZ21lbnRzKGNvbnN0
IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWcKICAgICBmb3IgKGNvbnN0IGF1dG8mIGZyYWdtZW50
IDogbGF5ZXJGcmFnbWVudHMpIHsKICAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhjb250ZXh0
LCBmcmFnbWVudC5mb3JlZ3JvdW5kUmVjdC5yZWN0KCksIFBhaW50UGhhc2U6OkV2ZW50UmVnaW9u
LCBwYWludEJlaGF2aW9yKTsKICAgICAgICAgcGFpbnRJbmZvLmV2ZW50UmVnaW9uQ29udGV4dCA9
IGxvY2FsUGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uQ29udGV4dDsKLSAgICAgICAgcmVuZGVyZXIo
KS5wYWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5ZXJCb3VuZHMubG9j
YXRpb24oKSAtIHJlbmRlckJveExvY2F0aW9uKCkgKyBsb2NhbFBhaW50aW5nSW5mby5zdWJwaXhl
bE9mZnNldCkpOworICAgICAgICByZW5kZXJlcigpLnBhaW50KHBhaW50SW5mbywgdG9MYXlvdXRQ
b2ludChmcmFnbWVudC5sYXllckJvdW5kcy5sb2NhdGlvbigpIC0gcmVuZGVyZXJMb2NhdGlvbigp
ICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQpKTsKICAgICB9CiB9CiAKQEAgLTQy
MzEsNyArNDIzMSw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExheWVyKFJl
bmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlckxheWVyKiBjb250CiAKICAgICBhdXRvIG9mZnNl
dEZyb21Sb290ID0gb2Zmc2V0RnJvbUFuY2VzdG9yKHJvb3RMYXllcik7CiAgICAgLy8gRklYTUU6
IFdlIG5lZWQgdG8gY29ycmVjdGx5IGhpdCB0ZXN0IHRoZSBjbGlwLXBhdGggd2hlbiB3ZSBoYXZl
IGEgUmVuZGVySW5saW5lIHRvby4KLSAgICBpZiAoYXV0byogcmVuZGVyZXJCb3ggPSB0aGlzLT5y
ZW5kZXJCb3goKTsgcmVuZGVyZXJCb3ggJiYgIXJlbmRlcmVyQm94LT5oaXRUZXN0Q2xpcFBhdGgo
aGl0VGVzdExvY2F0aW9uLCB0b0xheW91dFBvaW50KG9mZnNldEZyb21Sb290IC0gdG9MYXlvdXRT
aXplKHJlbmRlckJveExvY2F0aW9uKCkpKSkpCisgICAgaWYgKGF1dG8qIHJlbmRlcmVyQm94ID0g
dGhpcy0+cmVuZGVyQm94KCk7IHJlbmRlcmVyQm94ICYmICFyZW5kZXJlckJveC0+aGl0VGVzdENs
aXBQYXRoKGhpdFRlc3RMb2NhdGlvbiwgdG9MYXlvdXRQb2ludChvZmZzZXRGcm9tUm9vdCAtIHRv
TGF5b3V0U2l6ZShyZW5kZXJlckxvY2F0aW9uKCkpKSkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgLy8gQmVnaW4gYnkgd2Fsa2luZyBvdXIgbGlzdCBvZiBwb3NpdGl2ZSBsYXllcnMg
ZnJvbSBoaWdoZXN0IHotaW5kZXggZG93biB0byB0aGUgbG93ZXN0IHotaW5kZXguCkBAIC00NDA1
LDcgKzQ0MDUsNyBAQCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0Q29udGVudHMoY29uc3QgSGl0
VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmCiB7CiAgICAgQVNTRVJUKGlzU2Vs
ZlBhaW50aW5nTGF5ZXIoKSB8fCBoYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoKSk7CiAK
LSAgICBpZiAoIXJlbmRlcmVyKCkuaGl0VGVzdChyZXF1ZXN0LCByZXN1bHQsIGhpdFRlc3RMb2Nh
dGlvbiwgdG9MYXlvdXRQb2ludChsYXllckJvdW5kcy5sb2NhdGlvbigpIC0gcmVuZGVyQm94TG9j
YXRpb24oKSksIGhpdFRlc3RGaWx0ZXIpKSB7CisgICAgaWYgKCFyZW5kZXJlcigpLmhpdFRlc3Qo
cmVxdWVzdCwgcmVzdWx0LCBoaXRUZXN0TG9jYXRpb24sIHRvTGF5b3V0UG9pbnQobGF5ZXJCb3Vu
ZHMubG9jYXRpb24oKSAtIHJlbmRlcmVyTG9jYXRpb24oKSksIGhpdFRlc3RGaWx0ZXIpKSB7CiAg
ICAgICAgIC8vIEl0J3Mgd3JvbmcgdG8gc2V0IGlubmVyTm9kZSwgYnV0IHRoZW4gY2xhaW0gdGhh
dCB5b3UgZGlkbid0IGhpdCBhbnl0aGluZywgdW5sZXNzIGl0IGlzCiAgICAgICAgIC8vIGEgcmVj
dC1iYXNlZCB0ZXN0LgogICAgICAgICBBU1NFUlQoIXJlc3VsdC5pbm5lck5vZGUoKSB8fCAocmVx
dWVzdC5yZXN1bHRJc0VsZW1lbnRMaXN0KCkgJiYgcmVzdWx0Lmxpc3RCYXNlZFRlc3RSZXN1bHQo
KS5zaXplKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggZTVl
NWVjOTQ4NGQ2MWNhN2Q5OWVhZTVlZjVkNGU2NTgyZGM5ZWJlNS4uNzY5NWU3OGJlZTY1ZWY1ZmFh
ZjBlOWM4ZTU0NmM4Y2EwNjMxYmQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRl
ICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKKyNpbmNsdWRlICJSZW5kZXJT
VkdNb2RlbE9iamVjdC5oIgogI2luY2x1ZGUgIlNjcm9sbEJlaGF2aW9yLmgiCiAjaW5jbHVkZSA8
bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgpAQCAtOTY3LDcgKzk2OCwxNiBAQCBw
cml2YXRlOgogCiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ1BhZ2luYXRpb25MYXllckluU3Vi
dHJlZShjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBQYWdpbmF0aW9uSW5jbHVzaW9uTW9k
ZSkgY29uc3Q7CiAKLSAgICBMYXlvdXRQb2ludCByZW5kZXJCb3hMb2NhdGlvbigpIGNvbnN0IHsg
cmV0dXJuIGlzPFJlbmRlckJveD4ocmVuZGVyZXIoKSkgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJl
bmRlcmVyKCkpLmxvY2F0aW9uKCkgOiBMYXlvdXRQb2ludCgpOyB9CisgICAgTGF5b3V0UG9pbnQg
cmVuZGVyZXJMb2NhdGlvbigpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoaXM8UmVuZGVyQm94
PihyZW5kZXJlcigpKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJCb3g+KHJl
bmRlcmVyKCkpLmxvY2F0aW9uKCk7CisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUp
CisgICAgICAgIGlmIChpczxSZW5kZXJTVkdNb2RlbE9iamVjdD4ocmVuZGVyZXIoKSkpCisgICAg
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyU1ZHTW9kZWxPYmplY3Q+KHJlbmRlcmVyKCkp
LmxheW91dExvY2F0aW9uKCk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIExheW91dFBvaW50KCk7
CisgICAgfQogCiAgICAgYm9vbCBzZXR1cEZvbnRTdWJwaXhlbFF1YW50aXphdGlvbihHcmFwaGlj
c0NvbnRleHQmLCBib29sJiBkaWRRdWFudGl6ZUZvbnRzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCmluZGV4IDc5MjRjZjhk
YzVmMTYxNzg3NzNlN2E3YWJkM2M1ZGJmNGExYmE3YTcuLjdiMmUzMTE0MTczZDczOGM5ZThmYWJj
MzU1MzBlZTYyN2I1ZjRmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKQEAgLTMyLDEwICszMiw5IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2lmIEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5HSU5FKQotI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdC5oIgogI2luY2x1ZGUgIlNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaCIKLSNp
bmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
Ym9vbCBjaGVja0ludGVyc2VjdGlvbihSZW5kZXJFbGVtZW50KiwgY29uc3QgRmxvYXRSZWN0Jik7
CiAgICAgc3RhdGljIGJvb2wgY2hlY2tFbmNsb3N1cmUoUmVuZGVyRWxlbWVudCosIGNvbnN0IEZs
b2F0UmVjdCYpOwogCi0gICAgU1ZHRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGRv
d25jYXN0PFNWR0VsZW1lbnQ+KG5vZGVGb3JOb25Bbm9ueW1vdXMoKSk7IH0KKyAgICBpbmxpbmUg
U1ZHRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0OwogCiAgICAgLy8gRklYTUU6IFtMQlNFXSBNYXJr
IGZpbmFsLCBhZGQgYXBwbHlUcmFuc2Zvcm0gdG8gUmVuZGVyTGF5ZXJNb2RlbE9iamVjdAogICAg
IHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBSZW5kZXJT
dHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHls
ZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0SW5saW5lcy5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdElubGluZXMuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zNDdhZDhkYWI2MmUzN2U5NmY0NGY3MDhjNTIzMmMyODk1Mjk3MjE0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2Rl
bE9iamVjdElubGluZXMuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAy
MDIyIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworaW5saW5lIFNWR0VsZW1lbnQmIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpl
bGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG93bmNhc3Q8U1ZHRWxlbWVudD4obm9kZUZv
ck5vbkFub255bW91cygpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlSW5saW5lcy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZUlubGluZXMuaApp
bmRleCAxNDUwOWY0ZjRlYTg1YWM3NTU0MzI5OTNiYjg4OGYxYmMwZDNjNWIxLi4zYjA5MjhjODA5
YzQxZmY3OGMwNDkxMTBmZjI4NjBmNzBhY2M3Mzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCisj
aW5jbHVkZSAiUmVuZGVyU1ZHTW9kZWxPYmplY3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUmVuZGVy
U1ZHU2hhcGUuaCIKICNpbmNsdWRlICJTVkdHcmFwaGljc0VsZW1lbnQuaCIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451028</attachid>
            <date>2022-02-06 02:33:08 -0800</date>
            <delta_ts>2022-02-07 03:45:36 -0800</delta_ts>
            <desc>Patch, v2</desc>
            <filename>bug-236186-20220206023307.patch</filename>
            <type>text/plain</type>
            <size>22700</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNhZjNlOTIwYTY3NTgw
Njg5ZDI0MzY4Y2EzMjFkN2U3ZTI2YjczMC4uOGQ2N2UxYTUzNjA5Njk3ZDA3OWQzNjJlZDFjZTBm
YTMxNDllMmNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIyLTAyLTA2ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBHZW5lcmFsaXplIFJlbmRlckxheWVyOjpyZW5kZXJCb3hMb2NhdGlvbigpLCBhZGRpbmcgc3Vw
cG9ydCBmb3IgU1ZHIGxheWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM2MTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIGxheWVyLWF3YXJlIFJlbmRlclNWR01vZGVsT2JqZWN0IGV4cG9zZXMg
YSAnbGF5b3V0TG9jYXRpb24oKScgbWV0aG9kIHdoaWNoIG1pbWljcworICAgICAgICB0aGUgQ1NT
ICdsb2NhdGlvbigpJyBvZiBhIFJlbmRlckJveCAtLSB0aGUgbGF5b3V0IHByb2NlZHVyZSBpdHNl
bGYgdGFrZXMgY2FyZSBvZgorICAgICAgICBjb21wdXRpbmcgdGhlc2UgcXVhbnRpdGllcyBpbiB0
aGUgY29ycmVjdCBDU1MgY29vcmRpbmF0ZSBzeXN0ZW0uIFRoZXJlZm9yZSwgaW4KKyAgICAgICAg
UmVuZGVyTGF5ZXIgd2UgY2FuIHVzZSBSZW5kZXJTVkdNb2RlbE9iamVjdCBsYXlvdXRMb2NhdGlv
bigpIGFzIGRyb3AtaW4gcmVwbGFjbWVudAorICAgICAgICBmb3IgdGhlIGxvY2F0aW9uKCkgbWV0
aG9kIG9mIGEgUmVuZGVyQm94IHdoZW4gaGFuZGxpbmcgU1ZHIHByaW1pdGl2ZXMsIHdoaWxlCisg
ICAgICAgIGtlZXBpbmcgdGhlIHJlc3Qgb2YgUmVuZGVyTGF5ZXIgYXMgbXVjaCAiU1ZHIHVuYXdh
cmUiIGFzIHBvc3NpYmxlLgorCisgICAgICAgIHJlbmRlckJveExvY2F0aW9uKCkgaXMgcmVuYW1l
ZCB0byByZW5kZXJlckxvY2F0aW9uKCkgYW5kIGV4dGVuZGVkIHRvIHN1cHBvcnQKKyAgICAgICAg
UmVuZGVyU1ZHTW9kZWxPYmplY3QuIFRvIGtlZXAgcmVuZGVyZXJMb2NhdGlvbigpIGlubGluZSwg
UmVuZGVyTGF5ZXIgbmVlZHMgdG8KKyAgICAgICAgaW5jbHVkZSBSZW5kZXJTVkdNb2RlbE9iamVj
dCwgd2hpY2ggY3VycmVudGx5IGluY2x1ZGVzIHRoZSBSZW5kZXJMYXllciBoZWFkZXIuCisgICAg
ICAgIEZpeCB0aGF0LCBieSBpbmNsdWRpbmcgUmVuZGVyQm94LmggYW5kIGlubGluaW5nIHRoZSAn
ZWxlbWVudCgpJyBmdW5jdGlvbiwgaW4KKyAgICAgICAgUmVuZGVyU1ZHTW9kZWxPYmplY3RJbmxp
bmVzLmggLSBpbiB0aGUgc2FtZSBzcGlyaXQgYXMgUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmguCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW91
ci4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6IEFkZCBuZXcgUHJpdmF0ZUhlYWRlcnM6IFJl
bmRlclNWR01vZGVsT2JqZWN0LmggLyBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggLyBTVkdS
ZW5kZXJTdXBwb3J0LmguCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50QmFja2dyb3VuZEZvckZyYWdtZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRz
V2l0aFBoYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludE91dGxpbmVG
b3JGcmFnbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TWFza0Zv
ckZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRDaGlsZENs
aXBwaW5nTWFza0ZvckZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
cGFpbnRPdmVyZmxvd0NvbnRyb2xzRm9yRnJhZ21lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjb2xsZWN0RXZlbnRSZWdpb25Gb3JGcmFnbWVudHMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6aGl0VGVzdENvbnRlbnRzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW5kZXJlckxvY2F0
aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW5kZXJCb3hMb2Nh
dGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdN
b2RlbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmVs
ZW1lbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
TW9kZWxPYmplY3RJbmxpbmVzLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmguCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdNb2RlbE9iamVjdDo6ZWxlbWVudCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdTaGFwZUlubGluZXMuaDoKKwogMjAyMi0wMi0wMyAgTmlrb2xhcyBaaW1tZXJtYW5u
ICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBbTEJTRV0gSGFuZGxlIFJlbmRl
clNWR1NoYXBlIGluIFNWR1JlbmRlclN1cHBvcnQ6OmFwcGx5U3Ryb2tlU3R5bGVUb0NvbnRleHQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggODIxNjVmZGM4MDhkMDNmNzk5YjAzYWE3ZWY3MzUyZTA4
ODhjZGRlZi4uM2ZjZTk1ZjU3NTY5ZGE3M2Q1MDkyOWJlNTQyY2ZiNzQ0OWQ3OWQ1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0xOTEyLDYgKzE5MTIsMTAgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHJlbmRlcmluZy9zdHlsZS9UZXh0VW5kZXJsaW5lT2Zmc2V0
LmgKICAgICByZW5kZXJpbmcvc3R5bGUvV2lsbENoYW5nZURhdGEuaAogCisgICAgcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisgICAgcmVuZGVyaW5nL3N2Zy9TVkdCb3VuZGlu
Z0JveENvbXB1dGF0aW9uLmgKKyAgICByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAor
CiAgICAgcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5oCiAKICAgICBzdG9yYWdlL1N0b3JhZ2UuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGRhNzhlYTllNGQ5ZGIxMzcxZGE3ZjU0ZmUyNGZkZTUzNzBiZTgzNWQuLjM3MGQxMGE5MTdl
MjU0ZDc3YTRiNzE5YjFiZTExMGJkZjJlOTc2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0Miw3ICsyNDIsNyBAQAogCQkw
ODFFQkYzQjBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgxRUJGMzkwRkQzNEY0MTAwREE3
NTU5IC8qIFNWR0ZpbHRlckJ1aWxkZXIuaCAqLzsgfTsKIAkJMDgzREFFQTcwRjAxQTdGQjAwMzQy
NzU0IC8qIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCAqLzsgfTsKIAkJMDgzREFFQTkwRjAxQTdGQjAwMzQy
NzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgzREFFQTUwRjAxQTdGQjAwMzQyNzU0IC8qIFJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oICovOyB9OwotCQkwODQ0QjAxRDEyNTVCNEU2MDBC
OUNERDAgLyogU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg0NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8qIFNW
R0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaCAqLzsgfTsKKwkJMDg0NEIwMUQxMjU1QjRFNjAwQjlD
REQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NDRCMDFEMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdC
b3VuZGluZ0JveENvbXB1dGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMDg0NEIwMUQxMjU1QjVBNjEwQjhBRkQxIC8qIFNWR0NvbnRhaW5l
ckxheW91dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDg0NEIwMUQxMjU1RTVBNjEwQjhBRkQxIC8qIFNWR0NvbnRhaW5lckxheW91dC5oICovOyB9Owog
CQkwODQ1NjgwODEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5
RiAvKiBGb250TWV0cmljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA4NTRCMDE1MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDAz
MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuaCAqLzsgfTsKQEAgLTEyNjQsMTIg
KzEyNjQsMTIgQEAKIAkJNDM2NzA4RTkxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQzNjcwOEFBMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyLmggKi87IH07CiAJCTQzNjcwOEVCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5k
ZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDM2NzA4QUMxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1ZpZXdw
b3J0Q29udGFpbmVyLmggKi87IH07CiAJCTQzNjcwOEVFMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdN
YXJrZXJEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MzY3MDhBRjEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHTWFya2VyRGF0YS5oICovOyB9OwotCQk0
MzY3MDhGMjEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHUmVuZGVyU3VwcG9ydC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2NzA4QjMxMkQ5Q0E0QjAwMDQ0
MjM0IC8qIFNWR1JlbmRlclN1cHBvcnQuaCAqLzsgfTsKKwkJNDM2NzA4RjIxMkQ5Q0E0QjAwMDQ0
MjM0IC8qIFNWR1JlbmRlclN1cHBvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQzNjcwOEIzMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZW5kZXJTdXBw
b3J0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NDM2NzA4RjQxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR1JlbmRlclRyZWVBc1RleHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEI1MTJEOUNBNEIw
MDA0NDIzNCAvKiBTVkdSZW5kZXJUcmVlQXNUZXh0LmggKi87IH07CiAJCTQzNjcwOEY2MTJEOUNB
NEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEI3MTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdSZXNvdXJj
ZXMuaCAqLzsgfTsKIAkJNDM2NzA4RjgxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR1Jlc291cmNlc0Nh
Y2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3
MDhCOTEyRDlDQTRCMDAwNDQyMzQgLyogU1ZHUmVzb3VyY2VzQ2FjaGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MzY3MDhGQTEyRDlDQTRCMDAw
NDQyMzQgLyogU1ZHUmVzb3VyY2VzQ3ljbGVTb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEJCMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdS
ZXNvdXJjZXNDeWNsZVNvbHZlci5oICovOyB9OwotCQk0MzY3MEM5MzQyRDlCQzRCMDAwNDQyMzQg
LyogUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQzNjcwOEZEMTJEOUNBNEEwMDAzMjExNCAvKiBSZW5kZXJTVkdNb2Rl
bE9iamVjdC5oICovOyB9OworCQk0MzY3MEM5MzQyRDlCQzRCMDAwNDQyMzQgLyogUmVuZGVyU1ZH
TW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQzNjcwOEZEMTJEOUNBNEEwMDAzMjExNCAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQzOTA0NkQ4
MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2QzQxMkRBMjVFODAwQUY4MEEyIC8q
IFJlbmRlck1hdGhNTEJsb2NrLmggKi87IH07CiAJCTQzOTA0NkRBMTJEQTI1RTgwMEFGODBBMiAv
KiBSZW5kZXJNYXRoTUxGZW5jZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQzOTA0NkM2MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGZW5j
ZWQuaCAqLzsgfTsKIAkJNDM5MDQ2REExMkRBMjVFODAwQUY4MUIzIC8qIFJlbmRlck1hdGhNTEZl
bmNlZE9wZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MzkwNDZDNjEyREEyNUU4MDBBRjgxQjMgLyogUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0
b3IuaCAqLzsgfTsKQEAgLTQ2NDEsNiArNDY0MSw3IEBACiAJCUNERjc0N0U2MjcwRjY5NjYwMDhG
RUVFQyAvKiBTVkdJbmxpbmVUZXh0Qm94SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RTUyNzBGNjk2NjAwOEZFRUVDIC8qIFNWR0lu
bGluZVRleHRCb3hJbmxpbmVzLmggKi87IH07CiAJCUNERjc0N0U5MjcwRjZDQUUwMDhGRUVFQyAv
KiBSZW5kZXJTVkdJbmxpbmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdFODI3MEY2Q0FFMDA4RkVFRUMgLyogUmVuZGVyU1ZHSW5s
aW5lSW5saW5lcy5oICovOyB9OwogCQlDREY3NDdFQjI3MEY2RDg4MDA4RkVFRUMgLyogUmVuZGVy
U1ZHQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREY3NDdFQTI3MEY2RDg4MDA4RkVFRUMgLyogUmVuZGVyU1ZHQmxvY2tJbmxpbmVz
LmggKi87IH07CisJCUNERjc0N0VCMzYxQUFDNzcwMTNGRUVFQyAvKiBSZW5kZXJTVkdNb2RlbE9i
amVjdElubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENERjc0N0VBMzYxQUFDNzcwMTNGRUVFQyAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdElubGlu
ZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RUQyNzBGNkVEMTAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291
cmNlRmlsdGVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RGNzQ3RUMyNzBGNkVEMTAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlRmls
dGVySW5saW5lcy5oICovOyB9OwogCQlDREY3NDdFRjI3MEY2RjhEMDA4RkVFRUMgLyogUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RUUyNzBGNkY4RDAwOEZFRUVDIC8qIFJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlcklubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RjEyNzBGNzY2RjAwOEZFRUVD
IC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RjAyNzBGNzY2RjAwOEZFRUVDIC8qIFJl
bmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oICovOyB9OwpAQCAtMTYzNDQsNiArMTYzNDUs
NyBAQAogCQlDREY3NDdFNTI3MEY2OTY2MDA4RkVFRUMgLyogU1ZHSW5saW5lVGV4dEJveElubGlu
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHSW5saW5lVGV4dEJveElubGluZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ3RTgyNzBGNkNBRTAwOEZFRUVDIC8qIFJlbmRlclNW
R0lubGluZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHSW5saW5lSW5saW5lcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdFQTI3MEY2RDg4MDA4RkVFRUMg
LyogUmVuZGVyU1ZHQmxvY2tJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR0Jsb2Nr
SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREY3NDdFQTM2MUFBQzc3
MDEzRkVFRUMgLyogUmVuZGVyU1ZHTW9kZWxPYmplY3RJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbmRlclNWR01vZGVsT2JqZWN0SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDREY3NDdFQzI3MEY2RUQxMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJJ
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291cmNlRmlsdGVySW5saW5lcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdFRTI3MEY2RjhEMDA4RkVFRUMg
LyogUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVySW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXJJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERjc0N0YwMjcwRjc2NkYwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcklu
bGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTAyNiw2ICsxOTAyOCw3IEBACiAJCQkJ
MDg1NEIwMDUxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQuaCAqLywKIAkJ
CQk0MzY3MDg4RDM0RTlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwICov
LAogCQkJCTQzNjcwOEZEMTJEOUNBNEEwMDAzMjExNCAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdC5o
ICovLAorCQkJCUNERjc0N0VBMzYxQUFDNzcwMTNGRUVFQyAvKiBSZW5kZXJTVkdNb2RlbE9iamVj
dElubGluZXMuaCAqLywKIAkJCQlBRERGMUFENDEyNTdDRDlBMDAwM0E3NTkgLyogUmVuZGVyU1ZH
UGF0aC5jcHAgKi8sCiAJCQkJQURERjFBRDUxMjU3Q0Q5QTAwMDNBNzU5IC8qIFJlbmRlclNWR1Bh
dGguaCAqLywKIAkJCQlBMTBCQjU4MjE0ODRFM0E3MDBCM0FCNkQgLyogUmVuZGVyU1ZHUmVjdC5j
cHAgKi8sCkBAIC0zNjg1Myw2ICszNjg1Niw3IEBACiAJCQkJQ0RGNzQ3RTkyNzBGNkNBRTAwOEZF
RUVDIC8qIFJlbmRlclNWR0lubGluZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NTRC
MDE3MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmVUZXh0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MzY3MEM5MzQyRDlCQzRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNERjc0N0VCMzYxQUFDNzcwMTNGRUVFQyAvKiBSZW5kZXJT
VkdNb2RlbE9iamVjdElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEREYxQUQ3MTI1N0NE
OUEwMDAzQTc1OSAvKiBSZW5kZXJTVkdQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBCQjU4
NTE0ODRFM0E3MDBCM0FCNkQgLyogUmVuZGVyU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDM2NzA4Q0QxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDc3YThh
Mjc4MTI5MjVhNWE0NjcyYzY1ZGY5OGNmN2FkYjI5NmZkZTcuLmE0YjQxMzc3ZWEwYzJkM2ExNzZl
MjcxZWZhNDQ0ODQ4ZGE2ZGNlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcApAQCAtMzc2Niw3ICszNzY2LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRCYWNr
Z3JvdW5kRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW4KICAg
ICAgICAgLy8gUGFpbnQgdGhlIGJhY2tncm91bmQuCiAgICAgICAgIC8vIEZJWE1FOiBFdmVudHVh
bGx5IHdlIHdpbGwgY29sbGVjdCB0aGUgcmVnaW9uIGZyb20gdGhlIGZyYWdtZW50IGl0c2VsZiBp
bnN0ZWFkIG9mIGp1c3QgZnJvbSB0aGUgcGFpbnQgaW5mby4KICAgICAgICAgUGFpbnRJbmZvIHBh
aW50SW5mbyhjb250ZXh0LCBmcmFnbWVudC5iYWNrZ3JvdW5kUmVjdC5yZWN0KCksIFBhaW50UGhh
c2U6OkJsb2NrQmFja2dyb3VuZCwgcGFpbnRCZWhhdmlvciwgc3VidHJlZVBhaW50Um9vdEZvclJl
bmRlcmVyLCBudWxscHRyLCBudWxscHRyLCAmbG9jYWxQYWludGluZ0luZm8ucm9vdExheWVyLT5y
ZW5kZXJlcigpLCB0aGlzKTsKLSAgICAgICAgcmVuZGVyZXIoKS5wYWludChwYWludEluZm8sIHRv
TGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlckJveExv
Y2F0aW9uKCkgKyBsb2NhbFBhaW50aW5nSW5mby5zdWJwaXhlbE9mZnNldCkpOworICAgICAgICBy
ZW5kZXJlcigpLnBhaW50KHBhaW50SW5mbywgdG9MYXlvdXRQb2ludChmcmFnbWVudC5sYXllckJv
dW5kcy5sb2NhdGlvbigpIC0gcmVuZGVyZXJMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8u
c3VicGl4ZWxPZmZzZXQpKTsKICAgICB9CiB9CiAKQEAgLTM4NDgsNyArMzg0OCw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnBhaW50Rm9yZWdyb3VuZEZvckZyYWdtZW50c1dpdGhQaGFzZShQYWludFBo
YXNlIHBoYXNlLCBjb25zdCBMCiAgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwg
ZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3QucmVjdCgpLCBwaGFzZSwgcGFpbnRCZWhhdmlvciwgc3Vi
dHJlZVBhaW50Um9vdEZvclJlbmRlcmVyLCBudWxscHRyLCBudWxscHRyLCAmbG9jYWxQYWludGlu
Z0luZm8ucm9vdExheWVyLT5yZW5kZXJlcigpLCB0aGlzLCBsb2NhbFBhaW50aW5nSW5mby5yZXF1
aXJlU2VjdXJpdHlPcmlnaW5BY2Nlc3NGb3JXaWRnZXRzKTsKICAgICAgICAgaWYgKHBoYXNlID09
IFBhaW50UGhhc2U6OkZvcmVncm91bmQpCiAgICAgICAgICAgICBwYWludEluZm8ub3ZlcmxhcFRl
c3RSZXF1ZXN0cyA9IGxvY2FsUGFpbnRpbmdJbmZvLm92ZXJsYXBUZXN0UmVxdWVzdHM7Ci0gICAg
ICAgIHJlbmRlcmVyKCkucGFpbnQocGFpbnRJbmZvLCB0b0xheW91dFBvaW50KGZyYWdtZW50Lmxh
eWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJCb3hMb2NhdGlvbigpICsgbG9jYWxQYWludGlu
Z0luZm8uc3VicGl4ZWxPZmZzZXQpKTsKKyAgICAgICAgcmVuZGVyZXIoKS5wYWludChwYWludElu
Zm8sIHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRl
cmVyTG9jYXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSk7CiAgICAg
fQogfQogCkBAIC0zODY2LDcgKzM4NjYsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludE91dGxp
bmVGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRnJhZ21lbnRzLAogICAg
ICAgICBFdmVudFJlZ2lvbkNvbnRleHRTdGF0ZVNhdmVyIGV2ZW50UmVnaW9uU3RhdGVTYXZlcihs
b2NhbFBhaW50aW5nSW5mby5ldmVudFJlZ2lvbkNvbnRleHQpOwogCiAgICAgICAgIGNsaXBUb1Jl
Y3QoY29udGV4dCwgc3RhdGVTYXZlciwgZXZlbnRSZWdpb25TdGF0ZVNhdmVyLCBsb2NhbFBhaW50
aW5nSW5mbywgcGFpbnRCZWhhdmlvciwgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QsIERvTm90SW5j
bHVkZVNlbGZGb3JCb3JkZXJSYWRpdXMpOwotICAgICAgICByZW5kZXJlcigpLnBhaW50KHBhaW50
SW5mbywgdG9MYXlvdXRQb2ludChmcmFnbWVudC5sYXllckJvdW5kcy5sb2NhdGlvbigpIC0gcmVu
ZGVyQm94TG9jYXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSk7Cisg
ICAgICAgIHJlbmRlcmVyKCkucGFpbnQocGFpbnRJbmZvLCB0b0xheW91dFBvaW50KGZyYWdtZW50
LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJlckxvY2F0aW9uKCkgKyBsb2NhbFBhaW50
aW5nSW5mby5zdWJwaXhlbE9mZnNldCkpOwogICAgIH0KIH0KIApAQCAtMzg4Niw3ICszODg2LDcg
QEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRNYXNrRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJh
Z21lbnRzJiBsYXllckZyYWdtZW50cywgR3IKICAgICAgICAgLy8gUGFpbnQgdGhlIG1hc2suCiAg
ICAgICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlIHdpbGwgY29sbGVjdCB0aGUgcmVnaW9uIGZy
b20gdGhlIGZyYWdtZW50IGl0c2VsZiBpbnN0ZWFkIG9mIGp1c3QgZnJvbSB0aGUgcGFpbnQgaW5m
by4KICAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhjb250ZXh0LCBmcmFnbWVudC5iYWNrZ3Jv
dW5kUmVjdC5yZWN0KCksIFBhaW50UGhhc2U6Ok1hc2ssIHBhaW50QmVoYXZpb3IsIHN1YnRyZWVQ
YWludFJvb3RGb3JSZW5kZXJlciwgbnVsbHB0ciwgbnVsbHB0ciwgJmxvY2FsUGFpbnRpbmdJbmZv
LnJvb3RMYXllci0+cmVuZGVyZXIoKSwgdGhpcyk7Ci0gICAgICAgIHJlbmRlcmVyKCkucGFpbnQo
cGFpbnRJbmZvLCB0b0xheW91dFBvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkg
LSByZW5kZXJCb3hMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQp
KTsKKyAgICAgICAgcmVuZGVyZXIoKS5wYWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQoZnJh
Z21lbnQubGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlcmVyTG9jYXRpb24oKSArIGxvY2Fs
UGFpbnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSk7CiAgICAgfQogfQogCkBAIC0zOTA0LDcgKzM5
MDQsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludENoaWxkQ2xpcHBpbmdNYXNrRm9yRnJhZ21l
bnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllcgogCiAgICAgICAgIC8vIFBhaW50IHRoZSBj
bGlwcGVkIG1hc2suCiAgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgZnJhZ21l
bnQuYmFja2dyb3VuZFJlY3QucmVjdCgpLCBQYWludFBoYXNlOjpDbGlwcGluZ01hc2ssIHBhaW50
QmVoYXZpb3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5kZXJlciwgbnVsbHB0ciwgbnVsbHB0ciwg
JmxvY2FsUGFpbnRpbmdJbmZvLnJvb3RMYXllci0+cmVuZGVyZXIoKSwgdGhpcyk7Ci0gICAgICAg
IHJlbmRlcmVyKCkucGFpbnQocGFpbnRJbmZvLCB0b0xheW91dFBvaW50KGZyYWdtZW50LmxheWVy
Qm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJCb3hMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0lu
Zm8uc3VicGl4ZWxPZmZzZXQpKTsKKyAgICAgICAgcmVuZGVyZXIoKS5wYWludChwYWludEluZm8s
IHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlcmVy
TG9jYXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSk7CiAgICAgfQog
fQogCkBAIC0zOTIwLDcgKzM5MjAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludE92ZXJmbG93
Q29udHJvbHNGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmIGxheWVyRgogICAgICAg
ICBFdmVudFJlZ2lvbkNvbnRleHRTdGF0ZVNhdmVyIGV2ZW50UmVnaW9uU3RhdGVTYXZlcihsb2Nh
bFBhaW50aW5nSW5mby5ldmVudFJlZ2lvbkNvbnRleHQpOwogCiAgICAgICAgIGNsaXBUb1JlY3Qo
Y29udGV4dCwgc3RhdGVTYXZlciwgZXZlbnRSZWdpb25TdGF0ZVNhdmVyLCBsb2NhbFBhaW50aW5n
SW5mbywgeyB9LCBmcmFnbWVudC5iYWNrZ3JvdW5kUmVjdCk7Ci0gICAgICAgIG1fc2Nyb2xsYWJs
ZUFyZWEtPnBhaW50T3ZlcmZsb3dDb250cm9scyhjb250ZXh0LCByb3VuZGVkSW50UG9pbnQodG9M
YXlvdXRQb2ludChmcmFnbWVudC5sYXllckJvdW5kcy5sb2NhdGlvbigpIC0gcmVuZGVyQm94TG9j
YXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSksIHNuYXBwZWRJbnRS
ZWN0KGZyYWdtZW50LmJhY2tncm91bmRSZWN0LnJlY3QoKSksIHRydWUpOworICAgICAgICBtX3Nj
cm9sbGFibGVBcmVhLT5wYWludE92ZXJmbG93Q29udHJvbHMoY29udGV4dCwgcm91bmRlZEludFBv
aW50KHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRl
cmVyTG9jYXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0KSksIHNuYXBw
ZWRJbnRSZWN0KGZyYWdtZW50LmJhY2tncm91bmRSZWN0LnJlY3QoKSksIHRydWUpOwogICAgIH0K
IH0KIApAQCAtMzkzMSw3ICszOTMxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y29sbGVjdEV2ZW50
UmVnaW9uRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWcKICAgICBm
b3IgKGNvbnN0IGF1dG8mIGZyYWdtZW50IDogbGF5ZXJGcmFnbWVudHMpIHsKICAgICAgICAgUGFp
bnRJbmZvIHBhaW50SW5mbyhjb250ZXh0LCBmcmFnbWVudC5mb3JlZ3JvdW5kUmVjdC5yZWN0KCks
IFBhaW50UGhhc2U6OkV2ZW50UmVnaW9uLCBwYWludEJlaGF2aW9yKTsKICAgICAgICAgcGFpbnRJ
bmZvLmV2ZW50UmVnaW9uQ29udGV4dCA9IGxvY2FsUGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uQ29u
dGV4dDsKLSAgICAgICAgcmVuZGVyZXIoKS5wYWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQo
ZnJhZ21lbnQubGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlckJveExvY2F0aW9uKCkgKyBs
b2NhbFBhaW50aW5nSW5mby5zdWJwaXhlbE9mZnNldCkpOworICAgICAgICByZW5kZXJlcigpLnBh
aW50KHBhaW50SW5mbywgdG9MYXlvdXRQb2ludChmcmFnbWVudC5sYXllckJvdW5kcy5sb2NhdGlv
bigpIC0gcmVuZGVyZXJMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZz
ZXQpKTsKICAgICB9CiB9CiAKQEAgLTQyMDIsNyArNDIwMiw3IEBAIFJlbmRlckxheWVyKiBSZW5k
ZXJMYXllcjo6aGl0VGVzdExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlckxheWVy
KiBjb250CiAKICAgICBhdXRvIG9mZnNldEZyb21Sb290ID0gb2Zmc2V0RnJvbUFuY2VzdG9yKHJv
b3RMYXllcik7CiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gY29ycmVjdGx5IGhpdCB0ZXN0IHRo
ZSBjbGlwLXBhdGggd2hlbiB3ZSBoYXZlIGEgUmVuZGVySW5saW5lIHRvby4KLSAgICBpZiAoYXV0
byogcmVuZGVyZXJCb3ggPSB0aGlzLT5yZW5kZXJCb3goKTsgcmVuZGVyZXJCb3ggJiYgIXJlbmRl
cmVyQm94LT5oaXRUZXN0Q2xpcFBhdGgoaGl0VGVzdExvY2F0aW9uLCB0b0xheW91dFBvaW50KG9m
ZnNldEZyb21Sb290IC0gdG9MYXlvdXRTaXplKHJlbmRlckJveExvY2F0aW9uKCkpKSkpCisgICAg
aWYgKGF1dG8qIHJlbmRlcmVyQm94ID0gdGhpcy0+cmVuZGVyQm94KCk7IHJlbmRlcmVyQm94ICYm
ICFyZW5kZXJlckJveC0+aGl0VGVzdENsaXBQYXRoKGhpdFRlc3RMb2NhdGlvbiwgdG9MYXlvdXRQ
b2ludChvZmZzZXRGcm9tUm9vdCAtIHRvTGF5b3V0U2l6ZShyZW5kZXJlckxvY2F0aW9uKCkpKSkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gQmVnaW4gYnkgd2Fsa2luZyBvdXIg
bGlzdCBvZiBwb3NpdGl2ZSBsYXllcnMgZnJvbSBoaWdoZXN0IHotaW5kZXggZG93biB0byB0aGUg
bG93ZXN0IHotaW5kZXguCkBAIC00Mzc2LDcgKzQzNzYsNyBAQCBib29sIFJlbmRlckxheWVyOjpo
aXRUZXN0Q29udGVudHMoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1
bHQmCiB7CiAgICAgQVNTRVJUKGlzU2VsZlBhaW50aW5nTGF5ZXIoKSB8fCBoYXNTZWxmUGFpbnRp
bmdMYXllckRlc2NlbmRhbnQoKSk7CiAKLSAgICBpZiAoIXJlbmRlcmVyKCkuaGl0VGVzdChyZXF1
ZXN0LCByZXN1bHQsIGhpdFRlc3RMb2NhdGlvbiwgdG9MYXlvdXRQb2ludChsYXllckJvdW5kcy5s
b2NhdGlvbigpIC0gcmVuZGVyQm94TG9jYXRpb24oKSksIGhpdFRlc3RGaWx0ZXIpKSB7CisgICAg
aWYgKCFyZW5kZXJlcigpLmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0LCBoaXRUZXN0TG9jYXRpb24s
IHRvTGF5b3V0UG9pbnQobGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlcmVyTG9jYXRpb24o
KSksIGhpdFRlc3RGaWx0ZXIpKSB7CiAgICAgICAgIC8vIEl0J3Mgd3JvbmcgdG8gc2V0IGlubmVy
Tm9kZSwgYnV0IHRoZW4gY2xhaW0gdGhhdCB5b3UgZGlkbid0IGhpdCBhbnl0aGluZywgdW5sZXNz
IGl0IGlzCiAgICAgICAgIC8vIGEgcmVjdC1iYXNlZCB0ZXN0LgogICAgICAgICBBU1NFUlQoIXJl
c3VsdC5pbm5lck5vZGUoKSB8fCAocmVxdWVzdC5yZXN1bHRJc0VsZW1lbnRMaXN0KCkgJiYgcmVz
dWx0Lmxpc3RCYXNlZFRlc3RSZXN1bHQoKS5zaXplKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKaW5kZXggZTVlNWVjOTQ4NGQ2MWNhN2Q5OWVhZTVlZjVkNGU2NTgyZGM5
ZWJlNS4uNzY5NWU3OGJlZTY1ZWY1ZmFhZjBlOWM4ZTU0NmM4Y2EwNjMxYmQ4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRl
ICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJQ
dHIuaCIKKyNpbmNsdWRlICJSZW5kZXJTVkdNb2RlbE9iamVjdC5oIgogI2luY2x1ZGUgIlNjcm9s
bEJlaGF2aW9yLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5o
PgpAQCAtOTY3LDcgKzk2OCwxNiBAQCBwcml2YXRlOgogCiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xv
c2luZ1BhZ2luYXRpb25MYXllckluU3VidHJlZShjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVy
LCBQYWdpbmF0aW9uSW5jbHVzaW9uTW9kZSkgY29uc3Q7CiAKLSAgICBMYXlvdXRQb2ludCByZW5k
ZXJCb3hMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGlzPFJlbmRlckJveD4ocmVuZGVyZXIoKSkg
PyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpLmxvY2F0aW9uKCkgOiBMYXlvdXRQb2lu
dCgpOyB9CisgICAgTGF5b3V0UG9pbnQgcmVuZGVyZXJMb2NhdGlvbigpIGNvbnN0CisgICAgewor
ICAgICAgICBpZiAoaXM8UmVuZGVyQm94PihyZW5kZXJlcigpKSkKKyAgICAgICAgICAgIHJldHVy
biBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpLmxvY2F0aW9uKCk7CisjaWYgRU5BQkxF
KExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCisgICAgICAgIGlmIChpczxSZW5kZXJTVkdNb2RlbE9i
amVjdD4ocmVuZGVyZXIoKSkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyU1ZH
TW9kZWxPYmplY3Q+KHJlbmRlcmVyKCkpLmxheW91dExvY2F0aW9uKCk7CisjZW5kaWYKKyAgICAg
ICAgcmV0dXJuIExheW91dFBvaW50KCk7CisgICAgfQogCiAgICAgYm9vbCBzZXR1cEZvbnRTdWJw
aXhlbFF1YW50aXphdGlvbihHcmFwaGljc0NvbnRleHQmLCBib29sJiBkaWRRdWFudGl6ZUZvbnRz
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdN
b2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2Rl
bE9iamVjdC5oCmluZGV4IDc5MjRjZjhkYzVmMTYxNzg3NzNlN2E3YWJkM2M1ZGJmNGExYmE3YTcu
LjdiMmUzMTE0MTczZDczOGM5ZThmYWJjMzU1MzBlZTYyN2I1ZjRmYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKQEAgLTMy
LDEwICszMiw5IEBACiAjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShMQVlFUl9CQVNFRF9TVkdf
RU5HSU5FKQotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyQm94Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIgogI2luY2x1ZGUgIlNWR0JvdW5k
aW5nQm94Q29tcHV0YXRpb24uaCIKLSNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAi
U1ZHUmVuZGVyU3VwcG9ydC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw3ICs1Niw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBjaGVja0ludGVyc2VjdGlvbihSZW5kZXJFbGVt
ZW50KiwgY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgc3RhdGljIGJvb2wgY2hlY2tFbmNsb3N1cmUo
UmVuZGVyRWxlbWVudCosIGNvbnN0IEZsb2F0UmVjdCYpOwogCi0gICAgU1ZHRWxlbWVudCYgZWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PFNWR0VsZW1lbnQ+KG5vZGVGb3JOb25Bbm9u
eW1vdXMoKSk7IH0KKyAgICBpbmxpbmUgU1ZHRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0OwogCiAg
ICAgLy8gRklYTUU6IFtMQlNFXSBNYXJrIGZpbmFsLCBhZGQgYXBwbHlUcmFuc2Zvcm0gdG8gUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdAogICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRp
b25NYXRyaXgmLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdC
b3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdElubGluZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDdhZDhkYWI2MmUzN2U5NmY0NGY3
MDhjNTIzMmMyODk1Mjk3MjE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdElubGluZXMuaApAQCAtMCwwICsxLDM5IEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDIyIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCIKKyNpbmNsdWRlICJT
VkdFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworaW5saW5lIFNWR0VsZW1lbnQm
IFJlbmRlclNWR01vZGVsT2JqZWN0OjplbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG93
bmNhc3Q8U1ZHRWxlbWVudD4obm9kZUZvck5vbkFub255bW91cygpKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1NoYXBlSW5saW5lcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdTaGFwZUlubGluZXMuaAppbmRleCAxNDUwOWY0ZjRlYTg1YWM3NTU0MzI5OTNiYjg4
OGYxYmMwZDNjNWIxLi4zYjA5MjhjODA5YzQxZmY3OGMwNDkxMTBmZjI4NjBmNzBhY2M3Mzg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlSW5s
aW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGVJ
bmxpbmVzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKExB
WUVSX0JBU0VEX1NWR19FTkdJTkUpCisjaW5jbHVkZSAiUmVuZGVyU1ZHTW9kZWxPYmplY3RJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHU2hhcGUuaCIKICNpbmNsdWRlICJTVkdHcmFwaGlj
c0VsZW1lbnQuaCIKIAo=
</data>
<flag name="review"
          id="477615"
          type_id="1"
          status="+"
          setter="rbuis"
    />
          </attachment>
      

    </bug>

</bugzilla>