<?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>234992</bug_id>
          
          <creation_ts>2022-01-07 15:21:23 -0800</creation_ts>
          <short_desc>[LBSE] Begin layer-aware RenderSVGRect implementation</short_desc>
          <delta_ts>2022-05-23 04:48:31 -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>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=240793</see_also>
          <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>
          <dependson>234878</dependson>
    
    <dependson>234954</dependson>
          <blocked>90738</blocked>
    
    <blocked>234632</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1829109</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-07 15:21:23 -0800</bug_when>
    <thetext>Introduce the &quot;layer-aware&quot; RenderSVGRect implementation (inheriting from RenderSVGModelObject, and thus RenderLayerModelObject).
Besides the different inheritance structure with respect to LegacyRenderSVGRect (inheriting from LegacyRenderSVGModelObject, and thus RenderElement -- not RenderLayerModelObject), the implementation is identical to LegacyRenderSVGRect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829112</commentid>
    <comment_count>1</comment_count>
      <attachid>448638</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-07 15:41:41 -0800</bug_when>
    <thetext>Created attachment 448638
Patch, v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829113</commentid>
    <comment_count>2</comment_count>
      <attachid>448638</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-07 15:42:57 -0800</bug_when>
    <thetext>Comment on attachment 448638
Patch, v1

This patch depends on 234954, postponing r? / EWS until it&apos;s resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829397</commentid>
    <comment_count>3</comment_count>
      <attachid>448728</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-10 02:00:25 -0800</bug_when>
    <thetext>Created attachment 448728
Patch, v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829401</commentid>
    <comment_count>4</comment_count>
      <attachid>448728</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-01-10 02:41:49 -0800</bug_when>
    <thetext>Comment on attachment 448728
Patch, v2

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

&gt; Source/WebCore/rendering/svg/RenderSVGRect.h:33
&gt; +#include &quot;SVGRectElement.h&quot;

Could this be forward reference?

&gt; Source/WebCore/svg/SVGRectElement.cpp:94
&gt; +    if (0 &amp;&amp; document().settings().layerBasedSVGEngineEnabled())

