<?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>237024</bug_id>
          
          <creation_ts>2022-02-22 01:02:36 -0800</creation_ts>
          <short_desc>[LBSE] Begin layer-aware RenderSVGTransformableContainer implementation</short_desc>
          <delta_ts>2022-03-07 03:16:49 -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>
          <dependson>237023</dependson>
          <blocked>90738</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>1844589</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-02-22 01:02:36 -0800</bug_when>
    <thetext>After renaming RenderSVGTransformableContainer -&gt; LegacyRenderSVGTransformableContainer (bug 237023), RenderSVGTransformableContainer can be re-introduced for LBSE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844813</commentid>
    <comment_count>1</comment_count>
      <attachid>452887</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-02-22 11:44:43 -0800</bug_when>
    <thetext>Created attachment 452887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844825</commentid>
    <comment_count>2</comment_count>
      <attachid>452893</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-02-22 12:24:39 -0800</bug_when>
    <thetext>Created attachment 452893
Patch, v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845084</commentid>
    <comment_count>3</comment_count>
      <attachid>452893</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-02-23 04:14:27 -0800</bug_when>
    <thetext>Comment on attachment 452893
Patch, v2

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

&gt; Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h:3
&gt; + * Copyright (C) 2009 Google, Inc.

Does this need Igalia 2022 copyright?

&gt; Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h:30
&gt; +class RenderSVGTransformableContainer final : public RenderSVGContainer {

Is this really final? If so why do we have a method that is override and not final?

&gt; Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h:46
&gt; +    FloatPoint extraContainerTranslation() const;

extra sounds not so nice, additional?

&gt; Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h:50
&gt; +    void updateFromStyle() final;

Probably better to separate the methods and member vars below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846943</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-01 01:03:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/89607181&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848249</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-04 04:26:20 -0800</bug_when>
    <thetext>(In reply to Rob Buis from comment #3)
&gt; Comment on attachment 452893 [details]
&gt; Patch, v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=452893&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h:3
&gt; &gt; + * Copyright (C) 2009 Google, Inc.
&gt; 
&gt; Does this need Igalia 2022 copyright?
Fixed, also 2020 and 2021.

&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h:30
&gt; &gt; +class RenderSVGTransformableContainer final : public RenderSVGContainer {
&gt; 
&gt; Is this really final? If so why do we have a method that is override and not
&gt; final?
Good question in general. Do we have rules/preferences for that?
Marking a class as final means that you cannot inherit from it anymore, a stricter constraint than imposing final/override qualifiers per function. Does that mean we automatically should rewrite s/override/final/ on all methods, because the class is marked as final? Here it makes sense, just wondering about the general preferences.

Thanks.

&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h:46
&gt; &gt; +    FloatPoint extraContainerTranslation() const;
&gt; 
&gt; extra sounds not so nice, additional?
Fixed.

&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h:50
&gt; &gt; +    void updateFromStyle() final;
&gt; 
&gt; Probably better to separate the methods and member vars below.
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848251</commentid>
    <comment_count>6</comment_count>
      <attachid>453833</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-04 04:26:46 -0800</bug_when>
    <thetext>Created attachment 453833
Patch, v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848669</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-07 03:16:49 -0800</bug_when>
    <thetext>Committed r290880 (248111@trunk): &lt;https://commits.webkit.org/248111@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452887</attachid>
            <date>2022-02-22 11:44:43 -0800</date>
            <delta_ts>2022-02-22 12:41:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237024-20220222114442.patch</filename>
            <type>text/plain</type>
            <size>19309</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzg2ZDJjNjAyMDNkZGYy
OTFkNzg1N2FkMzZmYjhjOGI5YzRmYjUzZC4uMDMyMzBlNjg3MTJiNWZhYmMyNDA3ZjBkMTMyZjRk
NWExOWY3ZGVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAyLTIyICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBCZWdpbiBsYXllci1hd2FyZSBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyIGltcGxl
bWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzcwMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDcmVhdGUgUmVuZGVyU1ZHQ29udGFpbmVyIGJhc2VkIG9uIHRoZSBkb3duc3RyZWFtIExCU0Ug
aW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIG5vdCB5ZXQgZW5hYmxl
IHRoZSBjcmVhdGlvbiBvZiBSZW5kZXJTVkdDb250YWluZXIKKyAgICAgICAgcmVuZGVyZXJzIGlm
IExCU0UgaXMgZW5hYmxlZCwgc2luY2UgdGhlIGRlcml2ZWQgY2xhc3Nlcywgc3VjaCBhcworICAg
ICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIgLyBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ciAvIC4uLiwgYXJlIHN0aWxsCisgICAgICAgIG1pc3NpbmcgaW4gTEJTRS4KKworICAgICAgICBD
b3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAg
ICAgICogU291cmNlcy50eHQ6IEFkZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLiog
dG8gYnVpbGQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBE
aXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmlzU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmFzc29jaWF0ZWRVc2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXI6OmV4dHJhQ29udGFpbmVyVHJhbnNsYXRpb24gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6Y2FsY3VsYXRl
Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lcjo6bGF5b3V0Q2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVHJhbnNm
b3JtYWJsZUNvbnRhaW5lcjo6dXBkYXRlRnJvbVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OnN0eWxlV2ls
bENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyOjpncmFwaGljc0VsZW1lbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1NWR0NvbnRhaW5lckxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb250
YWluZXJMYXlvdXQ6OnRyYW5zZm9ybVRvUm9vdENoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdF
bGVtZW50LmNwcDogQ3JlYXRlIHJlbmRlcmVyIGZvciA8Zz4gZWxlbWVudHMgaW4gTEJTRSBtb2Rl
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU1ZHTGF5ZXJBd2FyZUVsZW1lbnRTZXQpOgorICAg
ICAgICAqIHN2Zy9TVkdHRWxlbWVudC5jcHA6IERpdGV0by4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0dFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorCiAyMDIyLTAyLTIyICBOaWtvbGFz
IFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtMQlNFXSBS
ZW5hbWUgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciAtPiBMZWdhY3lSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGVmNjNiNTQyY2NiZjE5MGNi
YjUxZTFjNDVmNWU5YTgyMzYzNWQyNzQuLjZkMWQ0ZmM2ZDI3Y2E2MTkzNWFjYmI2NTM3NmVhZjI0
ZjFkYmUzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNTExLDYgKzI1MTEsNyBAQCByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1NoYXBlLmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUU3Bhbi5jcHAK
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
VGV4dFBhdGguY3BwCityZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWlu
ZXIuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcAogcmVu
ZGVyaW5nL3N2Zy9TVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNwcAogcmVuZGVyaW5nL3N2Zy9T
VkdDb250YWluZXJMYXlvdXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmMzNmZjZmEwMTEwZDFlODEyYTQ1NjE0ZGMxZGU2
ZDUzMTE0Y2MzMi4uNTc3ZTA5YTgxMGEyZGI5NjExM2YzMTRlOWU0MmE1NmVlNjQyMDJkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTI2Myw2ICsxMjYzLDcgQEAKIAkJNDM2NzA4RTMxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRl
clNWR1Jlc291cmNlU29saWRDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDM2NzA4QTQxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291
cmNlU29saWRDb2xvci5oICovOyB9OwogCQk0MzY3MDhFNTEyRDlDQTRCMDAwNDQyMzQgLyogTGVn
YWN5UmVuZGVyU1ZHUm9vdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDM2NzA4QTYxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1Jvb3Qu
aCAqLzsgfTsKIAkJNDM2NzA4RTUxMkQ5REI0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jvb3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEE2MTJE
OURCNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSb290LmggKi87IH07CisJCTQzNjcwN0U3MjRDOUNB
NEIxMDA0NDIzNCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MThCQjEyRDlDQTRCMDAw
NDIyMzQgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oICovOyB9OwogCQk0MzY3
MDhFOTEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2
NzA4QUExMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIuaCAqLzsgfTsKIAkJNDM2NzA4RUIxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Zp
ZXdwb3J0Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MzY3MDhBQzEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIuaCAqLzsgfTsKIAkJNDM2NzA4RUUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR01hcmtlckRh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcw
OEFGMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdNYXJrZXJEYXRhLmggKi87IH07CkBAIC05MDkxLDcg
KzkwOTIsOSBAQAogCQk0MzY3MDhBNTEyRDlDQTVDMDAwNDQyMzQgLyogUmVuZGVyU1ZHUm9vdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdSb290LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM2NzA4QTYxMkQ5Q0E0QjAwMDQ0MjM0
IC8qIExlZ2FjeVJlbmRlclNWR1Jvb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGVnYWN5UmVuZGVyU1ZHUm9vdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MzY3MDhBNjEyRDlEQjRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUm9vdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSb290Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQzNjcwOEI4MTJDOUNBNEMwMDAxMTQzNCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MzY3MDhBOTEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHVHJhbnNm
b3JtYWJsZUNvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDM2NzE4QkIxMkQ5Q0E0QjAwMDQyMjM0IC8qIFJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MzY3MDhBQTEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHVHJhbnNm
b3JtYWJsZUNvbnRhaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdh
Y3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQzNjcwOEFCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENv
bnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJT
VkdWaWV3cG9ydENvbnRhaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQz
NjcwOEFDMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkxMjYsNiArMTkxMjksOCBAQAog
CQkJCTA4NTRCMDA3MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUZXh0LmggKi8sCiAJCQkJ
MDg1NEIwMDgxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RleHRQYXRoLmNwcCAqLywKIAkJ
CQkwODU0QjAwOTEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4dFBhdGguaCAqLywKKwkJ
CQk0MzY3MDhCODEyQzlDQTRDMDAwMTE0MzQgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5jcHAgKi8sCisJCQkJNDM2NzE4QkIxMkQ5Q0E0QjAwMDQyMjM0IC8qIFJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIuaCAqLywKIAkJCQkwODU0QjAwQjEyNTVFNEU2MDBCOUNERDAg
LyogUmVuZGVyU1ZHVFNwYW4uaCAqLywKIAkJCQk0MzY3MDhBQjEyRDlDQTRCMDAwNDQyMzQgLyog
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwICovLAogCQkJCTQzNjcwOEFDMTJEOUNBNEIw
MDA0NDIzNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oICovLApAQCAtMzY5NzYsNiAr
MzY5ODEsNyBAQAogCQkJCUNERjc0N0Y3MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NTRCMDE5MTI1NUU0RTYwMEI5Q0REMCAv
KiBSZW5kZXJTVkdUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAxQjEyNTVFNEU2MDBC
OUNERDAgLyogUmVuZGVyU1ZHVGV4dFBhdGguaCBpbiBIZWFkZXJzICovLAorCQkJCTQzNjcwN0U3
MjRDOUNBNEIxMDA0NDIzNCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwODU0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVFNw
YW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOEVCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5k
ZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThERjRBRUIwOTgw
QzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCBmMGVlYWFlYzk4NGQ4M2I2YWQ2ZDE5YWVl
OTY1OWUzYjM2M2Y0ZmU3Li40NWFjYTEyMjQwZjZlYThlNjRhNzU0NjI2ZDc3NjUwZWE1NWNmNWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0zMzAsNiArMzMw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NWR1Jvb3QoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0NvbnRhaW5lcigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGVnYWN5U1ZHQ29udGFpbmVyKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdUcmFuc2Zvcm1hYmxl
Q29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNM
ZWdhY3lTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdWaWV3cG9ydENvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU1ZHR3JhZGllbnRTdG9wKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNlZTQ2YTM2NmMxYzIwMjA5YTkxOTdiNzAyMWY5MjBmZTZlYmVmMmEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXIuY3BwCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgiCisKKyNpbmNsdWRlICJSZW5kZXJT
VkdNb2RlbE9iamVjdElubGluZXMuaCIKKyNpbmNsdWRlICJTVkdDb250YWluZXJMYXlvdXQuaCIK
KyNpbmNsdWRlICJTVkdFbGVtZW50VHlwZUhlbHBlcnMuaCIKKyNpbmNsdWRlICJTVkdHRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlNWR0dyYXBoaWNzRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR1BhdGhE
YXRhLmgiCisjaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIpOworCitSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKFNW
R0dyYXBoaWNzRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKKyAgICA6IFJl
bmRlclNWR0NvbnRhaW5lcihlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKK3sKK30KKworaW5saW5l
IFNWR1VzZUVsZW1lbnQqIGFzc29jaWF0ZWRVc2VFbGVtZW50KFNWR0dyYXBoaWNzRWxlbWVudCYg
ZWxlbWVudCkKK3sKKyAgICAvLyBJZiB3ZSdyZSBlaXRoZXIgdGhlIHJlbmRlcmVyIGZvciBhIDx1
c2U+IGVsZW1lbnQsIG9yIGZvciBhbnkgPGc+IGVsZW1lbnQgaW5zaWRlIHRoZSBzaGFkb3cKKyAg
ICAvLyB0cmVlLCB0aGF0IHdhcyBjcmVhdGVkIGR1cmluZyB0aGUgdXNlL3N5bWJvbC9zdmcgZXhw
YW5zaW9uIGluIFNWR1VzZUVsZW1lbnQuIFRoZXNlIGNvbnRhaW5lcnMKKyAgICAvLyBuZWVkIHRv
IHJlc3BlY3QgdGhlIHRyYW5zbGF0aW9ucyBpbmR1Y2VkIGJ5IHRoZWlyIGNvcnJlc3BvbmRpbmcg
dXNlIGVsZW1lbnRzIHgveSBhdHRyaWJ1dGVzLgorICAgIGlmIChpczxTVkdVc2VFbGVtZW50Pihl
bGVtZW50KSkKKyAgICAgICAgcmV0dXJuICZkb3duY2FzdDxTVkdVc2VFbGVtZW50PihlbGVtZW50
KTsKKworICAgIGlmIChlbGVtZW50LmlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8U1ZHR0VsZW1lbnQ+
KGVsZW1lbnQpKSB7CisgICAgICAgIFNWR0VsZW1lbnQqIGNvcnJlc3BvbmRpbmdFbGVtZW50ID0g
ZWxlbWVudC5jb3JyZXNwb25kaW5nRWxlbWVudCgpOworICAgICAgICBpZiAoaXM8U1ZHVXNlRWxl
bWVudD4oY29ycmVzcG9uZGluZ0VsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFNWR1VzZUVsZW1lbnQ+KGNvcnJlc3BvbmRpbmdFbGVtZW50KTsKKyAgICB9CisKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworRmxvYXRQb2ludCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyOjpleHRyYUNvbnRhaW5lclRyYW5zbGF0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoYXV0byog
dXNlRWxlbWVudCA9IGFzc29jaWF0ZWRVc2VFbGVtZW50KGdyYXBoaWNzRWxlbWVudCgpKSkgewor
ICAgICAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIFNWR0xlbmd0aENvbnRleHQgY2hhbmdl
cworICAgICAgICAvLyBjb25zdCBhdXRvJiBsZW5ndGhDb250ZXh0ID0gdXNlRWxlbWVudC0+bGVu
Z3RoQ29udGV4dCgpOworICAgICAgICBTVkdMZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQodXNl
RWxlbWVudCk7CisgICAgICAgIHJldHVybiB7IHVzZUVsZW1lbnQtPngoKS52YWx1ZShsZW5ndGhD
b250ZXh0KSwgdXNlRWxlbWVudC0+eSgpLnZhbHVlKGxlbmd0aENvbnRleHQpIH07CisgICAgfQor
CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyOjpjYWxjdWxhdGVWaWV3cG9ydCgpCit7CisgICAgUmVuZGVyU1ZHQ29udGFpbmVyOjpjYWxj
dWxhdGVWaWV3cG9ydCgpOworCisgICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBTVkdMZW5n
dGhDb250ZXh0IGNoYW5nZXMKKyAgICAvLyBpZiAoYXV0byogdXNlRWxlbWVudCA9IGFzc29jaWF0
ZWRVc2VFbGVtZW50KGdyYXBoaWNzRWxlbWVudCgpKSkKKyAgICAvLyAgICB1c2VFbGVtZW50LT51
cGRhdGVMZW5ndGhDb250ZXh0KCk7CisKKyAgICBtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRU
cmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7CisKKyAgICBhdXRvIHRyYW5zbGF0aW9uID0gZXh0cmFD
b250YWluZXJUcmFuc2xhdGlvbigpOworICAgIG1fc3VwcGxlbWVudGFsTG9jYWxUb1BhcmVudFRy
YW5zZm9ybS50cmFuc2xhdGUodHJhbnNsYXRpb24ueCgpLCB0cmFuc2xhdGlvbi55KCkpOworCisg
ICAgbV9kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRhdGUgPSBtX2hhZFRyYW5zZm9ybVVwZGF0ZSB8fCBT
VkdDb250YWluZXJMYXlvdXQ6OnRyYW5zZm9ybVRvUm9vdENoYW5nZWQocGFyZW50KCkpOworfQor
Cit2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmxheW91dENoaWxkcmVuKCkK
K3sKKyAgICBSZW5kZXJTVkdDb250YWluZXI6OmxheW91dENoaWxkcmVuKCk7CisgICAgbV9kaWRU
cmFuc2Zvcm1Ub1Jvb3RVcGRhdGUgPSBmYWxzZTsKK30KKwordm9pZCBSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyOjp1cGRhdGVGcm9tU3R5bGUoKQoreworICAgIFJlbmRlclNWR0NvbnRh
aW5lcjo6dXBkYXRlRnJvbVN0eWxlKCk7CisKKyAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFt
IENTUy9TVkcgdHJhbnNmb3JtIHN1cHBvcnQKKyAgICAvLyBpZiAoYXNzb2NpYXRlZFVzZUVsZW1l
bnQoZ3JhcGhpY3NFbGVtZW50KCkpKQorICAgIC8vICAgIHNldEhhc1NWR1RyYW5zZm9ybSgpOwor
fQorCit2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmFwcGx5VHJhbnNmb3Jt
KFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRp
bmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBv
cHRpb25zKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gQ1NTL1NWRyB0
cmFuc2Zvcm0gc3VwcG9ydAorICAgIFJlbmRlclNWR0NvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0o
dHJhbnNmb3JtLCBib3VuZGluZ0JveCwgb3B0aW9ucyk7Cit9CisKK3ZvaWQgUmVuZGVyU1ZHVHJh
bnNmb3JtYWJsZUNvbnRhaW5lcjo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZm
LCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpCit7CisgICAgY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlID0gaGFzSW5pdGlhbGl6ZWRTdHlsZSgpID8gJnN0eWxlKCkgOiBudWxscHRyOwor
ICAgIGlmIChvbGRTdHlsZSAmJiBvbGRTdHlsZS0+dHJhbnNmb3JtKCkgIT0gbmV3U3R5bGUudHJh
bnNmb3JtKCkpCisgICAgICAgIHNldEhhZFRyYW5zZm9ybVVwZGF0ZSgpOworICAgIFJlbmRlclNW
R0NvbnRhaW5lcjo6c3R5bGVXaWxsQ2hhbmdlKGRpZmYsIG5ld1N0eWxlKTsKK30KKworU1ZHR3Jh
cGhpY3NFbGVtZW50JiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpncmFwaGljc0Vs
ZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBkb3duY2FzdDxTVkdHcmFwaGljc0VsZW1lbnQ+
KFJlbmRlclNWR0NvbnRhaW5lcjo6ZWxlbWVudCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjlhYWU2OTZiY2UxMmI4NDZmYmUzZWYyMmRmOWQxYzJm
YzU2YzRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlJl
bmRlclNWR0NvbnRhaW5lci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNWR0dy
YXBoaWNzRWxlbWVudDsKKworY2xhc3MgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciBm
aW5hbCA6IHB1YmxpYyBSZW5kZXJTVkdDb250YWluZXIgeworICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcik7CitwdWJsaWM6CisgICAgUmVu
ZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcihTVkdHcmFwaGljc0VsZW1lbnQmLCBSZW5kZXJT
dHlsZSYmKTsKKworICAgIGJvb2wgaXNTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgc2V0SGFkVHJhbnNmb3JtVXBkYXRl
KGJvb2wgdmFsdWUgPSB0cnVlKSB7IG1faGFkVHJhbnNmb3JtVXBkYXRlID0gdmFsdWU7IH0KKyAg
ICBib29sIGRpZFRyYW5zZm9ybVRvUm9vdFVwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkVHJh
bnNmb3JtVG9Sb290VXBkYXRlOyB9CisKK3ByaXZhdGU6CisgICAgU1ZHR3JhcGhpY3NFbGVtZW50
JiBncmFwaGljc0VsZW1lbnQoKSBjb25zdDsKKworICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0g
ZGVsZXRlOworCisgICAgdm9pZCBsYXlvdXRDaGlsZHJlbigpIGZpbmFsOworICAgIHZvaWQgY2Fs
Y3VsYXRlVmlld3BvcnQoKSBmaW5hbDsKKyAgICBGbG9hdFBvaW50IGV4dHJhQ29udGFpbmVyVHJh
bnNsYXRpb24oKSBjb25zdDsKKyAgICB2b2lkIGFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0
eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9y
bU9wZXJhdGlvbnMpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxl
RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKSBvdmVycmlkZTsKKworICAg
IHZvaWQgdXBkYXRlRnJvbVN0eWxlKCkgZmluYWw7CisgICAgQWZmaW5lVHJhbnNmb3JtIG1fc3Vw
cGxlbWVudGFsTG9jYWxUb1BhcmVudFRyYW5zZm9ybTsKKyAgICBib29sIG1fZGlkVHJhbnNmb3Jt
VG9Sb290VXBkYXRlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFkVHJhbnNmb3JtVXBkYXRlIHsg
ZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19SRU5ERVJfT0JKRUNUKFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIsIGlz
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdDb250YWluZXJMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdDb250YWluZXJMYXlvdXQuY3BwCmluZGV4IGI1MzRiMDhjNTRhNDE0MGE5
ZTYyYjdmM2ViZjVjZDU3MzQ3MDhhYTAuLjkxMDUwZjk0MWE5YWFlOTRmOTk0NDJkOTNiNmMzMmEy
YmY4ODNiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHQ29u
dGFpbmVyTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0Nv
bnRhaW5lckxheW91dC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdS
b290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHU2hhcGUuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdU
ZXh0LmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVy
U3VwcG9ydC5oIgogI2luY2x1ZGUgIlNWR1JlbmRlcmluZ0NvbnRleHQuaCIKQEAgLTI3MSwxMSAr
MjcyLDEwIEBAIGJvb2wgU1ZHQ29udGFpbmVyTGF5b3V0OjpsYXlvdXRTaXplT2ZOZWFyZXN0Vmll
d3BvcnRDaGFuZ2VkKCkgY29uc3QKIGJvb2wgU1ZHQ29udGFpbmVyTGF5b3V0Ojp0cmFuc2Zvcm1U
b1Jvb3RDaGFuZ2VkKGNvbnN0IFJlbmRlck9iamVjdCogYW5jZXN0b3IpCiB7CiAgICAgd2hpbGUg
KGFuY2VzdG9yKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gUmVuZGVyU1ZH
VHJhbnNmb3JtYWJsZUNvbnRhaW5lciBjaGFuZ2VzCi0gICAgICAgIC8vIGlmIChpczxSZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigqYW5jZXN0b3IpKQotICAgICAgICAvLyAgICAgcmV0
dXJuIGRvd25jYXN0PGNvbnN0IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCphbmNl
c3RvcikuZGlkVHJhbnNmb3JtVG9Sb290VXBkYXRlKCk7CisgICAgICAgIGlmIChpczxSZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigqYW5jZXN0b3IpKQorICAgICAgICAgICAgcmV0dXJu
IGRvd25jYXN0PGNvbnN0IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCphbmNlc3Rv
cikuZGlkVHJhbnNmb3JtVG9Sb290VXBkYXRlKCk7CiAKLSAgICAgICAgLy8gRklYTUU6IFtMQlNF
XSBVcHN0cmVhbSBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyIGNoYW5nZXMKKyAgICAg
ICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciBj
aGFuZ2VzCiAgICAgICAgIC8vIGlmIChpczxSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcj4oKmFu
Y2VzdG9yKSkKICAgICAgICAgLy8gICAgIHJldHVybiBkb3duY2FzdDxjb25zdCBSZW5kZXJTVkdW
aWV3cG9ydENvbnRhaW5lcj4oKmFuY2VzdG9yKS5kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRhdGUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCmluZGV4IGRjNTkyYTJkNzQxZGYzN2ZlOTY3Y2Zj
YjMyY2VkNmM3NjYxMDlmZDYuLmYyZWY3NzU3YjU5MDI2ZTg2ZTJmZDVmZTUzYjdhZjhhMGNlOWI2
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKQEAgLTUzMSw3ICs1MzEsNyBAQCBzdGF0
aWMgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+IGNy
ZWF0ZVNWR0xheWVyQXdhcmVFbAogICAgIC8vIExpc3Qgb2YgYWxsIFNWRyBlbGVtZW50cyB3aG9z
ZSByZW5kZXJlcnMgc3VwcG9ydCB0aGUgbGF5ZXIgYXdhcmUgbGF5b3V0IC8gcGFpbnRpbmcgLyBo
aXQtdGVzdGluZyBtb2RlICgnTEJTRS1tb2RlJykuCiAgICAgdXNpbmcgbmFtZXNwYWNlIFNWR05h
bWVzOwogICAgIE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3Ry
aW5nPiBzZXQ7Ci0gICAgZm9yIChhdXRvJiB0YWcgOiB7IHJlY3RUYWcuZ2V0KCkgfSkKKyAgICBm
b3IgKGF1dG8mIHRhZyA6IHsgZ1RhZy5nZXQoKSwgcmVjdFRhZy5nZXQoKSB9KQogICAgICAgICBz
ZXQuYWRkKHRhZy5sb2NhbE5hbWUoKSk7CiAgICAgcmV0dXJuIHNldDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR0VsZW1lbnQuY3BwCmluZGV4IDQyY2I5YzNjMzNlZTEzZDk3NjU5OThmZGZiOWExNWZhMTEw
MTRjMGIuLjBmMTBhODQ0YzdmMWU0OGNhZDdlMjkwYTFiYzFkZWU0YzUwZjk2ODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dFbGVtZW50LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkxlZ2Fj
eVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdI
aWRkZW5Db250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgorI2luY2x1
ZGUgIlJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCIKICNpbmNsdWRlICJTVkdOYW1l
cy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CkBAIC01MSw2ICs1MiwxMiBAQCBSZWY8U1ZHR0VsZW1lbnQ+IFNWR0dF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gU1ZHR0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0
eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogeworI2lmIEVOQUJMRShMQVlFUl9CQVNF
RF9TVkdfRU5HSU5FKQorICAgIC8vIEZJWE1FOiBbTEJTRV0gU3VwcG9ydCBoaWRkZW4gY29udGFp
bmVycworICAgIGlmIChkb2N1bWVudCgpLnNldHRpbmdzKCkubGF5ZXJCYXNlZFNWR0VuZ2luZUVu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RyYW5zZm9y
bWFibGVDb250YWluZXI+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7CisjZW5kaWYKKwogICAgIC8v
IFNWRyAxLjEgdGVzdHN1aXRlIGV4cGxpY2l0bHkgdXNlcyBjb25zdHJ1Y3RzIGxpa2UgPGcgZGlz
cGxheT0ibm9uZSI+PGxpbmVhckdyYWRpZW50PgogICAgIC8vIFdlIHN0aWxsIGhhdmUgdG8gY3Jl
YXRlIHJlbmRlcmVycyBmb3IgdGhlIDxnPiAmIDxsaW5lYXJHcmFkaWVudD4gZWxlbWVudCwgdGhv
dWdoIHRoZQogICAgIC8vIHN1YnRyZWUgbWF5IGJlIGhpZGRlbiAtIHdlIG9ubHkgd2FudCB0aGUg
cmVzb3VyY2UgcmVuZGVyZXJzIHRvIGV4aXN0IHNvIHRoZXkgY2FuIGJlCg==
</data>
<flag name="commit-queue"
          id="480078"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452893</attachid>
            <date>2022-02-22 12:24:39 -0800</date>
            <delta_ts>2022-03-04 04:26:41 -0800</delta_ts>
            <desc>Patch, v2</desc>
            <filename>bug-237024-20220222122438.patch</filename>
            <type>text/plain</type>
            <size>19469</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzg2ZDJjNjAyMDNkZGYy
OTFkNzg1N2FkMzZmYjhjOGI5YzRmYjUzZC4uMDMyMzBlNjg3MTJiNWZhYmMyNDA3ZjBkMTMyZjRk
NWExOWY3ZGVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAyLTIyICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBCZWdpbiBsYXllci1hd2FyZSBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyIGltcGxl
bWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzcwMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDcmVhdGUgUmVuZGVyU1ZHQ29udGFpbmVyIGJhc2VkIG9uIHRoZSBkb3duc3RyZWFtIExCU0Ug
aW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIG5vdCB5ZXQgZW5hYmxl
IHRoZSBjcmVhdGlvbiBvZiBSZW5kZXJTVkdDb250YWluZXIKKyAgICAgICAgcmVuZGVyZXJzIGlm
IExCU0UgaXMgZW5hYmxlZCwgc2luY2UgdGhlIGRlcml2ZWQgY2xhc3Nlcywgc3VjaCBhcworICAg
ICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIgLyBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ciAvIC4uLiwgYXJlIHN0aWxsCisgICAgICAgIG1pc3NpbmcgaW4gTEJTRS4KKworICAgICAgICBD
b3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAg
ICAgICogU291cmNlcy50eHQ6IEFkZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLiog
dG8gYnVpbGQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBE
aXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmlzU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmFzc29jaWF0ZWRVc2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXI6OmV4dHJhQ29udGFpbmVyVHJhbnNsYXRpb24gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6Y2FsY3VsYXRl
Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lcjo6bGF5b3V0Q2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVHJhbnNm
b3JtYWJsZUNvbnRhaW5lcjo6dXBkYXRlRnJvbVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmFwcGx5VHJhbnNmb3JtIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OnN0eWxlV2ls
bENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyOjpncmFwaGljc0VsZW1lbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1NWR0NvbnRhaW5lckxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDb250
YWluZXJMYXlvdXQ6OnRyYW5zZm9ybVRvUm9vdENoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdF
bGVtZW50LmNwcDogQ3JlYXRlIHJlbmRlcmVyIGZvciA8Zz4gZWxlbWVudHMgaW4gTEJTRSBtb2Rl
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU1ZHTGF5ZXJBd2FyZUVsZW1lbnRTZXQpOgorICAg
ICAgICAqIHN2Zy9TVkdHRWxlbWVudC5jcHA6IERpdGV0by4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R0dFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorCiAyMDIyLTAyLTIyICBOaWtvbGFz
IFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtMQlNFXSBS
ZW5hbWUgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciAtPiBMZWdhY3lSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGVmNjNiNTQyY2NiZjE5MGNi
YjUxZTFjNDVmNWU5YTgyMzYzNWQyNzQuLjZkMWQ0ZmM2ZDI3Y2E2MTkzNWFjYmI2NTM3NmVhZjI0
ZjFkYmUzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNTExLDYgKzI1MTEsNyBAQCByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1NoYXBlLmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUU3Bhbi5jcHAK
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
VGV4dFBhdGguY3BwCityZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWlu
ZXIuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcAogcmVu
ZGVyaW5nL3N2Zy9TVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNwcAogcmVuZGVyaW5nL3N2Zy9T
VkdDb250YWluZXJMYXlvdXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmMzNmZjZmEwMTEwZDFlODEyYTQ1NjE0ZGMxZGU2
ZDUzMTE0Y2MzMi4uNTc3ZTA5YTgxMGEyZGI5NjExM2YzMTRlOWU0MmE1NmVlNjQyMDJkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTI2Myw2ICsxMjYzLDcgQEAKIAkJNDM2NzA4RTMxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRl
clNWR1Jlc291cmNlU29saWRDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDM2NzA4QTQxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291
cmNlU29saWRDb2xvci5oICovOyB9OwogCQk0MzY3MDhFNTEyRDlDQTRCMDAwNDQyMzQgLyogTGVn
YWN5UmVuZGVyU1ZHUm9vdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDM2NzA4QTYxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1Jvb3Qu
aCAqLzsgfTsKIAkJNDM2NzA4RTUxMkQ5REI0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jvb3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEE2MTJE
OURCNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSb290LmggKi87IH07CisJCTQzNjcwN0U3MjRDOUNB
NEIxMDA0NDIzNCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MThCQjEyRDlDQTRCMDAw
NDIyMzQgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oICovOyB9OwogCQk0MzY3
MDhFOTEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2
NzA4QUExMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIuaCAqLzsgfTsKIAkJNDM2NzA4RUIxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Zp
ZXdwb3J0Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MzY3MDhBQzEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIuaCAqLzsgfTsKIAkJNDM2NzA4RUUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFNWR01hcmtlckRh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcw
OEFGMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdNYXJrZXJEYXRhLmggKi87IH07CkBAIC05MDkxLDcg
KzkwOTIsOSBAQAogCQk0MzY3MDhBNTEyRDlDQTVDMDAwNDQyMzQgLyogUmVuZGVyU1ZHUm9vdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdSb290LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM2NzA4QTYxMkQ5Q0E0QjAwMDQ0MjM0
IC8qIExlZ2FjeVJlbmRlclNWR1Jvb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGVnYWN5UmVuZGVyU1ZHUm9vdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MzY3MDhBNjEyRDlEQjRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUm9vdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSb290Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQzNjcwOEI4MTJDOUNBNEMwMDAxMTQzNCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MzY3MDhBOTEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHVHJhbnNm
b3JtYWJsZUNvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDM2NzE4QkIxMkQ5Q0E0QjAwMDQyMjM0IC8qIFJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MzY3MDhBQTEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHVHJhbnNm
b3JtYWJsZUNvbnRhaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdh
Y3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQzNjcwOEFCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENv
bnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJT
VkdWaWV3cG9ydENvbnRhaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQz
NjcwOEFDMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkxMjYsNiArMTkxMjksOCBAQAog
CQkJCTA4NTRCMDA3MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUZXh0LmggKi8sCiAJCQkJ
MDg1NEIwMDgxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RleHRQYXRoLmNwcCAqLywKIAkJ
CQkwODU0QjAwOTEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4dFBhdGguaCAqLywKKwkJ
CQk0MzY3MDhCODEyQzlDQTRDMDAwMTE0MzQgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5jcHAgKi8sCisJCQkJNDM2NzE4QkIxMkQ5Q0E0QjAwMDQyMjM0IC8qIFJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIuaCAqLywKIAkJCQkwODU0QjAwQjEyNTVFNEU2MDBCOUNERDAg
LyogUmVuZGVyU1ZHVFNwYW4uaCAqLywKIAkJCQk0MzY3MDhBQjEyRDlDQTRCMDAwNDQyMzQgLyog
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuY3BwICovLAogCQkJCTQzNjcwOEFDMTJEOUNBNEIw
MDA0NDIzNCAvKiBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oICovLApAQCAtMzY5NzYsNiAr
MzY5ODEsNyBAQAogCQkJCUNERjc0N0Y3MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NTRCMDE5MTI1NUU0RTYwMEI5Q0REMCAv
KiBSZW5kZXJTVkdUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAxQjEyNTVFNEU2MDBC
OUNERDAgLyogUmVuZGVyU1ZHVGV4dFBhdGguaCBpbiBIZWFkZXJzICovLAorCQkJCTQzNjcwN0U3
MjRDOUNBNEIxMDA0NDIzNCAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwODU0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVFNw
YW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOEVCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5k
ZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThERjRBRUIwOTgw
QzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCBmMGVlYWFlYzk4NGQ4M2I2YWQ2ZDE5YWVl
OTY1OWUzYjM2M2Y0ZmU3Li40NWFjYTEyMjQwZjZlYThlNjRhNzU0NjI2ZDc3NjUwZWE1NWNmNWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0zMzAsNiArMzMw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NWR1Jvb3QoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0NvbnRhaW5lcigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGVnYWN5U1ZHQ29udGFpbmVyKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdUcmFuc2Zvcm1hYmxl
Q29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNM
ZWdhY3lTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdWaWV3cG9ydENvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU1ZHR3JhZGllbnRTdG9wKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU3OGY4MGFmMzQ5OWJhODMyOTk5YTI4YjE1ZDE4NzBmOTE2MWE2MmUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXIuY3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgiCisKKyNpZiBFTkFCTEUoTEFZRVJf
QkFTRURfU1ZHX0VOR0lORSkKKyNpbmNsdWRlICJSZW5kZXJTVkdNb2RlbE9iamVjdElubGluZXMu
aCIKKyNpbmNsdWRlICJTVkdDb250YWluZXJMYXlvdXQuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50
VHlwZUhlbHBlcnMuaCIKKyNpbmNsdWRlICJTVkdHRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0dy
YXBoaWNzRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR1BhdGhEYXRhLmgiCisjaW5jbHVkZSAiU1ZH
VXNlRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIpOworCitSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
OjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKFNWR0dyYXBoaWNzRWxlbWVudCYgZWxl
bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKKyAgICA6IFJlbmRlclNWR0NvbnRhaW5lcihlbGVt
ZW50LCBXVEZNb3ZlKHN0eWxlKSkKK3sKK30KKworaW5saW5lIFNWR1VzZUVsZW1lbnQqIGFzc29j
aWF0ZWRVc2VFbGVtZW50KFNWR0dyYXBoaWNzRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICAvLyBJ
ZiB3ZSdyZSBlaXRoZXIgdGhlIHJlbmRlcmVyIGZvciBhIDx1c2U+IGVsZW1lbnQsIG9yIGZvciBh
bnkgPGc+IGVsZW1lbnQgaW5zaWRlIHRoZSBzaGFkb3cKKyAgICAvLyB0cmVlLCB0aGF0IHdhcyBj
cmVhdGVkIGR1cmluZyB0aGUgdXNlL3N5bWJvbC9zdmcgZXhwYW5zaW9uIGluIFNWR1VzZUVsZW1l
bnQuIFRoZXNlIGNvbnRhaW5lcnMKKyAgICAvLyBuZWVkIHRvIHJlc3BlY3QgdGhlIHRyYW5zbGF0
aW9ucyBpbmR1Y2VkIGJ5IHRoZWlyIGNvcnJlc3BvbmRpbmcgdXNlIGVsZW1lbnRzIHgveSBhdHRy
aWJ1dGVzLgorICAgIGlmIChpczxTVkdVc2VFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgcmV0
dXJuICZkb3duY2FzdDxTVkdVc2VFbGVtZW50PihlbGVtZW50KTsKKworICAgIGlmIChlbGVtZW50
LmlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8U1ZHR0VsZW1lbnQ+KGVsZW1lbnQpKSB7CisgICAgICAg
IFNWR0VsZW1lbnQqIGNvcnJlc3BvbmRpbmdFbGVtZW50ID0gZWxlbWVudC5jb3JyZXNwb25kaW5n
RWxlbWVudCgpOworICAgICAgICBpZiAoaXM8U1ZHVXNlRWxlbWVudD4oY29ycmVzcG9uZGluZ0Vs
ZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFNWR1VzZUVsZW1lbnQ+KGNvcnJl
c3BvbmRpbmdFbGVtZW50KTsKKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworRmxv
YXRQb2ludCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpleHRyYUNvbnRhaW5lclRy
YW5zbGF0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoYXV0byogdXNlRWxlbWVudCA9IGFzc29jaWF0
ZWRVc2VFbGVtZW50KGdyYXBoaWNzRWxlbWVudCgpKSkgeworICAgICAgICAvLyBGSVhNRTogW0xC
U0VdIFVwc3RyZWFtIFNWR0xlbmd0aENvbnRleHQgY2hhbmdlcworICAgICAgICAvLyBjb25zdCBh
dXRvJiBsZW5ndGhDb250ZXh0ID0gdXNlRWxlbWVudC0+bGVuZ3RoQ29udGV4dCgpOworICAgICAg
ICBTVkdMZW5ndGhDb250ZXh0IGxlbmd0aENvbnRleHQodXNlRWxlbWVudCk7CisgICAgICAgIHJl
dHVybiB7IHVzZUVsZW1lbnQtPngoKS52YWx1ZShsZW5ndGhDb250ZXh0KSwgdXNlRWxlbWVudC0+
eSgpLnZhbHVlKGxlbmd0aENvbnRleHQpIH07CisgICAgfQorCisgICAgcmV0dXJuIHsgfTsKK30K
Kwordm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpjYWxjdWxhdGVWaWV3cG9y
dCgpCit7CisgICAgUmVuZGVyU1ZHQ29udGFpbmVyOjpjYWxjdWxhdGVWaWV3cG9ydCgpOworCisg
ICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBTVkdMZW5ndGhDb250ZXh0IGNoYW5nZXMKKyAg
ICAvLyBpZiAoYXV0byogdXNlRWxlbWVudCA9IGFzc29jaWF0ZWRVc2VFbGVtZW50KGdyYXBoaWNz
RWxlbWVudCgpKSkKKyAgICAvLyAgICB1c2VFbGVtZW50LT51cGRhdGVMZW5ndGhDb250ZXh0KCk7
CisKKyAgICBtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRUcmFuc2Zvcm0ubWFrZUlkZW50aXR5
KCk7CisKKyAgICBhdXRvIHRyYW5zbGF0aW9uID0gZXh0cmFDb250YWluZXJUcmFuc2xhdGlvbigp
OworICAgIG1fc3VwcGxlbWVudGFsTG9jYWxUb1BhcmVudFRyYW5zZm9ybS50cmFuc2xhdGUodHJh
bnNsYXRpb24ueCgpLCB0cmFuc2xhdGlvbi55KCkpOworCisgICAgbV9kaWRUcmFuc2Zvcm1Ub1Jv
b3RVcGRhdGUgPSBtX2hhZFRyYW5zZm9ybVVwZGF0ZSB8fCBTVkdDb250YWluZXJMYXlvdXQ6OnRy
YW5zZm9ybVRvUm9vdENoYW5nZWQocGFyZW50KCkpOworfQorCit2b2lkIFJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXI6OmxheW91dENoaWxkcmVuKCkKK3sKKyAgICBSZW5kZXJTVkdDb250
YWluZXI6OmxheW91dENoaWxkcmVuKCk7CisgICAgbV9kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRhdGUg
PSBmYWxzZTsKK30KKwordm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjp1cGRh
dGVGcm9tU3R5bGUoKQoreworICAgIFJlbmRlclNWR0NvbnRhaW5lcjo6dXBkYXRlRnJvbVN0eWxl
KCk7CisKKyAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJhbnNmb3JtIHN1
cHBvcnQKKyAgICAvLyBpZiAoYXNzb2NpYXRlZFVzZUVsZW1lbnQoZ3JhcGhpY3NFbGVtZW50KCkp
KQorICAgIC8vICAgIHNldEhhc1NWR1RyYW5zZm9ybSgpOworfQorCit2b2lkIFJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXI6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5k
ZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiBvcHRpb25zKSBjb25zdAoreworICAg
IC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0gQ1NTL1NWRyB0cmFuc2Zvcm0gc3VwcG9ydAorICAg
IFJlbmRlclNWR0NvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCBib3VuZGluZ0Jv
eCwgb3B0aW9ucyk7Cit9CisKK3ZvaWQgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6
c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYg
bmV3U3R5bGUpCit7CisgICAgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlID0gaGFzSW5pdGlh
bGl6ZWRTdHlsZSgpID8gJnN0eWxlKCkgOiBudWxscHRyOworICAgIGlmIChvbGRTdHlsZSAmJiBv
bGRTdHlsZS0+dHJhbnNmb3JtKCkgIT0gbmV3U3R5bGUudHJhbnNmb3JtKCkpCisgICAgICAgIHNl
dEhhZFRyYW5zZm9ybVVwZGF0ZSgpOworICAgIFJlbmRlclNWR0NvbnRhaW5lcjo6c3R5bGVXaWxs
Q2hhbmdlKGRpZmYsIG5ld1N0eWxlKTsKK30KKworU1ZHR3JhcGhpY3NFbGVtZW50JiBSZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpncmFwaGljc0VsZW1lbnQoKSBjb25zdAoreworICAg
IHJldHVybiBkb3duY2FzdDxTVkdHcmFwaGljc0VsZW1lbnQ+KFJlbmRlclNWR0NvbnRhaW5lcjo6
ZWxlbWVudCgpKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKExBWUVSX0JBU0VEX1NWR19F
TkdJTkUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RyYW5zZm9ybWFibGVDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiYzQ2ZjJkZDY5
NWY2OWVlMTAzODIzMjQ4MDhhNmI4MTIyMDM4NjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaApA
QCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxl
cmljQHdlYmtpdC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCisjaW5jbHVkZSAi
UmVuZGVyU1ZHQ29udGFpbmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU1ZH
R3JhcGhpY3NFbGVtZW50OworCitjbGFzcyBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
IGZpbmFsIDogcHVibGljIFJlbmRlclNWR0NvbnRhaW5lciB7CisgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKTsKK3B1YmxpYzoKKyAgICBS
ZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKFNWR0dyYXBoaWNzRWxlbWVudCYsIFJlbmRl
clN0eWxlJiYpOworCisgICAgYm9vbCBpc1NWR1RyYW5zZm9ybWFibGVDb250YWluZXIoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBzZXRIYWRUcmFuc2Zvcm1VcGRh
dGUoYm9vbCB2YWx1ZSA9IHRydWUpIHsgbV9oYWRUcmFuc2Zvcm1VcGRhdGUgPSB2YWx1ZTsgfQor
ICAgIGJvb2wgZGlkVHJhbnNmb3JtVG9Sb290VXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9kaWRU
cmFuc2Zvcm1Ub1Jvb3RVcGRhdGU7IH0KKworcHJpdmF0ZToKKyAgICBTVkdHcmFwaGljc0VsZW1l
bnQmIGdyYXBoaWNzRWxlbWVudCgpIGNvbnN0OworCisgICAgdm9pZCBlbGVtZW50KCkgY29uc3Qg
PSBkZWxldGU7CisKKyAgICB2b2lkIGxheW91dENoaWxkcmVuKCkgZmluYWw7CisgICAgdm9pZCBj
YWxjdWxhdGVWaWV3cG9ydCgpIGZpbmFsOworICAgIEZsb2F0UG9pbnQgZXh0cmFDb250YWluZXJU
cmFuc2xhdGlvbigpIGNvbnN0OworICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRp
b25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gPSBSZW5kZXJTdHlsZTo6YWxsVHJhbnNm
b3JtT3BlcmF0aW9ucykgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpIG92ZXJyaWRlOworCisg
ICAgdm9pZCB1cGRhdGVGcm9tU3R5bGUoKSBmaW5hbDsKKyAgICBBZmZpbmVUcmFuc2Zvcm0gbV9z
dXBwbGVtZW50YWxMb2NhbFRvUGFyZW50VHJhbnNmb3JtOworICAgIGJvb2wgbV9kaWRUcmFuc2Zv
cm1Ub1Jvb3RVcGRhdGUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYWRUcmFuc2Zvcm1VcGRhdGUg
eyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX1JFTkRFUl9PQkpFQ1QoUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciwg
aXNTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKCkpCisKKyNlbmRpZiAvLyBFTkFCTEUoTEFZRVJf
QkFTRURfU1ZHX0VOR0lORSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHQ29udGFpbmVyTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHQ29udGFpbmVyTGF5b3V0LmNwcAppbmRleCBiNTM0YjA4YzU0YTQxNDBhOWU2MmI3ZjNlYmY1
Y2Q1NzM0NzA4YWEwLi45MTA1MGY5NDFhOWFhZTk0Zjk5NDQyZDkzYjZjMzJhMmJmODgzYjE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0NvbnRhaW5lckxheW91
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdDb250YWluZXJMYXlv
dXQuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5oIgogI2lu
Y2x1ZGUgIlJlbmRlclNWR1NoYXBlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVGV4dC5oIgorI2lu
Y2x1ZGUgIlJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIK
ICNpbmNsdWRlICJTVkdSZW5kZXJpbmdDb250ZXh0LmgiCkBAIC0yNzEsMTEgKzI3MiwxMCBAQCBi
b29sIFNWR0NvbnRhaW5lckxheW91dDo6bGF5b3V0U2l6ZU9mTmVhcmVzdFZpZXdwb3J0Q2hhbmdl
ZCgpIGNvbnN0CiBib29sIFNWR0NvbnRhaW5lckxheW91dDo6dHJhbnNmb3JtVG9Sb290Q2hhbmdl
ZChjb25zdCBSZW5kZXJPYmplY3QqIGFuY2VzdG9yKQogewogICAgIHdoaWxlIChhbmNlc3Rvcikg
ewotICAgICAgICAvLyBGSVhNRTogW0xCU0VdIFVwc3RyZWFtIFJlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIgY2hhbmdlcwotICAgICAgICAvLyBpZiAoaXM8UmVuZGVyU1ZHVHJhbnNmb3Jt
YWJsZUNvbnRhaW5lcj4oKmFuY2VzdG9yKSkKLSAgICAgICAgLy8gICAgIHJldHVybiBkb3duY2Fz
dDxjb25zdCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigqYW5jZXN0b3IpLmRpZFRy
YW5zZm9ybVRvUm9vdFVwZGF0ZSgpOworICAgICAgICBpZiAoaXM8UmVuZGVyU1ZHVHJhbnNmb3Jt
YWJsZUNvbnRhaW5lcj4oKmFuY2VzdG9yKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxj
b25zdCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigqYW5jZXN0b3IpLmRpZFRyYW5z
Zm9ybVRvUm9vdFVwZGF0ZSgpOwogCi0gICAgICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJlYW0g
UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciBjaGFuZ2VzCisgICAgICAgIC8vIEZJWE1F
OiBbTEJTRV0gVXBzdHJlYW0gUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIgY2hhbmdlcwogICAg
ICAgICAvLyBpZiAoaXM8UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXI+KCphbmNlc3RvcikpCiAg
ICAgICAgIC8vICAgICByZXR1cm4gZG93bmNhc3Q8Y29uc3QgUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXI+KCphbmNlc3RvcikuZGlkVHJhbnNmb3JtVG9Sb290VXBkYXRlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmNwcAppbmRleCBkYzU5MmEyZDc0MWRmMzdmZTk2N2NmY2IzMmNlZDZjNzY2
MTA5ZmQ2Li5mMmVmNzc1N2I1OTAyNmU4NmUyZmQ1ZmU1M2I3YWY4YTBjZTliNjllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC01MzEsNyArNTMxLDcgQEAgc3RhdGljIE1lbW9yeUNv
bXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiBjcmVhdGVTVkdMYXll
ckF3YXJlRWwKICAgICAvLyBMaXN0IG9mIGFsbCBTVkcgZWxlbWVudHMgd2hvc2UgcmVuZGVyZXJz
IHN1cHBvcnQgdGhlIGxheWVyIGF3YXJlIGxheW91dCAvIHBhaW50aW5nIC8gaGl0LXRlc3Rpbmcg
bW9kZSAoJ0xCU0UtbW9kZScpLgogICAgIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKICAgICBN
ZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8QXRvbVN0cmluZz4gc2V0Owot
ICAgIGZvciAoYXV0byYgdGFnIDogeyByZWN0VGFnLmdldCgpIH0pCisgICAgZm9yIChhdXRvJiB0
YWcgOiB7IGdUYWcuZ2V0KCksIHJlY3RUYWcuZ2V0KCkgfSkKICAgICAgICAgc2V0LmFkZCh0YWcu
bG9jYWxOYW1lKCkpOwogICAgIHJldHVybiBzZXQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50
LmNwcAppbmRleCA0MmNiOWMzYzMzZWUxM2Q5NzY1OTk4ZmRmYjlhMTVmYTExMDE0YzBiLi4wZjEw
YTg0NGM3ZjFlNDhjYWQ3ZTI5MGExYmMxZGVlNGM1MGY5NjgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
RWxlbWVudC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJMZWdhY3lSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHSGlkZGVuQ29udGFp
bmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJSZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgpAQCAtNTEsNiArNTIsMTIgQEAgUmVmPFNWR0dFbGVtZW50PiBTVkdHRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR0dF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKKyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lO
RSkKKyAgICAvLyBGSVhNRTogW0xCU0VdIFN1cHBvcnQgaGlkZGVuIGNvbnRhaW5lcnMKKyAgICBp
ZiAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxheWVyQmFzZWRTVkdFbmdpbmVFbmFibGVkKCkpCisg
ICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOworI2VuZGlmCisKICAgICAvLyBTVkcgMS4xIHRl
c3RzdWl0ZSBleHBsaWNpdGx5IHVzZXMgY29uc3RydWN0cyBsaWtlIDxnIGRpc3BsYXk9Im5vbmUi
PjxsaW5lYXJHcmFkaWVudD4KICAgICAvLyBXZSBzdGlsbCBoYXZlIHRvIGNyZWF0ZSByZW5kZXJl
cnMgZm9yIHRoZSA8Zz4gJiA8bGluZWFyR3JhZGllbnQ+IGVsZW1lbnQsIHRob3VnaCB0aGUKICAg
ICAvLyBzdWJ0cmVlIG1heSBiZSBoaWRkZW4gLSB3ZSBvbmx5IHdhbnQgdGhlIHJlc291cmNlIHJl
bmRlcmVycyB0byBleGlzdCBzbyB0aGV5IGNhbiBiZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453833</attachid>
            <date>2022-03-04 04:26:46 -0800</date>
            <delta_ts>2022-03-07 03:11:55 -0800</delta_ts>
            <desc>Patch, v3</desc>
            <filename>bug-237024-20220304042643.patch</filename>
            <type>text/plain</type>
            <size>19567</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWViMGJiYWRjYmE4ODBk
YWE2YjkyNzZlN2NmMDZkNTFhMmUyNWVmYS4uNTZiNmVhMTFjMDkzNjY2NWQyYjg5N2EyOWQ3MjFh
ZjA0OWE2ZmUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAzLTA0ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBCZWdpbiBsYXllci1hd2FyZSBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyIGltcGxl
bWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzcwMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDcmVhdGUgUmVuZGVyU1ZHQ29udGFpbmVyIGJhc2VkIG9uIHRoZSBkb3duc3RyZWFtIExCU0Ug
aW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIG5vdCB5ZXQgZW5hYmxl
IHRoZSBjcmVhdGlvbiBvZiBSZW5kZXJTVkdDb250YWluZXIKKyAgICAgICAgcmVuZGVyZXJzIGlm
IExCU0UgaXMgZW5hYmxlZCwgc2luY2UgdGhlIGRlcml2ZWQgY2xhc3Nlcywgc3VjaCBhcworICAg
ICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIgLyBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ciAvIC4uLiwgYXJlIHN0aWxsCisgICAgICAgIG1pc3NpbmcgaW4gTEJTRS4KKworICAgICAgICBD
b3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLCBubyBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAg
ICAgICogU291cmNlcy50eHQ6IEFkZCBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLiog
dG8gYnVpbGQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBE
aXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OmlzU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmFzc29jaWF0ZWRVc2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXI6OmFkZGl0aW9uYWxDb250YWluZXJUcmFuc2xhdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpjYWxj
dWxhdGVWaWV3cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUcmFuc2Zvcm1hYmxl
Q29udGFpbmVyOjpsYXlvdXRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyOjp1cGRhdGVGcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6YXBwbHlUcmFuc2Zvcm0gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6c3R5
bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXI6OmdyYXBoaWNzRWxlbWVudCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmg6IEFkZGVkLgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvU1ZHQ29udGFpbmVyTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0NvbnRhaW5lckxheW91dDo6dHJhbnNmb3JtVG9Sb290Q2hhbmdlZCk6CisgICAgICAgICogc3Zn
L1NWR0VsZW1lbnQuY3BwOiBDcmVhdGUgcmVuZGVyZXIgZm9yIDxnPiBlbGVtZW50cyBpbiBMQlNF
IG1vZGUuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTVkdMYXllckF3YXJlRWxlbWVudFNldCk6
CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpTVkdHRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKwogMjAyMi0wMy0wNCAgS2lt
bW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEl0ZXJhdGlvbiB0
byBzZWFyY2ggZm9yIGxlYXN0IGFjdGl2ZSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlIGNvdWxk
IHVzZSBtaW5fZWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAzYTM1ZTI2MDVlMDNlNjI5NzliMjI5
ZDgyNmZlNmU3M2JlMjk0MmRmLi5iMWQ4NTRjMGM5ZDNlYmViNDhhMTc2OGVmNzg3MDIxMDQwOGJj
NmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjUxMSw2ICsyNTExLDcgQEAgcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdTaGFwZS5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVFNwYW4uY3BwCiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHRQ
YXRoLmNwcAorcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNw
cAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5jcHAKIHJlbmRlcmlu
Zy9zdmcvU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5jcHAKIHJlbmRlcmluZy9zdmcvU1ZHQ29u
dGFpbmVyTGF5b3V0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGFhMjI3ZDU5OGU0MjlkODU1YmIzZGVlZGE5YjFkNDcyODBk
NjI0M2IuLjRiOGNjNWMwZTEzZTNhNzBmMWViNGI2YjI2ZGM1OWNmZTQzYmUwMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEy
NjMsNiArMTI2Myw3IEBACiAJCTQzNjcwOEUzMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdS
ZXNvdXJjZVNvbGlkQ29sb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQzNjcwOEE0MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZVNv
bGlkQ29sb3IuaCAqLzsgfTsKIAkJNDM2NzA4RTUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJl
bmRlclNWR1Jvb3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQzNjcwOEE2MTJEOUNBNEIwMDA0NDIzNCAvKiBMZWdhY3lSZW5kZXJTVkdSb290LmggKi87
IH07CiAJCTQzNjcwOEU1MTJEOURCNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSb290LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDhBNjEyRDlEQjRC
MDAwNDQyMzQgLyogUmVuZGVyU1ZHUm9vdC5oICovOyB9OworCQk0MzY3MDdFNzI0QzlDQTRCMTAw
NDQyMzQgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM2NzE4QkIxMkQ5Q0E0QjAwMDQyMjM0
IC8qIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCAqLzsgfTsKIAkJNDM2NzA4RTkx
MkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNjcwOEFB
MTJEOUNBNEIwMDA0NDIzNCAvKiBMZWdhY3lSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVy
LmggKi87IH07CiAJCTQzNjcwOEVCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdWaWV3cG9y
dENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDM2NzA4QUMxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
LmggKi87IH07CiAJCTQzNjcwOEVFMTJEOUNBNEIwMDA0NDIzNCAvKiBTVkdNYXJrZXJEYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzY3MDhBRjEy
RDlDQTRCMDAwNDQyMzQgLyogU1ZHTWFya2VyRGF0YS5oICovOyB9OwpAQCAtOTA5Niw3ICs5MDk3
LDkgQEAKIAkJNDM2NzA4QTUxMkQ5Q0E1QzAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jvb3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHUm9vdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNjcwOEE2MTJEOUNBNEIwMDA0NDIzNCAvKiBM
ZWdhY3lSZW5kZXJTVkdSb290LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExl
Z2FjeVJlbmRlclNWR1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM2NzA4
QTYxMkQ5REI0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jvb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUm9vdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MzY3MDhCODEyQzlDQTRDMDAwMTE0MzQgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNv
bnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDM2NzA4QTkxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVn
YWN5UmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQzNjcxOEJCMTJEOUNBNEIwMDA0MjIzNCAvKiBSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDM2NzA4QUExMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVu
ZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MzY3MDhBQjEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHVmlld3BvcnRDb250YWlu
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHVmll
d3BvcnRDb250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzY3MDhB
QzEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MTUwLDYgKzE5MTUzLDggQEAKIAkJCQkw
ODU0QjAwNzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHVGV4dC5oICovLAogCQkJCTA4NTRC
MDA4MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdUZXh0UGF0aC5jcHAgKi8sCiAJCQkJMDg1
NEIwMDkxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RleHRQYXRoLmggKi8sCisJCQkJNDM2
NzA4QjgxMkM5Q0E0QzAwMDExNDM0IC8qIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIu
Y3BwICovLAorCQkJCTQzNjcxOEJCMTJEOUNBNEIwMDA0MjIzNCAvKiBSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmggKi8sCiAJCQkJMDg1NEIwMEIxMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR1RTcGFuLmggKi8sCiAJCQkJNDM2NzA4QUIxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRl
clNWR1ZpZXdwb3J0Q29udGFpbmVyLmNwcCAqLywKIAkJCQk0MzY3MDhBQzEyRDlDQTRCMDAwNDQy
MzQgLyogUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaCAqLywKQEAgLTM3MDA5LDYgKzM3MDE0
LDcgQEAKIAkJCQlDREY3NDdGNzI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZHU2hhcGVJbmxp
bmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAxOTEyNTVFNEU2MDBCOUNERDAgLyogUmVu
ZGVyU1ZHVGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMUIxMjU1RTRFNjAwQjlDREQw
IC8qIFJlbmRlclNWR1RleHRQYXRoLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MzY3MDdFNzI0QzlD
QTRCMTAwNDQyMzQgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDg1NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR1RTcGFuLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhFQjEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZH
Vmlld3BvcnRDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4REY0QUVCMDk4MEM0MkMw
MDUyOTgxQiAvKiBSZW5kZXJUYWJsZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggZjBlZWFhZWM5ODRkODNiNmFkNmQxOWFlZTk2NTll
M2IzNjNmNGZlNy4uNDVhY2ExMjI0MGY2ZWE4ZTY0YTc1NDYyNmQ3NzY1MGVhNTVjZjVmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtMzMwLDYgKzMzMCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdSb290KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdDb250YWluZXIoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0xlZ2FjeVNWR0NvbnRhaW5lcigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTGVnYWN5
U1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzU1ZHVmlld3BvcnRDb250YWluZXIoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0dyYWRpZW50U3RvcCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjM1
YmY5MWZhMzU2NGE4N2U0ZTg2ZDBmZGRhMzIxZjA3NTFhN2Q0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyLmNwcApAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSwgSW5jLgorICogQ29weXJpZ2h0IChjKSAyMDIwLCAyMDIxLCAyMDIy
IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJTVkdUcmFu
c2Zvcm1hYmxlQ29udGFpbmVyLmgiCisKKyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lO
RSkKKyNpbmNsdWRlICJSZW5kZXJTVkdNb2RlbE9iamVjdElubGluZXMuaCIKKyNpbmNsdWRlICJT
VkdDb250YWluZXJMYXlvdXQuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50VHlwZUhlbHBlcnMuaCIK
KyNpbmNsdWRlICJTVkdHRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0dyYXBoaWNzRWxlbWVudC5o
IgorI2luY2x1ZGUgIlNWR1BhdGhEYXRhLmgiCisjaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgor
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIpOworCitSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpSZW5kZXJTVkdUcmFu
c2Zvcm1hYmxlQ29udGFpbmVyKFNWR0dyYXBoaWNzRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5
bGUmJiBzdHlsZSkKKyAgICA6IFJlbmRlclNWR0NvbnRhaW5lcihlbGVtZW50LCBXVEZNb3ZlKHN0
eWxlKSkKK3sKK30KKworaW5saW5lIFNWR1VzZUVsZW1lbnQqIGFzc29jaWF0ZWRVc2VFbGVtZW50
KFNWR0dyYXBoaWNzRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICAvLyBJZiB3ZSdyZSBlaXRoZXIg
dGhlIHJlbmRlcmVyIGZvciBhIDx1c2U+IGVsZW1lbnQsIG9yIGZvciBhbnkgPGc+IGVsZW1lbnQg
aW5zaWRlIHRoZSBzaGFkb3cKKyAgICAvLyB0cmVlLCB0aGF0IHdhcyBjcmVhdGVkIGR1cmluZyB0
aGUgdXNlL3N5bWJvbC9zdmcgZXhwYW5zaW9uIGluIFNWR1VzZUVsZW1lbnQuIFRoZXNlIGNvbnRh
aW5lcnMKKyAgICAvLyBuZWVkIHRvIHJlc3BlY3QgdGhlIHRyYW5zbGF0aW9ucyBpbmR1Y2VkIGJ5
IHRoZWlyIGNvcnJlc3BvbmRpbmcgdXNlIGVsZW1lbnRzIHgveSBhdHRyaWJ1dGVzLgorICAgIGlm
IChpczxTVkdVc2VFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuICZkb3duY2FzdDxT
VkdVc2VFbGVtZW50PihlbGVtZW50KTsKKworICAgIGlmIChlbGVtZW50LmlzSW5TaGFkb3dUcmVl
KCkgJiYgaXM8U1ZHR0VsZW1lbnQ+KGVsZW1lbnQpKSB7CisgICAgICAgIFNWR0VsZW1lbnQqIGNv
cnJlc3BvbmRpbmdFbGVtZW50ID0gZWxlbWVudC5jb3JyZXNwb25kaW5nRWxlbWVudCgpOworICAg
ICAgICBpZiAoaXM8U1ZHVXNlRWxlbWVudD4oY29ycmVzcG9uZGluZ0VsZW1lbnQpKQorICAgICAg
ICAgICAgcmV0dXJuIGRvd25jYXN0PFNWR1VzZUVsZW1lbnQ+KGNvcnJlc3BvbmRpbmdFbGVtZW50
KTsKKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworRmxvYXRQb2ludCBSZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyOjphZGRpdGlvbmFsQ29udGFpbmVyVHJhbnNsYXRpb24o
KSBjb25zdAoreworICAgIGlmIChhdXRvKiB1c2VFbGVtZW50ID0gYXNzb2NpYXRlZFVzZUVsZW1l
bnQoZ3JhcGhpY3NFbGVtZW50KCkpKSB7CisgICAgICAgIC8vIEZJWE1FOiBbTEJTRV0gVXBzdHJl
YW0gU1ZHTGVuZ3RoQ29udGV4dCBjaGFuZ2VzCisgICAgICAgIC8vIGNvbnN0IGF1dG8mIGxlbmd0
aENvbnRleHQgPSB1c2VFbGVtZW50LT5sZW5ndGhDb250ZXh0KCk7CisgICAgICAgIFNWR0xlbmd0
aENvbnRleHQgbGVuZ3RoQ29udGV4dCh1c2VFbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIHsgdXNl
RWxlbWVudC0+eCgpLnZhbHVlKGxlbmd0aENvbnRleHQpLCB1c2VFbGVtZW50LT55KCkudmFsdWUo
bGVuZ3RoQ29udGV4dCkgfTsKKyAgICB9CisKKyAgICByZXR1cm4geyB9OworfQorCit2b2lkIFJl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OmNhbGN1bGF0ZVZpZXdwb3J0KCkKK3sKKyAg
ICBSZW5kZXJTVkdDb250YWluZXI6OmNhbGN1bGF0ZVZpZXdwb3J0KCk7CisKKyAgICAvLyBGSVhN
RTogW0xCU0VdIFVwc3RyZWFtIFNWR0xlbmd0aENvbnRleHQgY2hhbmdlcworICAgIC8vIGlmIChh
dXRvKiB1c2VFbGVtZW50ID0gYXNzb2NpYXRlZFVzZUVsZW1lbnQoZ3JhcGhpY3NFbGVtZW50KCkp
KQorICAgIC8vICAgIHVzZUVsZW1lbnQtPnVwZGF0ZUxlbmd0aENvbnRleHQoKTsKKworICAgIG1f
c3VwcGxlbWVudGFsTG9jYWxUb1BhcmVudFRyYW5zZm9ybS5tYWtlSWRlbnRpdHkoKTsKKworICAg
IGF1dG8gdHJhbnNsYXRpb24gPSBhZGRpdGlvbmFsQ29udGFpbmVyVHJhbnNsYXRpb24oKTsKKyAg
ICBtX3N1cHBsZW1lbnRhbExvY2FsVG9QYXJlbnRUcmFuc2Zvcm0udHJhbnNsYXRlKHRyYW5zbGF0
aW9uLngoKSwgdHJhbnNsYXRpb24ueSgpKTsKKworICAgIG1fZGlkVHJhbnNmb3JtVG9Sb290VXBk
YXRlID0gbV9oYWRUcmFuc2Zvcm1VcGRhdGUgfHwgU1ZHQ29udGFpbmVyTGF5b3V0Ojp0cmFuc2Zv
cm1Ub1Jvb3RDaGFuZ2VkKHBhcmVudCgpKTsKK30KKwordm9pZCBSZW5kZXJTVkdUcmFuc2Zvcm1h
YmxlQ29udGFpbmVyOjpsYXlvdXRDaGlsZHJlbigpCit7CisgICAgUmVuZGVyU1ZHQ29udGFpbmVy
OjpsYXlvdXRDaGlsZHJlbigpOworICAgIG1fZGlkVHJhbnNmb3JtVG9Sb290VXBkYXRlID0gZmFs
c2U7Cit9CisKK3ZvaWQgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcjo6dXBkYXRlRnJv
bVN0eWxlKCkKK3sKKyAgICBSZW5kZXJTVkdDb250YWluZXI6OnVwZGF0ZUZyb21TdHlsZSgpOwor
CisgICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBDU1MvU1ZHIHRyYW5zZm9ybSBzdXBwb3J0
CisgICAgLy8gaWYgKGFzc29jaWF0ZWRVc2VFbGVtZW50KGdyYXBoaWNzRWxlbWVudCgpKSkKKyAg
ICAvLyAgICBzZXRIYXNTVkdUcmFuc2Zvcm0oKTsKK30KKwordm9pZCBSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJh
bnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5
bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKK3sKKyAgICAvLyBG
SVhNRTogW0xCU0VdIFVwc3RyZWFtIENTUy9TVkcgdHJhbnNmb3JtIHN1cHBvcnQKKyAgICBSZW5k
ZXJTVkdDb250YWluZXI6OmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgYm91bmRpbmdCb3gsIG9w
dGlvbnMpOworfQorCit2b2lkIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI6OnN0eWxl
V2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0
eWxlKQoreworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSA9IGhhc0luaXRpYWxpemVk
U3R5bGUoKSA/ICZzdHlsZSgpIDogbnVsbHB0cjsKKyAgICBpZiAob2xkU3R5bGUgJiYgb2xkU3R5
bGUtPnRyYW5zZm9ybSgpICE9IG5ld1N0eWxlLnRyYW5zZm9ybSgpKQorICAgICAgICBzZXRIYWRU
cmFuc2Zvcm1VcGRhdGUoKTsKKyAgICBSZW5kZXJTVkdDb250YWluZXI6OnN0eWxlV2lsbENoYW5n
ZShkaWZmLCBuZXdTdHlsZSk7Cit9CisKK1NWR0dyYXBoaWNzRWxlbWVudCYgUmVuZGVyU1ZHVHJh
bnNmb3JtYWJsZUNvbnRhaW5lcjo6Z3JhcGhpY3NFbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZG93bmNhc3Q8U1ZHR3JhcGhpY3NFbGVtZW50PihSZW5kZXJTVkdDb250YWluZXI6OmVsZW1l
bnQoKSk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5HSU5F
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFu
c2Zvcm1hYmxlQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2JkYTBiMGZiNjQ5ZDdm
YzYwYTE2Njc0YmFjN2MyZWQxYTc3ZmFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgKQEAgLTAs
MCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSwgSW5jLgorICogQ29weXJp
Z2h0IChjKSAyMDIwLCAyMDIxLCAyMDIyIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCisjaW5jbHVkZSAiUmVuZGVyU1ZHQ29udGFp
bmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU1ZHR3JhcGhpY3NFbGVtZW50
OworCitjbGFzcyBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyIGZpbmFsIDogcHVibGlj
IFJlbmRlclNWR0NvbnRhaW5lciB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSZW5kZXJT
VkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKTsKK3B1YmxpYzoKKyAgICBSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyKFNWR0dyYXBoaWNzRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOworCisg
ICAgYm9vbCBpc1NWR1RyYW5zZm9ybWFibGVDb250YWluZXIoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CisgICAgdm9pZCBzZXRIYWRUcmFuc2Zvcm1VcGRhdGUoYm9vbCB2YWx1ZSA9IHRy
dWUpIHsgbV9oYWRUcmFuc2Zvcm1VcGRhdGUgPSB2YWx1ZTsgfQorICAgIGJvb2wgZGlkVHJhbnNm
b3JtVG9Sb290VXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRh
dGU7IH0KKworcHJpdmF0ZToKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQmIGdyYXBoaWNzRWxlbWVu
dCgpIGNvbnN0OworCisgICAgdm9pZCBlbGVtZW50KCkgY29uc3QgPSBkZWxldGU7CisKKyAgICB2
b2lkIGxheW91dENoaWxkcmVuKCkgZmluYWw7CisgICAgdm9pZCBjYWxjdWxhdGVWaWV3cG9ydCgp
IGZpbmFsOworICAgIEZsb2F0UG9pbnQgYWRkaXRpb25hbENvbnRhaW5lclRyYW5zbGF0aW9uKCkg
Y29uc3Q7CisgICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNv
bnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNm
b3JtT3BlcmF0aW9uT3B0aW9uPiA9IFJlbmRlclN0eWxlOjphbGxUcmFuc2Zvcm1PcGVyYXRpb25z
KSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkgZmluYWw7CisgICAgdm9pZCB1cGRhdGVGcm9t
U3R5bGUoKSBmaW5hbDsKKworICAgIEFmZmluZVRyYW5zZm9ybSBtX3N1cHBsZW1lbnRhbExvY2Fs
VG9QYXJlbnRUcmFuc2Zvcm07CisgICAgYm9vbCBtX2RpZFRyYW5zZm9ybVRvUm9vdFVwZGF0ZSB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2hhZFRyYW5zZm9ybVVwZGF0ZSB7IGZhbHNlIH07Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfUkVOREVS
X09CSkVDVChSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLCBpc1NWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIoKSkKKworI2VuZGlmIC8vIEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5HSU5F
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdDb250YWluZXJM
YXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdDb250YWluZXJMYXlv
dXQuY3BwCmluZGV4IGI1MzRiMDhjNTRhNDE0MGE5ZTYyYjdmM2ViZjVjZDU3MzQ3MDhhYTAuLjkx
MDUwZjk0MWE5YWFlOTRmOTk0NDJkOTNiNmMzMmEyYmY4ODNiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHQ29udGFpbmVyTGF5b3V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0NvbnRhaW5lckxheW91dC5jcHAKQEAgLTM5LDYg
KzM5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZH
U2hhcGUuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdUZXh0LmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZH
VHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1ZpZXdwb3J0Q29u
dGFpbmVyLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3VwcG9ydC5oIgogI2luY2x1ZGUgIlNWR1Jl
bmRlcmluZ0NvbnRleHQuaCIKQEAgLTI3MSwxMSArMjcyLDEwIEBAIGJvb2wgU1ZHQ29udGFpbmVy
TGF5b3V0OjpsYXlvdXRTaXplT2ZOZWFyZXN0Vmlld3BvcnRDaGFuZ2VkKCkgY29uc3QKIGJvb2wg
U1ZHQ29udGFpbmVyTGF5b3V0Ojp0cmFuc2Zvcm1Ub1Jvb3RDaGFuZ2VkKGNvbnN0IFJlbmRlck9i
amVjdCogYW5jZXN0b3IpCiB7CiAgICAgd2hpbGUgKGFuY2VzdG9yKSB7Ci0gICAgICAgIC8vIEZJ
WE1FOiBbTEJTRV0gVXBzdHJlYW0gUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lciBjaGFu
Z2VzCi0gICAgICAgIC8vIGlmIChpczxSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigq
YW5jZXN0b3IpKQotICAgICAgICAvLyAgICAgcmV0dXJuIGRvd25jYXN0PGNvbnN0IFJlbmRlclNW
R1RyYW5zZm9ybWFibGVDb250YWluZXI+KCphbmNlc3RvcikuZGlkVHJhbnNmb3JtVG9Sb290VXBk
YXRlKCk7CisgICAgICAgIGlmIChpczxSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyPigq
YW5jZXN0b3IpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PGNvbnN0IFJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXI+KCphbmNlc3RvcikuZGlkVHJhbnNmb3JtVG9Sb290VXBkYXRl
KCk7CiAKLSAgICAgICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVhbSBSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyIGNoYW5nZXMKKyAgICAgICAgLy8gRklYTUU6IFtMQlNFXSBVcHN0cmVh
bSBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lciBjaGFuZ2VzCiAgICAgICAgIC8vIGlmIChpczxS
ZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcj4oKmFuY2VzdG9yKSkKICAgICAgICAgLy8gICAgIHJl
dHVybiBkb3duY2FzdDxjb25zdCBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcj4oKmFuY2VzdG9y
KS5kaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3Bw
CmluZGV4IGRjNTkyYTJkNzQxZGYzN2ZlOTY3Y2ZjYjMyY2VkNmM3NjYxMDlmZDYuLmYyZWY3NzU3
YjU5MDI2ZTg2ZTJmZDVmZTUzYjdhZjhhMGNlOWI2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVu
dC5jcHAKQEAgLTUzMSw3ICs1MzEsNyBAQCBzdGF0aWMgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlS
b2Jpbkhvb2RIYXNoU2V0PEF0b21TdHJpbmc+IGNyZWF0ZVNWR0xheWVyQXdhcmVFbAogICAgIC8v
IExpc3Qgb2YgYWxsIFNWRyBlbGVtZW50cyB3aG9zZSByZW5kZXJlcnMgc3VwcG9ydCB0aGUgbGF5
ZXIgYXdhcmUgbGF5b3V0IC8gcGFpbnRpbmcgLyBoaXQtdGVzdGluZyBtb2RlICgnTEJTRS1tb2Rl
JykuCiAgICAgdXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOwogICAgIE1lbW9yeUNvbXBhY3RMb29r
dXBPbmx5Um9iaW5Ib29kSGFzaFNldDxBdG9tU3RyaW5nPiBzZXQ7Ci0gICAgZm9yIChhdXRvJiB0
YWcgOiB7IHJlY3RUYWcuZ2V0KCkgfSkKKyAgICBmb3IgKGF1dG8mIHRhZyA6IHsgZ1RhZy5nZXQo
KSwgcmVjdFRhZy5nZXQoKSB9KQogICAgICAgICBzZXQuYWRkKHRhZy5sb2NhbE5hbWUoKSk7CiAg
ICAgcmV0dXJuIHNldDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCmluZGV4IDQyY2I5
YzNjMzNlZTEzZDk3NjU5OThmZGZiOWExNWZhMTEwMTRjMGIuLjBmMTBhODQ0YzdmMWU0OGNhZDdl
MjkwYTFiYzFkZWU0YzUwZjk2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcApAQCAt
MjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkxlZ2FjeVJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJTVkdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1RyYW5zZm9ybWFibGVD
b250YWluZXIuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC01MSw2ICs1
MiwxMiBAQCBSZWY8U1ZHR0VsZW1lbnQ+IFNWR0dFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHR0VsZW1lbnQ6OmNyZWF0ZUVs
ZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKQogeworI2lmIEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5HSU5FKQorICAgIC8vIEZJWE1F
OiBbTEJTRV0gU3VwcG9ydCBoaWRkZW4gY29udGFpbmVycworICAgIGlmIChkb2N1bWVudCgpLnNl
dHRpbmdzKCkubGF5ZXJCYXNlZFNWR0VuZ2luZUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZVJlbmRlcmVyPFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXI+KCp0aGlzLCBXVEZN
b3ZlKHN0eWxlKSk7CisjZW5kaWYKKwogICAgIC8vIFNWRyAxLjEgdGVzdHN1aXRlIGV4cGxpY2l0
bHkgdXNlcyBjb25zdHJ1Y3RzIGxpa2UgPGcgZGlzcGxheT0ibm9uZSI+PGxpbmVhckdyYWRpZW50
PgogICAgIC8vIFdlIHN0aWxsIGhhdmUgdG8gY3JlYXRlIHJlbmRlcmVycyBmb3IgdGhlIDxnPiAm
IDxsaW5lYXJHcmFkaWVudD4gZWxlbWVudCwgdGhvdWdoIHRoZQogICAgIC8vIHN1YnRyZWUgbWF5
IGJlIGhpZGRlbiAtIHdlIG9ubHkgd2FudCB0aGUgcmVzb3VyY2UgcmVuZGVyZXJzIHRvIGV4aXN0
IHNvIHRoZXkgY2FuIGJlCg==
</data>
<flag name="review"
          id="481315"
          type_id="1"
          status="+"
          setter="rbuis"
    />
    <flag name="commit-queue"
          id="481452"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>