Maybe false is nicer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829419</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-10 05:02:10 -0800</bug_when>
    <thetext>(In reply to Rob Buis from comment #4)
&gt; Comment on attachment 448728 [details]
&gt; Patch, v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448728&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGRect.h:33
&gt; &gt; +#include &quot;SVGRectElement.h&quot;
&gt; 
&gt; Could this be forward reference?
Yes, fixed, good catch.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGRectElement.cpp:94
&gt; &gt; +    if (0 &amp;&amp; document().settings().layerBasedSVGEngineEnabled())
&gt; 
&gt; Maybe false is nicer.
Both are ugly, but I agree false is less ugly here. Fortunately this is only needed for a short period of time.

Thanks Rob again!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829423</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-10 05:10:59 -0800</bug_when>
    <thetext>Committed r287834 (245886@trunk): &lt;https://commits.webkit.org/245886@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829424</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-10 05:11:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/87335756&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448638</attachid>
            <date>2022-01-07 15:41:41 -0800</date>
            <delta_ts>2022-01-10 02:00:22 -0800</delta_ts>
            <desc>Patch, v1</desc>
            <filename>bug-234992-20220107154140.patch</filename>
            <type>text/plain</type>
            <size>20243</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU0NGFjN2YyN2MwNGI3
OTk0NDlmMDNlMWY2NTBkYjkwZGU5YTIwZS4uNmNjOTc1YjYxZTMxMDk4MWViMjEzYWM4MjhjMmY3
YjE1N2NlYWM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIyLTAxLTA3ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBCZWdpbiBsYXllci1hd2FyZSBSZW5kZXJTVkdSZWN0IGltcGxlbWVudGF0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ5OTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgUmVuZGVyU1ZH
UmVjdCBhcyBjb3B5IG9mIExlZ2FjeVJlbmRlclNWR1JlY3QsIGluaGVyaXRpbmcgZnJvbQorICAg
ICAgICBSZW5kZXJTVkdTaGFwZSAoYW5kIHRodXMgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCkgaW5z
dGVhZCBvZgorICAgICAgICBMZWdhY3lSZW5kZXJTVkdTaGFwZSwgYXMgTGVnYWN5UmVuZGVyU1ZH
UmVjdCBkb2VzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3QgeWV0IGVuYWJsZSB0aGUg
Y3JlYXRpb24gb2YgUmVuZGVyU1ZHUmVjdAorICAgICAgICByZW5kZXJlcnMgaWYgTEJTRSBpcyBl
bmFibGVkLCB0aGlzIGlzIHBvc3Rwb25lZCB1bnRpbCBtb3JlCisgICAgICAgIGZ1bmN0aW9uYWxp
dHkgaXMgZnVsbHkgYXZhaWxhYmxlIGluIExCU0UgKHN1Y2ggYXMgbGF5b3V0ISkuCisKKyAgICAg
ICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW91ci4KKwor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR01vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlbmRlclNWR01vZGVsT2JqZWN0
OjpjbGlwcGVkT3ZlcmZsb3dSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJl
bmRlclNWR01vZGVsT2JqZWN0Ojpub2RlQXRQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZWN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdS
ZWN0OjpSZW5kZXJTVkdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1JlY3Q6OnJl
Y3RFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1JlY3Q6OnVwZGF0
ZVNoYXBlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVjdDo6Zmls
bFNoYXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1JlY3Q6OnN0cm9rZVNo
YXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1JlY3Q6OnNoYXBlRGVwZW5k
ZW50U3Ryb2tlQ29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVjdDo6c2hh
cGVEZXBlbmRlbnRGaWxsQ29udGFpbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHUmVjdDo6aXNSZW5kZXJpbmdEaXNhYmxlZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZWN0Lmg6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZH
UmVzb3VyY2VzLmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUmVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisKIDIw
MjItMDEtMDcgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0xCU0VdIEJlZ2luIGxheWVyLWF3YXJlIFJlbmRlclNWR1NoYXBlIGltcGxlbWVu
dGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDU4ZjQ3MDkwZDZmNmNjZDYyYTY0YjM1MTM1NDczNzQ4
ZDI1OTVmZDUuLjEzZWZlNGZmMzM1YTM0YjQxYzQ1MTk4NDE3NGRiZjQyN2Y4ZDY2M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0yNDkzLDYgKzI0OTMsNyBAQCByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlTWFza2VyLmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4u
Y3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQuY3BwCiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5jcHAKK3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVjdC5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RT
cGFuLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGFjYmRkNDczNGQxMThlZmNmMzFkYTg5OGJmMjZiMjM2OTYwMjQ1ZDEuLjhm
N2JjYmRhNDY3YTIxYWY2MmFiYjE5NTY2NmU1ODliNDc2MmJjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNzIsNiArMzI3
Miw3IEBACiAJCUExMDRFQzVFMjIwQTNFNEUwMENCRjY3QSAvKiBKU01vY2tQYXltZW50Q29udGFj
dEZpZWxkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTEwNEVDNUMyMjBBM0U0NDAwQ0JGNjdBIC8qIEpTTW9ja1BheW1lbnRDb250YWN0RmllbGRzLmgg
Ki87IH07CiAJCUExMDRGMjQ0MTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1bWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwNEYyNDIx
NEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEwQkI1ODUxNDg0RTNBNzAwQjJFODdB
IC8qIExlZ2FjeVJlbmRlclNWR1JlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExMEJCNTgzMTQ4NEUzQTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJT
VkdSZWN0LmggKi87IH07CisJCUExMEJCNTg1MTQ4NEUzQTcwMEIzQUI2RCAvKiBSZW5kZXJTVkdS
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBC
QjU4MzE0ODRFM0E3MDBCM0FCNkQgLyogUmVuZGVyU1ZHUmVjdC5oICovOyB9OwogCQlBMTBCQjU4
QjE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEJCNTg5MTQ4NEUzQjMwMEIyRTg3
QSAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZS5oICovOyB9OwogCQlBMTBCQjU4QjE0ODRFM0IzMDBD
M0Y3N0IgLyogUmVuZGVyU1ZHU2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExMEJCNTg5MTQ4NEUzQjMwMEMzRjc3QiAvKiBSZW5kZXJTVkdTaGFw
ZS5oICovOyB9OwogCQlBMTBEQkY0NzE4RjkyMzE3MDAwRDcwQzYgLyogTGVnYWN5UHJldmlld0xv
YWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEwREJGNDYxOEY5MjMxNzAwMEQ3MEM2IC8qIExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMz
NzksNyArMTMzODAsOSBAQAogCQlBMTA0RjI0MTE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZH
RG9jdW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVk
U1ZHRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTA0RjI0MjE0
QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2FjaGVkU1ZHRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTEwQkI1ODIxNDg0RTNBNzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1JlY3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZH
UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExMEJCNTgyMTQ4NEUzQTcw
MEIzQUI2RCAvKiBSZW5kZXJTVkdSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbmRlclNWR1JlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMTBCQjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVjdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdSZWN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExMEJCNTgzMTQ4NEUzQTcwMEIzQUI2RCAvKiBSZW5k
ZXJTVkdSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jl
Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODgxNDg0RTNCMzAwQjJF
ODdBIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQ0M1ODgxNDczRTNCMzAwQjJBOEJGIC8qIFJlbmRlclNWR1NoYXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0RTNCMzAwQjJFODdB
IC8qIExlZ2FjeVJlbmRlclNWR1NoYXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IExlZ2FjeVJlbmRlclNWR1NoYXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xODk0NSw2ICsxODk0OCw4IEBACiAJCQkJNDM2NzA4RkQxMkQ5Q0E0QTAwMDMyMTE0IC8qIFJl
bmRlclNWR01vZGVsT2JqZWN0LmggKi8sCiAJCQkJQURERjFBRDQxMjU3Q0Q5QTAwMDNBNzU5IC8q
IFJlbmRlclNWR1BhdGguY3BwICovLAogCQkJCUFEREYxQUQ1MTI1N0NEOUEwMDAzQTc1OSAvKiBS
ZW5kZXJTVkdQYXRoLmggKi8sCisJCQkJQTEwQkI1ODIxNDg0RTNBNzAwQjNBQjZEIC8qIFJlbmRl
clNWR1JlY3QuY3BwICovLAorCQkJCUExMEJCNTgzMTQ4NEUzQTcwMEIzQUI2RCAvKiBSZW5kZXJT
VkdSZWN0LmggKi8sCiAJCQkJNDM2NzA4OEQxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jl
c291cmNlLmNwcCAqLywKIAkJCQk0MzY3MDg4RTEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZH
UmVzb3VyY2UuaCAqLywKIAkJCQk0MzY3MDg4RjEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZH
UmVzb3VyY2VDbGlwcGVyLmNwcCAqLywKQEAgLTM2NzM5LDYgKzM2NzQ0LDcgQEAKIAkJCQkwODU0
QjAxNzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDM2NzBDOTM0MkQ5QkM0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR01vZGVsT2JqZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRERGMUFENzEyNTdDRDlBMDAwM0E3NTkgLyogUmVuZGVy
U1ZHUGF0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEwQkI1ODUxNDg0RTNBNzAwQjNBQjZEIC8q
IFJlbmRlclNWR1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOENEMTJEOUNBNEIwMDA0
NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4Q0Yx
MkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RGNzQ3RUYyNzBGNkY4RDAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlQ2xp
cHBlcklubGluZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR01vZGVsT2JqZWN0LmNwcAppbmRleCA0
NTU0NzM1MWY0ZDAzZWM5NmYzYWIzMjFlY2Q5NjhiMWNjNWQ1YTZlLi4zMjdlMDIzMWE4YzhiZGQ2
OGFjNjJlZWNjNzE2ZThhZjAzOTE4NDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR01vZGVsT2JqZWN0LmNwcApAQCAtNTEs
MjAgKzUxLDggQEAgTGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OkxlZ2FjeVJlbmRlclNWR01v
ZGVsT2JqZWN0KFNWR0VsZW1lbnQmIGVsZW1lbnQsIFJlbmQKIHsKIH0KIAotTGF5b3V0UmVjdCBM
ZWdhY3lSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y2xpcHBlZE92ZXJmbG93UmVjdChjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQg
Y29udGV4dCkgY29uc3QKK0xheW91dFJlY3QgTGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNs
aXBwZWRPdmVyZmxvd1JlY3QoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVmlzaWJsZVJlY3RDb250ZXh0KSBjb25zdAogewotI2lmIEVOQUJMRShMQVlFUl9C
QVNFRF9TVkdfRU5HSU5FKQotICAgIGlmIChkb2N1bWVudCgpLnNldHRpbmdzKCkubGF5ZXJCYXNl
ZFNWR0VuZ2luZUVuYWJsZWQoKSkgewotICAgICAgICBpZiAoc3R5bGUoKS52aXNpYmlsaXR5KCkg
IT0gVmlzaWJpbGl0eTo6VmlzaWJsZSAmJiAhZW5jbG9zaW5nTGF5ZXIoKS0+aGFzVmlzaWJsZUNv
bnRlbnQoKSkKLSAgICAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7Ci0KLSAgICAgICAgQVNT
RVJUKCF2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzUGFpbnRPZmZzZXRDYWNo
ZUVuYWJsZWQoKSk7Ci0gICAgICAgIHJldHVybiBjb21wdXRlUmVjdCh2aXN1YWxPdmVyZmxvd1Jl
Y3RFcXVpdmFsZW50KCksIHJlcGFpbnRDb250YWluZXIsIGNvbnRleHQpOwotICAgIH0KLSNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwotI2VuZGlmCi0KICAgICByZXR1cm4gU1ZHUmVu
ZGVyU3VwcG9ydDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoKnRoaXMsIHJlcGFpbnRD
b250YWluZXIpOwogfQogCkBAIC0xMjYsMTQgKzExNCw2IEBAIHZvaWQgTGVnYWN5UmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBS
ZW5kCiAKIGJvb2wgTGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om5vZGVBdFBvaW50KGNvbnN0
IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYs
IGNvbnN0IExheW91dFBvaW50JiwgSGl0VGVzdEFjdGlvbikKIHsKLSNpZiBFTkFCTEUoTEFZRVJf
QkFTRURfU1ZHX0VOR0lORSkKLSAgICBpZiAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxheWVyQmFz
ZWRTVkdFbmdpbmVFbmFibGVkKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVh
bSBMZWdhY3lSZW5kZXJTVkdNb2RlbE9iamVjdCBpbmhlcml0YW5jZSBjaGFuZ2VzIChzaG91bGQg
aW5oZXJpdCBmcm9tIFJlbmRlckxheWVyTW9kZWxPYmplY3QpLgotICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotI2VuZGlmCi0KICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1JlY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzRmY2Y2ZTMw
Y2JiMmY0ZDc5MTJmNTRlMDgwZmNiOTA1ZGM1YThhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNwcApAQCAtMCwwICsxLDE2NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29w
eXJpZ2h0IChDKSAyMDExIFJlbmF0YSBIb2RvdmFuIDxyZW5pQHdlYmtpdC5vcmc+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAsIDIwMjEsIDIwMjIgSWdhbGlhIFMuTC4KKyAqIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklW
RVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1Jl
Y3QuaCIKKworI2lmIEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5HSU5FKQorI2luY2x1ZGUgIlJl
bmRlclNWR1NoYXBlSW5saW5lcy5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnRUeXBlSGVscGVycy5o
IgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlclNWR1JlY3QpOworCitSZW5k
ZXJTVkdSZWN0OjpSZW5kZXJTVkdSZWN0KFNWR1JlY3RFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJT
dHlsZSYmIHN0eWxlKQorICAgIDogUmVuZGVyU1ZHU2hhcGUoZWxlbWVudCwgV1RGTW92ZShzdHls
ZSkpCisgICAgLCBtX3VzZVBhdGhGYWxsYmFjayhmYWxzZSkKK3sKK30KKworUmVuZGVyU1ZHUmVj
dDo6flJlbmRlclNWR1JlY3QoKSA9IGRlZmF1bHQ7CisKK1NWR1JlY3RFbGVtZW50JiBSZW5kZXJT
VkdSZWN0OjpyZWN0RWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvd25jYXN0PFNWR1Jl
Y3RFbGVtZW50PihSZW5kZXJTVkdTaGFwZTo6Z3JhcGhpY3NFbGVtZW50KCkpOworfQorCit2b2lk
IFJlbmRlclNWR1JlY3Q6OnVwZGF0ZVNoYXBlRnJvbUVsZW1lbnQoKQoreworICAgIC8vIEJlZm9y
ZSBjcmVhdGluZyBhIG5ldyBvYmplY3Qgd2UgbmVlZCB0byBjbGVhciB0aGUgY2FjaGVkIGJvdW5k
aW5nIGJveAorICAgIC8vIHRvIGF2b2lkIHVzaW5nIGdhcmJhZ2UuCisgICAgbV9maWxsQm91bmRp
bmdCb3ggPSBGbG9hdFJlY3QoKTsKKyAgICBtX2lubmVyU3Ryb2tlUmVjdCA9IEZsb2F0UmVjdCgp
OworICAgIG1fb3V0ZXJTdHJva2VSZWN0ID0gRmxvYXRSZWN0KCk7CisgICAgY2xlYXJQYXRoKCk7
CisgICAgbV91c2VQYXRoRmFsbGJhY2sgPSBmYWxzZTsKKworICAgIFNWR0xlbmd0aENvbnRleHQg
bGVuZ3RoQ29udGV4dCgmcmVjdEVsZW1lbnQoKSk7CisgICAgRmxvYXRTaXplIGJvdW5kaW5nQm94
U2l6ZShsZW5ndGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkud2lkdGgoKSwgU1ZHTGVu
Z3RoTW9kZTo6V2lkdGgpLCBsZW5ndGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkuaGVp
Z2h0KCksIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkpOworCisgICAgLy8gU3BlYzogIkEgbmVnYXRp
dmUgdmFsdWUgaXMgaWxsZWdhbC4gQSB2YWx1ZSBvZiB6ZXJvIGRpc2FibGVzIHJlbmRlcmluZyBv
ZiB0aGUgZWxlbWVudC4iCisgICAgaWYgKGJvdW5kaW5nQm94U2l6ZS5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChyZWN0RWxlbWVudCgpLnJ4KCkudmFsdWUobGVuZ3RoQ29u
dGV4dCkgPiAwIHx8IHJlY3RFbGVtZW50KCkucnkoKS52YWx1ZShsZW5ndGhDb250ZXh0KSA+IDAg
fHwgaGFzTm9uU2NhbGluZ1N0cm9rZSgpKSB7CisgICAgICAgIC8vIEZhbGwgYmFjayB0byBSZW5k
ZXJTVkdTaGFwZQorICAgICAgICBSZW5kZXJTVkdTaGFwZTo6dXBkYXRlU2hhcGVGcm9tRWxlbWVu
dCgpOworICAgICAgICBtX3VzZVBhdGhGYWxsYmFjayA9IHRydWU7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBtX2ZpbGxCb3VuZGluZ0JveCA9IEZsb2F0UmVjdChGbG9hdFBvaW50KGxl
bmd0aENvbnRleHQudmFsdWVGb3JMZW5ndGgoc3R5bGUoKS5zdmdTdHlsZSgpLngoKSwgU1ZHTGVu
Z3RoTW9kZTo6V2lkdGgpLAorICAgICAgICBsZW5ndGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0
eWxlKCkuc3ZnU3R5bGUoKS55KCksIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkpLAorICAgICAgICBi
b3VuZGluZ0JveFNpemUpOworCisgICAgLy8gVG8gZGVjaWRlIGlmIHRoZSBzdHJva2UgY29udGFp
bnMgYSBwb2ludCB3ZSBjcmVhdGUgdHdvIHJlY3RzIHdoaWNoIHJlcHJlc2VudCB0aGUgaW5uZXIg
YW5kCisgICAgLy8gdGhlIG91dGVyIHN0cm9rZSBib3JkZXJzLiBBIHN0cm9rZSBjb250YWlucyB0
aGUgcG9pbnQsIGlmIHRoZSBwb2ludCBpcyBiZXR3ZWVuIHRoZW0uCisgICAgbV9pbm5lclN0cm9r
ZVJlY3QgPSBtX2ZpbGxCb3VuZGluZ0JveDsKKyAgICBtX291dGVyU3Ryb2tlUmVjdCA9IG1fZmls
bEJvdW5kaW5nQm94OworCisgICAgaWYgKHN0eWxlKCkuc3ZnU3R5bGUoKS5oYXNTdHJva2UoKSkg
eworICAgICAgICBmbG9hdCBzdHJva2VXaWR0aCA9IHRoaXMtPnN0cm9rZVdpZHRoKCk7CisgICAg
ICAgIG1faW5uZXJTdHJva2VSZWN0LmluZmxhdGUoLXN0cm9rZVdpZHRoIC8gMik7CisgICAgICAg
IG1fb3V0ZXJTdHJva2VSZWN0LmluZmxhdGUoc3Ryb2tlV2lkdGggLyAyKTsKKyAgICB9CisKKyAg
ICBtX3N0cm9rZUJvdW5kaW5nQm94ID0gbV9vdXRlclN0cm9rZVJlY3Q7CisKKyNpZiBVU0UoQ0cp
CisgICAgLy8gQ29yZUdyYXBoaWNzIGNhbiBpbmZsYXRlIHRoZSBzdHJva2UgYnkgMXB4IHdoZW4g
ZHJhd2luZyBhIHJlY3RhbmdsZSB3aXRoIGFudGlhbGlhc2luZyBkaXNhYmxlZCBhdCBub24taW50
ZWdlciBjb29yZGluYXRlcywgd2UgbmVlZCB0byBjb21wZW5zYXRlLgorICAgIGlmIChzdHlsZSgp
LnN2Z1N0eWxlKCkuc2hhcGVSZW5kZXJpbmcoKSA9PSBTaGFwZVJlbmRlcmluZzo6Q3Jpc3BFZGdl
cykKKyAgICAgICAgbV9zdHJva2VCb3VuZGluZ0JveC5pbmZsYXRlKDEpOworI2VuZGlmCit9CisK
K3ZvaWQgUmVuZGVyU1ZHUmVjdDo6ZmlsbFNoYXBlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkg
Y29uc3QKK3sKKyAgICBpZiAobV91c2VQYXRoRmFsbGJhY2spIHsKKyAgICAgICAgUmVuZGVyU1ZH
U2hhcGU6OmZpbGxTaGFwZShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworI2lm
IFVTRShDRykKKyAgICAvLyBGSVhNRTogQ0cgaW1wbGVtZW50YXRpb24gb2YgR3JhcGhpY3NDb250
ZXh0Q0c6OmZpbGxSZWN0IGhhcyBhbiBvd24KKyAgICAvLyBzaGFkb3cgZHJhd2luZyBtZXRob2Qs
IHdoaWNoIGRyYXdzIGFuIGV4dHJhIHNoYWRvdy4KKyAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3Vu
ZCBmb3Igc3dpdGNoaW5nIG9mZiB0aGUgZXh0cmEgc2hhZG93LgorICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg5OQorICAgIGlmIChjb250ZXh0Lmhhc1No
YWRvdygpKSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihj
b250ZXh0KTsKKyAgICAgICAgY29udGV4dC5jbGVhclNoYWRvdygpOworICAgICAgICBjb250ZXh0
LmZpbGxSZWN0KG1fZmlsbEJvdW5kaW5nQm94KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNl
bmRpZgorCisgICAgY29udGV4dC5maWxsUmVjdChtX2ZpbGxCb3VuZGluZ0JveCk7Cit9CisKK3Zv
aWQgUmVuZGVyU1ZHUmVjdDo6c3Ryb2tlU2hhcGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBj
b25zdAoreworICAgIGlmICghc3R5bGUoKS5oYXNWaXNpYmxlU3Ryb2tlKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChtX3VzZVBhdGhGYWxsYmFjaykgeworICAgICAgICBSZW5kZXJTVkdT
aGFwZTo6c3Ryb2tlU2hhcGUoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBjb250ZXh0LnN0cm9rZVJlY3QobV9maWxsQm91bmRpbmdCb3gsIHN0cm9rZVdpZHRoKCkpOwor
fQorCitib29sIFJlbmRlclNWR1JlY3Q6OnNoYXBlRGVwZW5kZW50U3Ryb2tlQ29udGFpbnMoY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQsIFBvaW50Q29vcmRpbmF0ZVNwYWNlIHBvaW50Q29vcmRpbmF0
ZVNwYWNlKQoreworICAgIC8vIFRoZSBvcHRpbWl6ZWQgY29udGFpbnMgY29kZSBiZWxvdyBkb2Vz
IG5vdCBzdXBwb3J0IG5vbi1zbW9vdGggc3Ryb2tlcyBzbyB3ZSBuZWVkCisgICAgLy8gdG8gZmFs
bCBiYWNrIHRvIFJlbmRlclNWR1NoYXBlOjpzaGFwZURlcGVuZGVudFN0cm9rZUNvbnRhaW5zIGlu
IHRoZXNlIGNhc2VzLgorICAgIGlmIChtX3VzZVBhdGhGYWxsYmFjayB8fCAhaGFzU21vb3RoU3Ry
b2tlKCkpIHsKKyAgICAgICAgaWYgKCFoYXNQYXRoKCkpCisgICAgICAgICAgICBSZW5kZXJTVkdT
aGFwZTo6dXBkYXRlU2hhcGVGcm9tRWxlbWVudCgpOworICAgICAgICByZXR1cm4gUmVuZGVyU1ZH
U2hhcGU6OnNoYXBlRGVwZW5kZW50U3Ryb2tlQ29udGFpbnMocG9pbnQsIHBvaW50Q29vcmRpbmF0
ZVNwYWNlKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9vdXRlclN0cm9rZVJlY3QuY29udGFpbnMo
cG9pbnQsIEZsb2F0UmVjdDo6SW5zaWRlT3JPblN0cm9rZSkgJiYgIW1faW5uZXJTdHJva2VSZWN0
LmNvbnRhaW5zKHBvaW50LCBGbG9hdFJlY3Q6Okluc2lkZUJ1dE5vdE9uU3Ryb2tlKTsKK30KKwor
Ym9vbCBSZW5kZXJTVkdSZWN0OjpzaGFwZURlcGVuZGVudEZpbGxDb250YWlucyhjb25zdCBGbG9h
dFBvaW50JiBwb2ludCwgY29uc3QgV2luZFJ1bGUgZmlsbFJ1bGUpIGNvbnN0Cit7CisgICAgaWYg
KG1fdXNlUGF0aEZhbGxiYWNrKQorICAgICAgICByZXR1cm4gUmVuZGVyU1ZHU2hhcGU6OnNoYXBl
RGVwZW5kZW50RmlsbENvbnRhaW5zKHBvaW50LCBmaWxsUnVsZSk7CisgICAgcmV0dXJuIG1fZmls
bEJvdW5kaW5nQm94LmNvbnRhaW5zKHBvaW50LngoKSwgcG9pbnQueSgpKTsKK30KKworYm9vbCBS
ZW5kZXJTVkdSZWN0Ojppc1JlbmRlcmluZ0Rpc2FibGVkKCkgY29uc3QKK3sKKyAgICAvLyBBIHdp
ZHRoIG9yIGhlaWdodCBvZiB6ZXJvIGRpc2FibGVzIHJlbmRlcmluZyBmb3IgdGhlIGVsZW1lbnQs
IGFuZCByZXN1bHRzIGluIGFuIGVtcHR5IGJvdW5kaW5nIGJveC4KKyAgICByZXR1cm4gbV9maWxs
Qm91bmRpbmdCb3guaXNFbXB0eSgpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTEFZRVJf
QkFTRURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMzYWJmMGQ5OTRiNmRmYjczOTg3YWYyZTJlNjllNzZjNGMw
MjI5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVjdC5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
VW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAxMSBSZW5hdGEgSG9kb3Zh
biA8cmVuaUB3ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDIwLCAyMDIxLCAyMDIyIEln
YWxpYSBTLkwuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCisjaW5jbHVkZSAiUmVuZGVyU1ZH
U2hhcGUuaCIKKyNpbmNsdWRlICJTVkdSZWN0RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFJlbmRlclNWR1JlY3QgZmluYWwgOiBwdWJsaWMgUmVuZGVyU1ZHU2hhcGUg
eworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUmVuZGVyU1ZHUmVjdCk7CitwdWJsaWM6Cisg
ICAgUmVuZGVyU1ZHUmVjdChTVkdSZWN0RWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOworICAgIHZp
cnR1YWwgflJlbmRlclNWR1JlY3QoKTsKKworICAgIFNWR1JlY3RFbGVtZW50JiByZWN0RWxlbWVu
dCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIHZvaWQgZ3JhcGhpY3NFbGVtZW50KCkgY29uc3Qg
PSBkZWxldGU7CisKKyAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gIlJlbmRlclNWR1JlY3QiOyB9CisKKyAgICB2b2lkIHVwZGF0ZVNoYXBlRnJvbUVs
ZW1lbnQoKSBvdmVycmlkZTsKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3VzZVBhdGhGYWxsYmFjayA/IFJlbmRlclNWR1NoYXBlOjppc0VtcHR5KCkgOiBtX2Zp
bGxCb3VuZGluZ0JveC5pc0VtcHR5KCk7IH0KKyAgICBib29sIGlzUmVuZGVyaW5nRGlzYWJsZWQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGZpbGxTaGFwZShHcmFwaGljc0NvbnRleHQmKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHN0cm9rZVNoYXBlKEdyYXBoaWNzQ29udGV4dCYpIGNv
bnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhjb25z
dCBGbG9hdFBvaW50JiwgUG9pbnRDb29yZGluYXRlU3BhY2UgPSBHbG9iYWxDb29yZGluYXRlU3Bh
Y2UpIG92ZXJyaWRlOworICAgIGJvb2wgc2hhcGVEZXBlbmRlbnRGaWxsQ29udGFpbnMoY29uc3Qg
RmxvYXRQb2ludCYsIGNvbnN0IFdpbmRSdWxlKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToK
KyAgICBGbG9hdFJlY3QgbV9pbm5lclN0cm9rZVJlY3Q7CisgICAgRmxvYXRSZWN0IG1fb3V0ZXJT
dHJva2VSZWN0OworICAgIGJvb2wgbV91c2VQYXRoRmFsbGJhY2s7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcAppbmRleCBj
NzQ3MTBiYzFjZjgyNjNjODA4YmNjODUwN2ZlM2I4MGU1ODBlYjY3Li44ZDJhZDI1MTVkNTE2YWRl
NzcxZDRmOGZkZDg5ODZkOGYzOGMxOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdSZXNvdXJjZXMuY3BwCkBAIC0yMyw4ICsyMyw4IEBACiAjaW5jbHVkZSAiRmlsdGVy
T3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHUm9vdC5oIgogI2luY2x1ZGUg
IlBhdGhPcGVyYXRpb24uaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaCIK
LSNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oIgorI2luY2x1ZGUgIlJlbmRlclNW
R1Jlc291cmNlQ2xpcHBlcklubGluZXMuaCIKKyNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUZp
bHRlcklubGluZXMuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMu
aCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCIKICNpbmNsdWRl
ICJTVkdFbGVtZW50VHlwZUhlbHBlcnMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQu
Y3BwCmluZGV4IGMxNmMxN2JjMmQ4YTA0NzNlZTY0NThhYmFjMDZjN2JjZmJkNTgxNWEuLjcxN2Zl
NDhjNmFiNWM4YzE0NjUyZmE3N2Q4NTczNzBhM2Y4MTQ0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JlY3RFbGVtZW50LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIlNWR1JlY3RFbGVt
ZW50LmgiCiAKICNpbmNsdWRlICJMZWdhY3lSZW5kZXJTVkdSZWN0LmgiCisjaW5jbHVkZSAiUmVu
ZGVyU1ZHUmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAi
U1ZHRWxlbWVudElubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpA
QCAtODgsNiArODksMTIgQEAgdm9pZCBTVkdSZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR1JlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKKyAgICAvLyBGSVhNRTogW0xCU0Vd
IFVwc3RyZWFtIGVub3VnaCBjb2RlIHRvIGFsbG93IHRoZSBjcmVhdGlvbiBvZiBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0IGJhc2VkIFNWRyByZW5kZXJlcnMuCisjaWYgRU5BQkxFKExBWUVSX0JBU0VE
X1NWR19FTkdJTkUpCisgICAgaWYgKDAgJiYgZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxheWVyQmFz
ZWRTVkdFbmdpbmVFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJTVkdSZWN0PigqdGhpcywgV1RGTW92ZShzdHlsZSkpOworI2VuZGlmCisKICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8TGVnYWN5UmVuZGVyU1ZHUmVjdD4oKnRoaXMsIFdURk1vdmUoc3R5bGUp
KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448728</attachid>
            <date>2022-01-10 02:00:25 -0800</date>
            <delta_ts>2022-01-10 05:12:48 -0800</delta_ts>
            <desc>Patch, v2</desc>
            <filename>bug-234992-20220110020024.patch</filename>
            <type>text/plain</type>
            <size>20231</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTkxNmI2ZTAyOTYy
ZjA2OWJlZWM1ZDY1NjE4Njk0M2M0OTU5YS4uZWZmMjU4NTBjNTFkMTAzNDY4ZWVhMjVjZjYyNDBl
MzMzMWRkNjhkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIyLTAxLTEwICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBCZWdpbiBsYXllci1hd2FyZSBSZW5kZXJTVkdSZWN0IGltcGxlbWVudGF0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ5OTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgUmVuZGVyU1ZH
UmVjdCBhcyBjb3B5IG9mIExlZ2FjeVJlbmRlclNWR1JlY3QsIGluaGVyaXRpbmcgZnJvbQorICAg
ICAgICBSZW5kZXJTVkdTaGFwZSAoYW5kIHRodXMgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCkgaW5z
dGVhZCBvZgorICAgICAgICBMZWdhY3lSZW5kZXJTVkdTaGFwZSwgYXMgTGVnYWN5UmVuZGVyU1ZH
UmVjdCBkb2VzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3QgeWV0IGVuYWJsZSB0aGUg
Y3JlYXRpb24gb2YgUmVuZGVyU1ZHUmVjdAorICAgICAgICByZW5kZXJlcnMgaWYgTEJTRSBpcyBl
bmFibGVkLCB0aGlzIGlzIHBvc3Rwb25lZCB1bnRpbCBtb3JlCisgICAgICAgIGZ1bmN0aW9uYWxp
dHkgaXMgZnVsbHkgYXZhaWxhYmxlIGluIExCU0UgKHN1Y2ggYXMgbGF5b3V0ISkuCisKKyAgICAg
ICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW91ci4KKwor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR01vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlbmRlclNWR01vZGVsT2JqZWN0
OjpjbGlwcGVkT3ZlcmZsb3dSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJl
bmRlclNWR01vZGVsT2JqZWN0Ojpub2RlQXRQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZWN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdS
ZWN0OjpSZW5kZXJTVkdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1JlY3Q6OnJl
Y3RFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1JlY3Q6OnVwZGF0
ZVNoYXBlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVjdDo6Zmls
bFNoYXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1JlY3Q6OnN0cm9rZVNo
YXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1JlY3Q6OnNoYXBlRGVwZW5k
ZW50U3Ryb2tlQ29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVjdDo6c2hh
cGVEZXBlbmRlbnRGaWxsQ29udGFpbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHUmVjdDo6aXNSZW5kZXJpbmdEaXNhYmxlZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZWN0Lmg6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZH
UmVzb3VyY2VzLmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUmVjdEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisKIDIw
MjItMDEtMTAgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0xCU0VdIEludHJvZHVjZSBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDFiMGI4NjlkNjIwY2M4MDc3M2UwZjY4MmU0Y2Q4ZmJjOTYyODM5MmYuLjA5
YmFkMDg2NmU2MDcxODFkYWY4ZmM5MWU0ZGQ1N2I2MTliZmFkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0yNDkzLDYgKzI0OTMsNyBAQCByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2Vy
LmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQuY3BwCiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5jcHAKK3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVjdC5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHU2hhcGUuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDE1YmE2MDJjNmE0ZDdkNmIxZTFjNDk1OGRkMDhjYzcwOTgwOTYzNzQuLmQyOGIzODMxZDRmNjkx
OTJjYTU2MjAyYzgwMDRlMTc4M2RjM2M1YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNzMsNiArMzI3Myw3IEBACiAJCUEx
MDRFQzVFMjIwQTNFNEUwMENCRjY3QSAvKiBKU01vY2tQYXltZW50Q29udGFjdEZpZWxkcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwNEVDNUMyMjBB
M0U0NDAwQ0JGNjdBIC8qIEpTTW9ja1BheW1lbnRDb250YWN0RmllbGRzLmggKi87IH07CiAJCUEx
MDRGMjQ0MTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1bWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwNEYyNDIxNEM3MUY3QTAwOUUy
QzIzIC8qIENhY2hlZFNWR0RvY3VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEwQkI1ODUxNDg0RTNBNzAwQjJFODdBIC8qIExlZ2FjeVJl
bmRlclNWR1JlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExMEJCNTgzMTQ4NEUzQTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdSZWN0LmggKi87
IH07CisJCUExMEJCNTg1MTQ4NEUzQTcwMEIzQUI2RCAvKiBSZW5kZXJTVkdSZWN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBCQjU4MzE0ODRFM0E3
MDBCM0FCNkQgLyogUmVuZGVyU1ZHUmVjdC5oICovOyB9OwogCQlBMTBCQjU4QjE0ODRFM0IzMDBC
MkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEJCNTg5MTQ4NEUzQjMwMEIyRTg3QSAvKiBMZWdhY3lS
ZW5kZXJTVkdTaGFwZS5oICovOyB9OwogCQlBMTBCQjU4QjE0ODRFM0IzMDBDM0Y3N0IgLyogUmVu
ZGVyU1ZHU2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExMEJCNTg5MTQ4NEUzQjMwMEMzRjc3QiAvKiBSZW5kZXJTVkdTaGFwZS5oICovOyB9Owog
CQlBMTBEQkY0NzE4RjkyMzE3MDAwRDcwQzYgLyogTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwREJGNDYx
OEY5MjMxNzAwMEQ3MEM2IC8qIExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMzODIsNyArMTMzODMs
OSBAQAogCQlBMTA0RjI0MTE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkU1ZHRG9jdW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTA0RjI0MjE0QzcxRjdBMDA5RTJD
MjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2FjaGVkU1ZHRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEw
QkI1ODIxNDg0RTNBNzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1JlY3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHUmVjdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExMEJCNTgyMTQ4NEUzQTcwMEIzQUI2RCAvKiBS
ZW5kZXJTVkdSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bmRlclNWR1JlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4MzE0
ODRFM0E3MDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUExMEJCNTgzMTQ4NEUzQTcwMEIzQUI2RCAvKiBSZW5kZXJTVkdSZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1JlY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODgxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2Fj
eVJlbmRlclNWR1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExlZ2FjeVJlbmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTEwQ0M1ODgxNDczRTNCMzAwQjJBOEJGIC8qIFJlbmRlclNWR1NoYXBlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJl
bmRlclNWR1NoYXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJl
bmRlclNWR1NoYXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODk0OCw2ICsx
ODk1MSw4IEBACiAJCQkJNDM2NzA4RkQxMkQ5Q0E0QTAwMDMyMTE0IC8qIFJlbmRlclNWR01vZGVs
T2JqZWN0LmggKi8sCiAJCQkJQURERjFBRDQxMjU3Q0Q5QTAwMDNBNzU5IC8qIFJlbmRlclNWR1Bh
dGguY3BwICovLAogCQkJCUFEREYxQUQ1MTI1N0NEOUEwMDAzQTc1OSAvKiBSZW5kZXJTVkdQYXRo
LmggKi8sCisJCQkJQTEwQkI1ODIxNDg0RTNBNzAwQjNBQjZEIC8qIFJlbmRlclNWR1JlY3QuY3Bw
ICovLAorCQkJCUExMEJCNTgzMTQ4NEUzQTcwMEIzQUI2RCAvKiBSZW5kZXJTVkdSZWN0LmggKi8s
CiAJCQkJNDM2NzA4OEQxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlLmNwcCAq
LywKIAkJCQk0MzY3MDg4RTEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVzb3VyY2UuaCAq
LywKIAkJCQk0MzY3MDg4RjEyRDlDQTRBMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVzb3VyY2VDbGlw
cGVyLmNwcCAqLywKQEAgLTM2NzQ0LDYgKzM2NzQ5LDcgQEAKIAkJCQkwODU0QjAxNzEyNTVFNEU2
MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2
NzBDOTM0MkQ5QkM0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR01vZGVsT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBRERGMUFENzEyNTdDRDlBMDAwM0E3NTkgLyogUmVuZGVyU1ZHUGF0aC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQTEwQkI1ODUxNDg0RTNBNzAwQjNBQjZEIC8qIFJlbmRlclNWR1Jl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOENEMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5k
ZXJTVkdSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4Q0YxMkQ5Q0E0QjAwMDQ0
MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RG
NzQ3RUYyNzBGNkY4RDAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcklubGluZXMu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9MZWdhY3lSZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL0xlZ2FjeVJlbmRlclNWR01vZGVsT2JqZWN0LmNwcAppbmRleCA0NTU0NzM1MWY0ZDAz
ZWM5NmYzYWIzMjFlY2Q5NjhiMWNjNWQ1YTZlLi4zMjdlMDIzMWE4YzhiZGQ2OGFjNjJlZWNjNzE2
ZThhZjAzOTE4NDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL0xl
Z2FjeVJlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL0xlZ2FjeVJlbmRlclNWR01vZGVsT2JqZWN0LmNwcApAQCAtNTEsMjAgKzUxLDggQEAg
TGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OkxlZ2FjeVJlbmRlclNWR01vZGVsT2JqZWN0KFNW
R0VsZW1lbnQmIGVsZW1lbnQsIFJlbmQKIHsKIH0KIAotTGF5b3V0UmVjdCBMZWdhY3lSZW5kZXJT
VkdNb2RlbE9iamVjdDo6Y2xpcHBlZE92ZXJmbG93UmVjdChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBWaXNpYmxlUmVjdENvbnRleHQgY29udGV4dCkgY29u
c3QKK0xheW91dFJlY3QgTGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNsaXBwZWRPdmVyZmxv
d1JlY3QoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVmlz
aWJsZVJlY3RDb250ZXh0KSBjb25zdAogewotI2lmIEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5H
SU5FKQotICAgIGlmIChkb2N1bWVudCgpLnNldHRpbmdzKCkubGF5ZXJCYXNlZFNWR0VuZ2luZUVu
YWJsZWQoKSkgewotICAgICAgICBpZiAoc3R5bGUoKS52aXNpYmlsaXR5KCkgIT0gVmlzaWJpbGl0
eTo6VmlzaWJsZSAmJiAhZW5jbG9zaW5nTGF5ZXIoKS0+aGFzVmlzaWJsZUNvbnRlbnQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7Ci0KLSAgICAgICAgQVNTRVJUKCF2aWV3KCku
ZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzUGFpbnRPZmZzZXRDYWNoZUVuYWJsZWQoKSk7
Ci0gICAgICAgIHJldHVybiBjb21wdXRlUmVjdCh2aXN1YWxPdmVyZmxvd1JlY3RFcXVpdmFsZW50
KCksIHJlcGFpbnRDb250YWluZXIsIGNvbnRleHQpOwotICAgIH0KLSNlbHNlCi0gICAgVU5VU0VE
X1BBUkFNKGNvbnRleHQpOwotI2VuZGlmCi0KICAgICByZXR1cm4gU1ZHUmVuZGVyU3VwcG9ydDo6
Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoKnRoaXMsIHJlcGFpbnRDb250YWluZXIpOwog
fQogCkBAIC0xMjYsMTQgKzExNCw2IEBAIHZvaWQgTGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3Q6
OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kCiAKIGJvb2wg
TGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYsIGNvbnN0IExheW91
dFBvaW50JiwgSGl0VGVzdEFjdGlvbikKIHsKLSNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VO
R0lORSkKLSAgICBpZiAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxheWVyQmFzZWRTVkdFbmdpbmVF
bmFibGVkKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBMZWdhY3lSZW5k
ZXJTVkdNb2RlbE9iamVjdCBpbmhlcml0YW5jZSBjaGFuZ2VzIChzaG91bGQgaW5oZXJpdCBmcm9t
IFJlbmRlckxheWVyTW9kZWxPYmplY3QpLgotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotI2VuZGlmCi0KICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1JlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzRmY2Y2ZTMwY2JiMmY0ZDc5MTJm
NTRlMDgwZmNiOTA1ZGM1YThhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNwcApAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorICogQ29weXJpZ2h0IChDKSAy
MDExIFJlbmF0YSBIb2RvdmFuIDxyZW5pQHdlYmtpdC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAsIDIwMjEsIDIwMjIgSWdhbGlhIFMuTC4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNa
RUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pF
R0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1JlY3QuaCIKKworI2lm
IEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5HSU5FKQorI2luY2x1ZGUgIlJlbmRlclNWR1NoYXBl
SW5saW5lcy5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnRUeXBlSGVscGVycy5oIgorI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlclNWR1JlY3QpOworCitSZW5kZXJTVkdSZWN0OjpS
ZW5kZXJTVkdSZWN0KFNWR1JlY3RFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxl
KQorICAgIDogUmVuZGVyU1ZHU2hhcGUoZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpCisgICAgLCBt
X3VzZVBhdGhGYWxsYmFjayhmYWxzZSkKK3sKK30KKworUmVuZGVyU1ZHUmVjdDo6flJlbmRlclNW
R1JlY3QoKSA9IGRlZmF1bHQ7CisKK1NWR1JlY3RFbGVtZW50JiBSZW5kZXJTVkdSZWN0OjpyZWN0
RWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvd25jYXN0PFNWR1JlY3RFbGVtZW50PihS
ZW5kZXJTVkdTaGFwZTo6Z3JhcGhpY3NFbGVtZW50KCkpOworfQorCit2b2lkIFJlbmRlclNWR1Jl
Y3Q6OnVwZGF0ZVNoYXBlRnJvbUVsZW1lbnQoKQoreworICAgIC8vIEJlZm9yZSBjcmVhdGluZyBh
IG5ldyBvYmplY3Qgd2UgbmVlZCB0byBjbGVhciB0aGUgY2FjaGVkIGJvdW5kaW5nIGJveAorICAg
IC8vIHRvIGF2b2lkIHVzaW5nIGdhcmJhZ2UuCisgICAgbV9maWxsQm91bmRpbmdCb3ggPSBGbG9h
dFJlY3QoKTsKKyAgICBtX2lubmVyU3Ryb2tlUmVjdCA9IEZsb2F0UmVjdCgpOworICAgIG1fb3V0
ZXJTdHJva2VSZWN0ID0gRmxvYXRSZWN0KCk7CisgICAgY2xlYXJQYXRoKCk7CisgICAgbV91c2VQ
YXRoRmFsbGJhY2sgPSBmYWxzZTsKKworICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4
dCgmcmVjdEVsZW1lbnQoKSk7CisgICAgRmxvYXRTaXplIGJvdW5kaW5nQm94U2l6ZShsZW5ndGhD
b250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkud2lkdGgoKSwgU1ZHTGVuZ3RoTW9kZTo6V2lk
dGgpLCBsZW5ndGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkuaGVpZ2h0KCksIFNWR0xl
bmd0aE1vZGU6OkhlaWdodCkpOworCisgICAgLy8gU3BlYzogIkEgbmVnYXRpdmUgdmFsdWUgaXMg
aWxsZWdhbC4gQSB2YWx1ZSBvZiB6ZXJvIGRpc2FibGVzIHJlbmRlcmluZyBvZiB0aGUgZWxlbWVu
dC4iCisgICAgaWYgKGJvdW5kaW5nQm94U2l6ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChyZWN0RWxlbWVudCgpLnJ4KCkudmFsdWUobGVuZ3RoQ29udGV4dCkgPiAwIHx8
IHJlY3RFbGVtZW50KCkucnkoKS52YWx1ZShsZW5ndGhDb250ZXh0KSA+IDAgfHwgaGFzTm9uU2Nh
bGluZ1N0cm9rZSgpKSB7CisgICAgICAgIC8vIEZhbGwgYmFjayB0byBSZW5kZXJTVkdTaGFwZQor
ICAgICAgICBSZW5kZXJTVkdTaGFwZTo6dXBkYXRlU2hhcGVGcm9tRWxlbWVudCgpOworICAgICAg
ICBtX3VzZVBhdGhGYWxsYmFjayA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2ZpbGxCb3VuZGluZ0JveCA9IEZsb2F0UmVjdChGbG9hdFBvaW50KGxlbmd0aENvbnRleHQu
dmFsdWVGb3JMZW5ndGgoc3R5bGUoKS5zdmdTdHlsZSgpLngoKSwgU1ZHTGVuZ3RoTW9kZTo6V2lk
dGgpLAorICAgICAgICBsZW5ndGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkuc3ZnU3R5
bGUoKS55KCksIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkpLAorICAgICAgICBib3VuZGluZ0JveFNp
emUpOworCisgICAgLy8gVG8gZGVjaWRlIGlmIHRoZSBzdHJva2UgY29udGFpbnMgYSBwb2ludCB3
ZSBjcmVhdGUgdHdvIHJlY3RzIHdoaWNoIHJlcHJlc2VudCB0aGUgaW5uZXIgYW5kCisgICAgLy8g
dGhlIG91dGVyIHN0cm9rZSBib3JkZXJzLiBBIHN0cm9rZSBjb250YWlucyB0aGUgcG9pbnQsIGlm
IHRoZSBwb2ludCBpcyBiZXR3ZWVuIHRoZW0uCisgICAgbV9pbm5lclN0cm9rZVJlY3QgPSBtX2Zp
bGxCb3VuZGluZ0JveDsKKyAgICBtX291dGVyU3Ryb2tlUmVjdCA9IG1fZmlsbEJvdW5kaW5nQm94
OworCisgICAgaWYgKHN0eWxlKCkuc3ZnU3R5bGUoKS5oYXNTdHJva2UoKSkgeworICAgICAgICBm
bG9hdCBzdHJva2VXaWR0aCA9IHRoaXMtPnN0cm9rZVdpZHRoKCk7CisgICAgICAgIG1faW5uZXJT
dHJva2VSZWN0LmluZmxhdGUoLXN0cm9rZVdpZHRoIC8gMik7CisgICAgICAgIG1fb3V0ZXJTdHJv
a2VSZWN0LmluZmxhdGUoc3Ryb2tlV2lkdGggLyAyKTsKKyAgICB9CisKKyAgICBtX3N0cm9rZUJv
dW5kaW5nQm94ID0gbV9vdXRlclN0cm9rZVJlY3Q7CisKKyNpZiBVU0UoQ0cpCisgICAgLy8gQ29y
ZUdyYXBoaWNzIGNhbiBpbmZsYXRlIHRoZSBzdHJva2UgYnkgMXB4IHdoZW4gZHJhd2luZyBhIHJl
Y3RhbmdsZSB3aXRoIGFudGlhbGlhc2luZyBkaXNhYmxlZCBhdCBub24taW50ZWdlciBjb29yZGlu
YXRlcywgd2UgbmVlZCB0byBjb21wZW5zYXRlLgorICAgIGlmIChzdHlsZSgpLnN2Z1N0eWxlKCku
c2hhcGVSZW5kZXJpbmcoKSA9PSBTaGFwZVJlbmRlcmluZzo6Q3Jpc3BFZGdlcykKKyAgICAgICAg
bV9zdHJva2VCb3VuZGluZ0JveC5pbmZsYXRlKDEpOworI2VuZGlmCit9CisKK3ZvaWQgUmVuZGVy
U1ZHUmVjdDo6ZmlsbFNoYXBlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAg
ICBpZiAobV91c2VQYXRoRmFsbGJhY2spIHsKKyAgICAgICAgUmVuZGVyU1ZHU2hhcGU6OmZpbGxT
aGFwZShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworI2lmIFVTRShDRykKKyAg
ICAvLyBGSVhNRTogQ0cgaW1wbGVtZW50YXRpb24gb2YgR3JhcGhpY3NDb250ZXh0Q0c6OmZpbGxS
ZWN0IGhhcyBhbiBvd24KKyAgICAvLyBzaGFkb3cgZHJhd2luZyBtZXRob2QsIHdoaWNoIGRyYXdz
IGFuIGV4dHJhIHNoYWRvdy4KKyAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3Igc3dpdGNo
aW5nIG9mZiB0aGUgZXh0cmEgc2hhZG93LgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02ODg5OQorICAgIGlmIChjb250ZXh0Lmhhc1NoYWRvdygpKSB7Cisg
ICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKyAg
ICAgICAgY29udGV4dC5jbGVhclNoYWRvdygpOworICAgICAgICBjb250ZXh0LmZpbGxSZWN0KG1f
ZmlsbEJvdW5kaW5nQm94KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAg
Y29udGV4dC5maWxsUmVjdChtX2ZpbGxCb3VuZGluZ0JveCk7Cit9CisKK3ZvaWQgUmVuZGVyU1ZH
UmVjdDo6c3Ryb2tlU2hhcGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAg
IGlmICghc3R5bGUoKS5oYXNWaXNpYmxlU3Ryb2tlKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChtX3VzZVBhdGhGYWxsYmFjaykgeworICAgICAgICBSZW5kZXJTVkdTaGFwZTo6c3Ryb2tl
U2hhcGUoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb250ZXh0LnN0
cm9rZVJlY3QobV9maWxsQm91bmRpbmdCb3gsIHN0cm9rZVdpZHRoKCkpOworfQorCitib29sIFJl
bmRlclNWR1JlY3Q6OnNoYXBlRGVwZW5kZW50U3Ryb2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQsIFBvaW50Q29vcmRpbmF0ZVNwYWNlIHBvaW50Q29vcmRpbmF0ZVNwYWNlKQorewor
ICAgIC8vIFRoZSBvcHRpbWl6ZWQgY29udGFpbnMgY29kZSBiZWxvdyBkb2VzIG5vdCBzdXBwb3J0
IG5vbi1zbW9vdGggc3Ryb2tlcyBzbyB3ZSBuZWVkCisgICAgLy8gdG8gZmFsbCBiYWNrIHRvIFJl
bmRlclNWR1NoYXBlOjpzaGFwZURlcGVuZGVudFN0cm9rZUNvbnRhaW5zIGluIHRoZXNlIGNhc2Vz
LgorICAgIGlmIChtX3VzZVBhdGhGYWxsYmFjayB8fCAhaGFzU21vb3RoU3Ryb2tlKCkpIHsKKyAg
ICAgICAgaWYgKCFoYXNQYXRoKCkpCisgICAgICAgICAgICBSZW5kZXJTVkdTaGFwZTo6dXBkYXRl
U2hhcGVGcm9tRWxlbWVudCgpOworICAgICAgICByZXR1cm4gUmVuZGVyU1ZHU2hhcGU6OnNoYXBl
RGVwZW5kZW50U3Ryb2tlQ29udGFpbnMocG9pbnQsIHBvaW50Q29vcmRpbmF0ZVNwYWNlKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gbV9vdXRlclN0cm9rZVJlY3QuY29udGFpbnMocG9pbnQsIEZsb2F0
UmVjdDo6SW5zaWRlT3JPblN0cm9rZSkgJiYgIW1faW5uZXJTdHJva2VSZWN0LmNvbnRhaW5zKHBv
aW50LCBGbG9hdFJlY3Q6Okluc2lkZUJ1dE5vdE9uU3Ryb2tlKTsKK30KKworYm9vbCBSZW5kZXJT
VkdSZWN0OjpzaGFwZURlcGVuZGVudEZpbGxDb250YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgY29uc3QgV2luZFJ1bGUgZmlsbFJ1bGUpIGNvbnN0Cit7CisgICAgaWYgKG1fdXNlUGF0aEZh
bGxiYWNrKQorICAgICAgICByZXR1cm4gUmVuZGVyU1ZHU2hhcGU6OnNoYXBlRGVwZW5kZW50Rmls
bENvbnRhaW5zKHBvaW50LCBmaWxsUnVsZSk7CisgICAgcmV0dXJuIG1fZmlsbEJvdW5kaW5nQm94
LmNvbnRhaW5zKHBvaW50LngoKSwgcG9pbnQueSgpKTsKK30KKworYm9vbCBSZW5kZXJTVkdSZWN0
Ojppc1JlbmRlcmluZ0Rpc2FibGVkKCkgY29uc3QKK3sKKyAgICAvLyBBIHdpZHRoIG9yIGhlaWdo
dCBvZiB6ZXJvIGRpc2FibGVzIHJlbmRlcmluZyBmb3IgdGhlIGVsZW1lbnQsIGFuZCByZXN1bHRz
IGluIGFuIGVtcHR5IGJvdW5kaW5nIGJveC4KKyAgICByZXR1cm4gbV9maWxsQm91bmRpbmdCb3gu
aXNFbXB0eSgpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VO
R0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWMzYWJmMGQ5OTRiNmRmYjczOTg3YWYyZTJlNjllNzZjNGMwMjI5MQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5o
CkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBv
ZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAxMSBSZW5hdGEgSG9kb3ZhbiA8cmVuaUB3ZWJr
aXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDIwLCAyMDIxLCAyMDIyIElnYWxpYSBTLkwuCisg
KiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCisjaW5jbHVkZSAiUmVuZGVyU1ZHU2hhcGUuaCIKKyNp
bmNsdWRlICJTVkdSZWN0RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFJlbmRlclNWR1JlY3QgZmluYWwgOiBwdWJsaWMgUmVuZGVyU1ZHU2hhcGUgeworICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoUmVuZGVyU1ZHUmVjdCk7CitwdWJsaWM6CisgICAgUmVuZGVyU1ZH
UmVjdChTVkdSZWN0RWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOworICAgIHZpcnR1YWwgflJlbmRl
clNWR1JlY3QoKTsKKworICAgIFNWR1JlY3RFbGVtZW50JiByZWN0RWxlbWVudCgpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIHZvaWQgZ3JhcGhpY3NFbGVtZW50KCkgY29uc3QgPSBkZWxldGU7CisK
KyAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJl
bmRlclNWR1JlY3QiOyB9CisKKyAgICB2b2lkIHVwZGF0ZVNoYXBlRnJvbUVsZW1lbnQoKSBvdmVy
cmlkZTsKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3VzZVBh
dGhGYWxsYmFjayA/IFJlbmRlclNWR1NoYXBlOjppc0VtcHR5KCkgOiBtX2ZpbGxCb3VuZGluZ0Jv
eC5pc0VtcHR5KCk7IH0KKyAgICBib29sIGlzUmVuZGVyaW5nRGlzYWJsZWQoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2b2lkIGZpbGxTaGFwZShHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2b2lkIHN0cm9rZVNoYXBlKEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRl
OworICAgIGJvb2wgc2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhjb25zdCBGbG9hdFBvaW50
JiwgUG9pbnRDb29yZGluYXRlU3BhY2UgPSBHbG9iYWxDb29yZGluYXRlU3BhY2UpIG92ZXJyaWRl
OworICAgIGJvb2wgc2hhcGVEZXBlbmRlbnRGaWxsQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYs
IGNvbnN0IFdpbmRSdWxlKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBGbG9hdFJl
Y3QgbV9pbm5lclN0cm9rZVJlY3Q7CisgICAgRmxvYXRSZWN0IG1fb3V0ZXJTdHJva2VSZWN0Owor
ICAgIGJvb2wgbV91c2VQYXRoRmFsbGJhY2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcAppbmRleCBjNzQ3MTBiYzFjZjgy
NjNjODA4YmNjODUwN2ZlM2I4MGU1ODBlYjY3Li44ZDJhZDI1MTVkNTE2YWRlNzcxZDRmOGZkZDg5
ODZkOGYzOGMxOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1Jlc291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNv
dXJjZXMuY3BwCkBAIC0yMyw4ICsyMyw4IEBACiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgi
CiAjaW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHUm9vdC5oIgogI2luY2x1ZGUgIlBhdGhPcGVyYXRp
b24uaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaCIKLSNpbmNsdWRlICJS
ZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlQ2xp
cHBlcklubGluZXMuaCIKKyNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcklubGluZXMu
aCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMuaCIKICNpbmNsdWRl
ICJSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50
VHlwZUhlbHBlcnMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCmluZGV4IGMx
NmMxN2JjMmQ4YTA0NzNlZTY0NThhYmFjMDZjN2JjZmJkNTgxNWEuLjcxN2ZlNDhjNmFiNWM4YzE0
NjUyZmE3N2Q4NTczNzBhM2Y4MTQ0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50
LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIlNWR1JlY3RFbGVtZW50LmgiCiAKICNp
bmNsdWRlICJMZWdhY3lSZW5kZXJTVkdSZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHUmVjdC5o
IgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudElu
bGluZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtODgsNiArODks
MTIgQEAgdm9pZCBTVkdSZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1JlY3RF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKKyAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIGVu
b3VnaCBjb2RlIHRvIGFsbG93IHRoZSBjcmVhdGlvbiBvZiBSZW5kZXJMYXllck1vZGVsT2JqZWN0
IGJhc2VkIFNWRyByZW5kZXJlcnMuCisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUp
CisgICAgaWYgKDAgJiYgZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxheWVyQmFzZWRTVkdFbmdpbmVF
bmFibGVkKCkpCisgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdSZWN0Pigq
dGhpcywgV1RGTW92ZShzdHlsZSkpOworI2VuZGlmCisKICAgICByZXR1cm4gY3JlYXRlUmVuZGVy
ZXI8TGVnYWN5UmVuZGVyU1ZHUmVjdD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAo=
</data>
<flag name="review"
          id="474664"
          type_id="1"
          status="+"
          setter="rbuis"
    />
    <flag name="commit-queue"
          id="474675"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>