<?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>233843</bug_id>
          
          <creation_ts>2021-12-03 16:20:12 -0800</creation_ts>
          <short_desc>[GPU Process] (REGRESSION r285597): Fix SVGFilter clamping calculation</short_desc>
          <delta_ts>2021-12-03 22:13:21 -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>Layout and Rendering</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=232457</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=231253</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=233849</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>
          
          <blocked>231253</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>heycam</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820344</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-03 16:20:12 -0800</bug_when>
    <thetext>Before r285597, there were two transformations for SVGFilter: (1) the transform from the renderer of the SVGFilter to the outer root and (2) the clamping scale. But since we use only the scaling part of the outer root transformation in scaling the SVGFilter, in r285597 the clamping scale and the outer root scale were merged in one FloatSize called filterScale.

But I misunderstood the purpose and the arguments of ImageBuffer::sizeNeedsClamping(). And I think also there is a bug in SVGRenderingContext::createImageBuffer(). In this bug the following layout tests should be un-skipped.

webkit.org/b/232705 imported/blink/svg/filters/filter-huge-clamping.svg [ Skip ]
webkit.org/b/232705 svg/filters/big-sized-off-viewport-filter.svg [ Skip ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820388</commentid>
    <comment_count>1</comment_count>
      <attachid>445933</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-03 17:33:59 -0800</bug_when>
    <thetext>Created attachment 445933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820416</commentid>
    <comment_count>2</comment_count>
      <attachid>445933</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-12-03 20:04:21 -0800</bug_when>
    <thetext>Comment on attachment 445933
Patch

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

&gt; Source/WebCore/rendering/CSSFilter.h:53
&gt; +    RefPtr&lt;FilterEffect&gt; lastEffect() const override;

or final?

&gt; Source/WebCore/svg/graphics/filters/SVGFilter.h:45
&gt; +    RefPtr&lt;FilterEffect&gt; lastEffect() const override { return !m_expression.isEmpty() ? m_expression.last() : nullptr; }

final</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820421</commentid>
    <comment_count>3</comment_count>
      <attachid>445951</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-03 20:42:00 -0800</bug_when>
    <thetext>Created attachment 445951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820431</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-03 22:12:33 -0800</bug_when>
    <thetext>Committed r286526 (244858@main): &lt;https://commits.webkit.org/244858@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445951.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820432</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-03 22:13:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/86046194&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445933</attachid>
            <date>2021-12-03 17:33:59 -0800</date>
            <delta_ts>2021-12-03 20:04:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233843-20211203173358.patch</filename>
            <type>text/plain</type>
            <size>17243</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFkODU3N2Q2NGQ1YmMz
ZGIxZTRhZDk2NzA4N2M2NDc0YTAyNTRiZi4uMDU5ODA5NTZjNjFjNzAyZmJlNjQ1N2Q1Yzg3YjNl
NTNjNGEzY2QxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIxLTEyLTAzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
KFJFR1JFU1NJT04gcjI4NTU5Nyk6IEZpeCBTVkdGaWx0ZXIgY2xhbXBpbmcgY2FsY3VsYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzg0Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHRoaXMg
cGF0Y2g6CisKKyAgICAgICAgMS4gbGFzdEVmZmVjdCgpIGlzIG1hZGUgdmlydHVhbCBmdW5jdGlv
biBvZiBGaWx0ZXIgYW5kIGl0J3MgYWxyZWFkeSAKKyAgICAgICAgICAgaW1wbGVtZW50ZWQgYXMg
bm9uLXZpcnR1YWwgZnVuY3Rpb24gaW4gYm90aCBDU1NGaWx0ZXIgYW5kIFNWR0ZpbHRlci4KKwor
ICAgICAgICAyLiBUaGUgY2xhbXBpbmcgY2FsY3VsYXRpb25zIGZvciBTVkdGaWx0ZXIgYW5kIENT
U0ZpbHRlciBhcmUgbWVyZ2VkIGluCisgICAgICAgICAgIG9uZSBmdW5jdGlvbiBjYWxsZWQgRmls
dGVyOjpjbGFtcEZpbHRlclJlZ2lvbklmTmVlZGVkKCkuIFRoaXMgbWVyZ2UKKyAgICAgICAgICAg
bWFrZXMgdGhlIG5ldyBmdW5jdGlvbiBpcyB0aGUgb25seSBjYWxsZXIgdG8gRmlsdGVyRWZmZWN0
OjptYXhFZmZlY3RSZWN0KCkuCisKKyAgICAgICAgMy4gUmVtb3ZlIEZpbHRlckVmZmVjdDo6bWF4
RWZmZWN0UmVjdCgpIC4gSXQgY2FuIGJlIGNhbGN1bGF0ZWQgYnkgY2xpcHBpbmcKKyAgICAgICAg
ICAgdGhlIEZpbHRlckVmZmVjdDo6ZmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCkgdG8gZmlsdGVy
UmVnaW9uKCkgYW5kIHRoZW4KKyAgICAgICAgICAgc2NhbGluZyB0aGUgcmVzdWx0IGJ5IGZpbHRl
clNjYWxlKCkuCisKKyAgICAgICAgNC4gSW4gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5
UmVzb3VyY2UoKSB3ZSBuZWVkIHRvIHBhc3MgdGhlIG5vbi0KKyAgICAgICAgICAgc2NhbGVkIGRy
YXdpbmdSZWdpb24gdG8gSW1hZ2VCdWZmZXI6OnNpemVOZWVkc0NsYW1waW5nKCkgYmVjYXVzZSB0
aGlzCisgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0cyBieSBzY2FsaW5nIHRoZSBhcmd1bWVudCAn
c2l6ZScgYnkgdGhlIGFyZ3VtZW50ICdzY2FsZScuCisgICAgICAgICAgIFNvIHdlIHdlcmUgZG91
YmxpbmcgdGhlIHNjYWxpbmcgYnkgcGFzc2luZyAnYWJzb2x1dGVEcmF3aW5nUmVnaW9uJworCisg
ICAgICAgIDUuIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgbmVlZHMg
dG8gdXNlIEltYWdlQnVmZmVyOjoKKyAgICAgICAgICAgc2l6ZU5lZWRzQ2xhbXBpbmcoKSBpbnN0
ZWFkIG9mIHVzaW5nIEltYWdlQnVmZmVyOjpjbGFtcGVkU2l6ZSgpLiBUaGUKKyAgICAgICAgICAg
Zm9ybWVyIGZ1bmN0aW9uIGNsYW1wcyB0aGUgc2l6ZSB0byB0aGUgTWF4Q2xhbXBlZEFyZWEuIEJ1
dCB0aGUgbGF0ZXIKKyAgICAgICAgICAgZnVuY3Rpb24gc2hyaW5rcyB0aGUgc2l6ZSB0byB7IE1h
eENsYW1wZWRMZW5ndGgsIE1heENsYW1wZWRMZW5ndGggfS4KKyAgICAgICAgICAgV2hlbiBjYWxs
aW5nIGNyZWF0ZUltYWdlQnVmZmVyKCkgZnJvbSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6Cisg
ICAgICAgICAgIGFwcGx5UmVzb3VyY2UoKSB3ZSBkbyBub3QgZXhwZWN0IGFueSBmdXJ0aGVyIGNs
YW1waW5nLiBCdXQgaWYgd2UgcGFzcworICAgICAgICAgICBhIHNpemUgd2l0aCBhIHNpZGUgIGdy
ZWF0ZXIgdGhhbiBNYXhDbGFtcGVkTGVuZ3RoIHRvIGNsYW1wZWRTaXplKCksCisgICAgICAgICAg
IGl0ICB3aWxsIGJlIGNsYW1wZWQgZXZlbiBpZiB0aGUgYXJlYSBpcyBsZXNzIHRoYW4gTWF4Q2xh
bXBlZEFyZWEuIEFuZAorICAgICAgICAgICBmb3IgZmlsdGVycyB3ZSBjbGFtcCB0byB0aGUgYXJl
YS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbHRlcjo6Y2xhbXBGaWx0ZXJSZWdpb25JZk5lZWRlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGaWx0ZXJFZmZlY3Q6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjptYXhFZmZlY3RSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkZpbHRlckVmZmVjdDo6c2V0TWF4RWZmZWN0UmVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL0NTU0ZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXI6Omxhc3RF
ZmZlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVyOjpsYXN0RWZmZWN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlcjo6ZGV0ZXJtaW5lRmlsdGVyUHJp
bWl0aXZlU3VicmVnaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVy
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckZpbHRlcnM6OmJlZ2luRmlsdGVyRWZmZWN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oOgorCiAyMDIxLTEyLTAyICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gTW92
ZSB0aGUgRmlsdGVyRWZmZWN0IGJvdW5kYXJpZXMgdG8gYSBuZXcgY2xhc3MgRmlsdGVyRWZmZWN0
R2VvbWV0cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyLmNwcAppbmRleCA4M2NmYjE2ZmZhNWMxZWQzZjA0NWU3Y2M3NDY5MjM5YTVkMzAy
Mzg5Li4zMmNkODA5NzExNTQwNWZkNjVhYTQ0NTZkNGIxZTc4MTRhYTMxYzY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuY3BwCkBA
IC03Niw2ICs3NiwyNiBAQCBGbG9hdFJlY3QgRmlsdGVyOjpjbGlwVG9NYXhFZmZlY3RSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBGbG9hdFJlYwogICAgIHJldHVybiBtX2Ns
aXBPcGVyYXRpb24gPT0gQ2xpcE9wZXJhdGlvbjo6SW50ZXJzZWN0ID8gaW50ZXJzZWN0aW9uKGlt
YWdlUmVjdCwgbWF4RWZmZWN0UmVjdCkgOiB1bmlvblJlY3QoaW1hZ2VSZWN0LCBtYXhFZmZlY3RS
ZWN0KTsKIH0KIAorYm9vbCBGaWx0ZXI6OmNsYW1wRmlsdGVyUmVnaW9uSWZOZWVkZWQoKQorewor
ICAgIGF1dG8gbGFzdEVmZmVjdCA9IHRoaXMtPmxhc3RFZmZlY3QoKTsKKyAgICBsYXN0RWZmZWN0
LT5kZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKnRoaXMpOworICAgIAorICAgIGF1
dG8gbWF4RWZmZWN0UmVjdCA9IHRoaXMtPm1heEVmZmVjdFJlY3QobGFzdEVmZmVjdC0+ZmlsdGVy
UHJpbWl0aXZlU3VicmVnaW9uKCkpOworICAgIGF1dG8gc2NhbGVkTWF4RWZmZWN0UmVjdCA9IHNj
YWxlZEJ5RmlsdGVyU2NhbGUobWF4RWZmZWN0UmVjdCk7CisKKyAgICBGbG9hdFNpemUgY2xhbXBp
bmdTY2FsZSgxLCAxKTsKKyAgICBpZiAoIUltYWdlQnVmZmVyOjpzaXplTmVlZHNDbGFtcGluZyhz
Y2FsZWRNYXhFZmZlY3RSZWN0LnNpemUoKSwgY2xhbXBpbmdTY2FsZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIG1fZmlsdGVyU2NhbGUgPSBtX2ZpbHRlclNjYWxlICogY2xhbXBpbmdT
Y2FsZTsKKworICAgIC8vIEF0IGxlYXN0IG9uZSBGaWx0ZXJFZmZlY3QgaGFzIGEgdG9vIGJpZyBp
bWFnZSBzaXplLAorICAgIC8vIHJlY2FsY3VsYXRlIHRoZSBlZmZlY3Qgc2l6ZXMgd2l0aCBuZXcg
c2NhbGUgZmFjdG9ycy4KKyAgICBsYXN0RWZmZWN0LT5kZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVT
dWJyZWdpb24oKnRoaXMpOworICAgIHJldHVybiB0cnVlOworfQorCiBSZWZQdHI8RmlsdGVySW1h
Z2U+IEZpbHRlcjo6YXBwbHkoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKQogewogICAgIHNldFNv
dXJjZUltYWdlKHNvdXJjZUltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCmluZGV4IGMzOTE5OTYzNzg0MzA3YWEyMWM0YzQwMDE1
NzViODdkYTNiYTFlMjEuLmNhMWQ5NTM0YzdmOGIxODA2ZDgxYTVkMjAyN2Y4YzQ5MmFlMjI4M2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXIuaApAQCAtNjcsNiArNjcsMTAgQEAgcHVibGljOgogICAgIEZsb2F0UmVjdCBtYXhFZmZlY3RS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZlU3VicmVnaW9uKSBjb25zdDsKICAgICBGbG9h
dFJlY3QgY2xpcFRvTWF4RWZmZWN0UmVjdChjb25zdCBGbG9hdFJlY3QmIGltYWdlUmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBwcmltaXRpdmVTdWJyZWdpb24pIGNvbnN0OwogCisgICAgdmlydHVhbCBS
ZWZQdHI8RmlsdGVyRWZmZWN0PiBsYXN0RWZmZWN0KCkgY29uc3QgPSAwOworCisgICAgYm9vbCBj
bGFtcEZpbHRlclJlZ2lvbklmTmVlZGVkKCk7CisgICAgCiAgICAgdmlydHVhbCBSZWZQdHI8Rmls
dGVySW1hZ2U+IGFwcGx5KCkgPSAwOwogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxGaWx0ZXJJ
bWFnZT4gYXBwbHkoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3Bw
CmluZGV4IDZlMTA5MjQ5NmVmODQ1YjZiODcyY2IxMDZjMGRkMTYwODlmNTdhZWQuLjBhZTk0ZDUw
NmUxNDFlZGYzNDM0YWRiNjI0Yzg2YzUzMjIyNjNkMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAg
LTcwLDEzICs3MCw3IEBAIEZsb2F0UmVjdCBGaWx0ZXJFZmZlY3Q6OmRldGVybWluZUZpbHRlclBy
aW1pdGl2ZVN1YnJlZ2lvbihjb25zdCBGaWx0ZXImIGZpbHRlcikKICAgICAgICAgICAgIHByaW1p
dGl2ZVN1YnJlZ2lvbi5zZXRIZWlnaHQoKmhlaWdodCk7CiAgICAgfQogCi0gICAgLy8gQ2xpcCBl
dmVyeSBmaWx0ZXIgZWZmZWN0IHRvIHRoZSBmaWx0ZXIgcmVnaW9uLgotICAgIGF1dG8gYWJzb2x1
dGVNYXhFZmZlY3RSZWN0ID0gZmlsdGVyLm1heEVmZmVjdFJlY3QocHJpbWl0aXZlU3VicmVnaW9u
KTsKLSAgICBhYnNvbHV0ZU1heEVmZmVjdFJlY3Quc2NhbGUoZmlsdGVyLmZpbHRlclNjYWxlKCkp
OwotCiAgICAgc2V0RmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKHByaW1pdGl2ZVN1YnJlZ2lvbik7
Ci0gICAgc2V0TWF4RWZmZWN0UmVjdChhYnNvbHV0ZU1heEVmZmVjdFJlY3QpOwotCiAgICAgcmV0
dXJuIHByaW1pdGl2ZVN1YnJlZ2lvbjsKIH0KIApAQCAtMTI3LDcgKzEyMSw3IEBAIGJvb2wgRmls
dGVyRWZmZWN0OjphcHBseShjb25zdCBGaWx0ZXImIGZpbHRlcikKICAgICAgICAgPDwgIkZpbHRl
ckVmZmVjdCAiIDw8IGZpbHRlck5hbWUoKSA8PCAiICIgPDwgdGhpcyA8PCAiIGFwcGx5KCk6Igog
ICAgICAgICA8PCAiXG4gIGZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbiAiIDw8IG1fZmlsdGVyUHJp
bWl0aXZlU3VicmVnaW9uCiAgICAgICAgIDw8ICJcbiAgYWJzb2x1dGVQYWludFJlY3QgIiA8PCBh
YnNvbHV0ZUltYWdlUmVjdAotICAgICAgICA8PCAiXG4gIG1heEVmZmVjdFJlY3QgIiA8PCBtX21h
eEVmZmVjdFJlY3QKKyAgICAgICAgPDwgIlxuICBtYXhFZmZlY3RSZWN0ICIgPDwgZmlsdGVyLnNj
YWxlZEJ5RmlsdGVyU2NhbGUoZmlsdGVyLm1heEVmZmVjdFJlY3QobV9maWx0ZXJQcmltaXRpdmVT
dWJyZWdpb24pKQogICAgICAgICA8PCAiXG4gIGZpbHRlciBzY2FsZSAiIDw8IGZpbHRlci5maWx0
ZXJTY2FsZSgpKTsKIAogICAgIHJldHVybiBhcHBsaWVyLT5hcHBseShmaWx0ZXIsIGlucHV0Rmls
dGVySW1hZ2VzLCAqbV9maWx0ZXJJbWFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAppbmRleCA2MmU2YTM3Yzhm
ZWRmZDdkMjRkYjQ1ZjFjOGZmNzcyMjdhNWI4MmQzLi44MjdlYjVkYjgxZTkxYzkyMzY5NjllYTVm
ZDkyMDJhOGNiOTViMzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKQEAgLTU2LDkgKzU2LDYgQEAgcHVibGlj
OgogICAgIC8vIFJlY3Vyc2VzIG9uIGlucHV0cy4KICAgICBGbG9hdFJlY3QgZGV0ZXJtaW5lRmls
dGVyUHJpbWl0aXZlU3VicmVnaW9uKGNvbnN0IEZpbHRlciYpOwogCi0gICAgRmxvYXRSZWN0IG1h
eEVmZmVjdFJlY3QoKSBjb25zdCB7IHJldHVybiBtX21heEVmZmVjdFJlY3Q7IH0KLSAgICB2b2lk
IHNldE1heEVmZmVjdFJlY3QoY29uc3QgRmxvYXRSZWN0JiBtYXhFZmZlY3RSZWN0KSB7IG1fbWF4
RWZmZWN0UmVjdCA9IG1heEVmZmVjdFJlY3Q7IH0KLQogICAgIGJvb2wgYXBwbHkoY29uc3QgRmls
dGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBDb3JyZWN0IGFueSBpbnZhbGlkIHBpeGVscywgaWYg
bmVjZXNzYXJ5LCBpbiB0aGUgcmVzdWx0IG9mIGEgZmlsdGVyIG9wZXJhdGlvbi4KQEAgLTk2LDEw
ICs5Myw2IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8RmlsdGVySW1hZ2U+IG1fZmlsdGVySW1h
Z2U7CiAKLSAgICAvLyBUaGUgbWF4aW11bSBzaXplIG9mIGEgZmlsdGVyIHByaW1pdGl2ZS4gSW4g
U1ZHIHRoaXMgaXMgdGhlIHByaW1pdGl2ZSBzdWJyZWdpb24gaW4gYWJzb2x1dGUgY29vcmRpbmF0
ZSBzcGFjZS4KLSAgICAvLyBUaGUgYWJzb2x1dGUgcGFpbnQgcmVjdCBzaG91bGQgbmV2ZXIgYmUg
YmlnZ2VyIHRoYW4gbV9tYXhFZmZlY3RSZWN0LgotICAgIEZsb2F0UmVjdCBtX21heEVmZmVjdFJl
Y3Q7Ci0gICAgCiAgICAgLy8gVGhlIHN1YnJlZ2lvbiBvZiBhIGZpbHRlciBwcmltaXRpdmUgYWNj
b3JkaW5nIHRvIHRoZSBTVkcgRmlsdGVyIHNwZWNpZmljYXRpb24gaW4gbG9jYWwgY29vcmRpbmF0
ZXMuCiAgICAgLy8gVGhpcyBpcyBTVkcgc3BlY2lmaWMgYW5kIG5lZWRzIHRvIG1vdmUgdG8gUmVu
ZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuCiAgICAgRmxvYXRSZWN0IG1fZmlsdGVyUHJp
bWl0aXZlU3VicmVnaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NT
U0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAppbmRl
eCBhNzk2OTMyOGQ2NThmOTNhNDUyMzNiNjFjZWNmMGYyMWZmOTM4ZGZmLi5jOTE5ZDk4MDU0M2I3
ODlmNWI5ZTU5ZTlhMjYxNWNhNzkwZTdmYmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NT
RmlsdGVyLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkZFQ29tcG9uZW50VHJhbnNm
ZXIuaCIKICNpbmNsdWRlICJGRURyb3BTaGFkb3cuaCIKICNpbmNsdWRlICJGRUdhdXNzaWFuQmx1
ci5oIgotI2luY2x1ZGUgIkZFTWVyZ2UuaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25z
LmgiCkBAIC00MywxMCArNDIsNiBAQAogI2luY2x1ZGUgIlNWR0ZpbHRlckVsZW1lbnQuaCIKICNp
bmNsdWRlICJTb3VyY2VHcmFwaGljLmgiCiAKLSNpZiBVU0UoRElSRUNUMkQpCi0jaW5jbHVkZSA8
ZDJkMS5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmUHRyPENTU0ZpbHRl
cj4gQ1NTRmlsdGVyOjpjcmVhdGUoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgb3BlcmF0aW9ucywg
UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBmbG9hdCBzY2FsZUZhY3RvciwgQ2xpcE9wZXJh
dGlvbiBjbGlwT3BlcmF0aW9uKQpAQCAtMzM2LDcgKzMzMSw3IEBAIGJvb2wgQ1NTRmlsdGVyOjp1
cGRhdGVCYWNraW5nU3RvcmVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgZmlsdGVyUmVjdCkKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPEZpbHRlckVmZmVjdD4gQ1NTRmlsdGVyOjpsYXN0RWZm
ZWN0KCkKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IENTU0ZpbHRlcjo6bGFzdEVmZmVjdCgpIGNvbnN0
CiB7CiAgICAgaWYgKG1fZnVuY3Rpb25zLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CkBAIC0zNjMsMTkgKzM1OCw2IEBAIGJvb2wgQ1NTRmlsdGVyOjpzdXBwb3J0c0NvcmVJbWFn
ZVJlbmRlcmluZygpIGNvbnN0CiB9CiAjZW5kaWYKIAotdm9pZCBDU1NGaWx0ZXI6OmRldGVybWlu
ZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpCi17Ci0gICAgYXV0byBlZmZlY3QgPSBsYXN0RWZm
ZWN0KCk7Ci0gICAgZWZmZWN0LT5kZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKnRo
aXMpOwotICAgIEZsb2F0UmVjdCBzdWJSZWdpb24gPSBlZmZlY3QtPm1heEVmZmVjdFJlY3QoKTsK
LSAgICAvLyBBdCBsZWFzdCBvbmUgRmlsdGVyRWZmZWN0IGhhcyBhIHRvbyBiaWcgaW1hZ2Ugc2l6
ZSwgcmVjYWxjdWxhdGUgdGhlIGVmZmVjdCBzaXplcyB3aXRoIG5ldyBzY2FsZSBmYWN0b3JzLgot
ICAgIEZsb2F0U2l6ZSBmaWx0ZXJTY2FsZSB7IDEsIDEgfTsKLSAgICBpZiAoSW1hZ2VCdWZmZXI6
OnNpemVOZWVkc0NsYW1waW5nKHN1YlJlZ2lvbi5zaXplKCksIGZpbHRlclNjYWxlKSkgewotICAg
ICAgICBzZXRGaWx0ZXJTY2FsZShmaWx0ZXJTY2FsZSk7Ci0gICAgICAgIGVmZmVjdC0+ZGV0ZXJt
aW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCp0aGlzKTsKLSAgICB9Ci19Ci0KIHZvaWQgQ1NT
RmlsdGVyOjpjbGVhckludGVybWVkaWF0ZVJlc3VsdHMoKQogewogICAgIGZvciAoYXV0byYgZnVu
Y3Rpb24gOiBtX2Z1bmN0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DU1NGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaAppbmRl
eCAyZjUxNmU1MDU0OWNmMDcwYjczMzkwMmY4MmY0Njg1YTM4MWM1YTMyLi43NTM5OWIzN2NmMzc4
MGYwNGM5ZGQ5YmI1NTA2NTFmMDczNWQ4Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ1NTRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0Zp
bHRlci5oCkBAIC00NiwxMiArNDYsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRTb3VyY2VJ
bWFnZVJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgYm9vbCBidWlsZEZpbHRlckZ1bmN0aW9u
cyhSZW5kZXJFbGVtZW50JiwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpOwotICAgIHZvaWQgZGV0
ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCk7CiAKICAgICBib29sIGhhc0ZpbHRlclRo
YXRNb3Zlc1BpeGVscygpIGNvbnN0IHsgcmV0dXJuIG1faGFzRmlsdGVyVGhhdE1vdmVzUGl4ZWxz
OyB9CiAgICAgYm9vbCBoYXNGaWx0ZXJUaGF0U2hvdWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9y
aWdpbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzRmlsdGVyVGhhdFNob3VsZEJlUmVzdHJpY3RlZEJ5
U2VjdXJpdHlPcmlnaW47IH0KIAotICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGxhc3RFZmZlY3Qo
KTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBsYXN0RWZmZWN0KCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgSW50T3V0c2V0cyBvdXRzZXRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNs
ZWFySW50ZXJtZWRpYXRlUmVzdWx0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcAppbmRleCBhYzc3YjhlNTNmZTNiM2RhOTkyYTcyMmJkODJl
NTQxNWNhNzRiMjNhLi5hZTcxMjI0NGY5Yzg0MmQxODc2YjIwOTlhNmMzYzkwNzc3MmFjMGQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcApA
QCAtMTgwLDcgKzE4MCw3IEBAIEdyYXBoaWNzQ29udGV4dCogUmVuZGVyTGF5ZXJGaWx0ZXJzOjpi
ZWdpbkZpbHRlckVmZmVjdChHcmFwaGljc0NvbnRleHQmIGRlc3RpbmF0CiAgICAgbV9wYWludE9m
ZnNldCA9IGZpbHRlclNvdXJjZVJlY3QubG9jYXRpb24oKTsKICAgICByZXNldERpcnR5U291cmNl
UmVjdCgpOwogCi0gICAgZmlsdGVyLmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigp
OworICAgIGZpbHRlci5jbGFtcEZpbHRlclJlZ2lvbklmTmVlZGVkKCk7CiAKICAgICBpZiAoaGFz
VXBkYXRlZEJhY2tpbmdTdG9yZSkKICAgICAgICAgYWxsb2NhdGVCYWNraW5nU3RvcmUoZGVzdGlu
YXRpb25Db250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKaW5kZXggZmRhZDAzOWEwYzEwYTFmODUwYjYz
YzA0ODRmZTIxNmNlNTE5ZDVlYy4uYjAzMGMwZjY2NTYxNTFjMTExYTIxZTk5ZDMwMDEyMjEzNjZm
NDA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKQEAgLTEyMiw5ICsxMjIsNyBAQCBib29sIFJlbmRlclNW
R1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBj
b25zdCBSZW5kZQogICAgIGZpbHRlckRhdGEtPmRyYXdpbmdSZWdpb24uaW50ZXJzZWN0KGZpbHRl
ckRhdGEtPmJvdW5kYXJpZXMpOwogCiAgICAgLy8gRGV0ZXJtaW5lIHNjYWxlIGZhY3RvciBmb3Ig
ZmlsdGVyLiBUaGUgc2l6ZSBvZiBpbnRlcm1lZGlhdGUgSW1hZ2VCdWZmZXJzIHNob3VsZG4ndCBi
ZSBiaWdnZXIgdGhhbiBrTWF4RmlsdGVyU2l6ZS4KLSAgICBGbG9hdFJlY3QgYWJzb2x1dGVEcmF3
aW5nUmVnaW9uID0gZmlsdGVyRGF0YS0+ZHJhd2luZ1JlZ2lvbjsKLSAgICBhYnNvbHV0ZURyYXdp
bmdSZWdpb24uc2NhbGUoZmlsdGVyU2NhbGUpOwotICAgIEltYWdlQnVmZmVyOjpzaXplTmVlZHND
bGFtcGluZyhhYnNvbHV0ZURyYXdpbmdSZWdpb24uc2l6ZSgpLCBmaWx0ZXJTY2FsZSk7CisgICAg
SW1hZ2VCdWZmZXI6OnNpemVOZWVkc0NsYW1waW5nKGZpbHRlckRhdGEtPmRyYXdpbmdSZWdpb24u
c2l6ZSgpLCBmaWx0ZXJTY2FsZSk7CiAKICAgICAvLyBTZXQgdGhlIHJlbmRlcmluZyBtb2RlIGZy
b20gdGhlIHBhZ2UncyBzZXR0aW5ncy4KICAgICBhdXRvIHJlbmRlcmluZ01vZGUgPSByZW5kZXJl
ci5zZXR0aW5ncygpLmFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKSA/IFJlbmRlcmluZ01vZGU6
OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKQEAgLTEzNywyMSAr
MTM1LDkgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdXJjZShSZW5k
ZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgUmVuZGUKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIGF1dG8gbGFzdEVmZmVjdCA9IGZpbHRlckRhdGEtPmJ1aWxkZXItPmxhc3RF
ZmZlY3QoKTsKLSAgICBBU1NFUlQobGFzdEVmZmVjdCk7Ci0KLSAgICBMT0dfV0lUSF9TVFJFQU0o
RmlsdGVycywgc3RyZWFtIDw8ICJSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdXJj
ZVxuIiA8PCAqZmlsdGVyRGF0YS0+YnVpbGRlci0+bGFzdEVmZmVjdCgpKTsKLQotICAgIGxhc3RF
ZmZlY3QtPmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigqZmlsdGVyRGF0YS0+Zmls
dGVyKTsKLSAgICBGbG9hdFJlY3Qgc3ViUmVnaW9uID0gbGFzdEVmZmVjdC0+bWF4RWZmZWN0UmVj
dCgpOwotCi0gICAgLy8gQXQgbGVhc3Qgb25lIEZpbHRlckVmZmVjdCBoYXMgYSB0b28gYmlnIGlt
YWdlIHNpemUsCi0gICAgLy8gcmVjYWxjdWxhdGUgdGhlIGVmZmVjdCBzaXplcyB3aXRoIG5ldyBz
Y2FsZSBmYWN0b3JzLgotICAgIGlmIChJbWFnZUJ1ZmZlcjo6c2l6ZU5lZWRzQ2xhbXBpbmcoc3Vi
UmVnaW9uLnNpemUoKSwgZmlsdGVyU2NhbGUpKSB7Ci0gICAgICAgIGZpbHRlckRhdGEtPmZpbHRl
ci0+c2V0RmlsdGVyU2NhbGUoZmlsdGVyU2NhbGUpOwotICAgICAgICBsYXN0RWZmZWN0LT5kZXRl
cm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKmZpbHRlckRhdGEtPmZpbHRlcik7Ci0gICAg
fQotCisgICAgaWYgKGZpbHRlckRhdGEtPmZpbHRlci0+Y2xhbXBGaWx0ZXJSZWdpb25JZk5lZWRl
ZCgpKQorICAgICAgICBmaWx0ZXJTY2FsZSA9IGZpbHRlckRhdGEtPmZpbHRlci0+ZmlsdGVyU2Nh
bGUoKTsKKyAgICAKICAgICAvLyBJZiB0aGUgZHJhd2luZ1JlZ2lvbiBpcyBlbXB0eSwgd2UgaGF2
ZSBzb21ldGhpbmcgbGlrZSA8ZyBmaWx0ZXI9Ii4uIi8+LgogICAgIC8vIEV2ZW4gaWYgdGhlIHRh
cmdldCBvYmplY3RCb3VuZGluZ0JveCgpIGlzIGVtcHR5LCB3ZSBzdGlsbCBoYXZlIHRvIGRyYXcg
dGhlIGxhc3QgZWZmZWN0IHJlc3VsdCBpbWFnZSBpbiBwb3N0QXBwbHlSZXNvdXJjZS4KICAgICBp
ZiAoZmlsdGVyRGF0YS0+ZHJhd2luZ1JlZ2lvbi5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDIw
YjhiNWU3YjA3YjMxYTEyYzVhYWNiYTM4NTg5MmZiZjNhMjM1NzMuLjNkMDYwNzRmNDZlYzgwNGIy
ZDk4MjBhOWZmZDg0OTUwYjhhMDA1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjM1LDggKzIzNSwxMCBAQCBS
ZWZQdHI8SW1hZ2VCdWZmZXI+IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVy
KGNvbnN0IEZsb2F0UmVjdCYgdGFyZwogICAgIGlmIChwYWludFJlY3QuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIEZsb2F0U2l6ZSBzY2FsZTsKLSAgICBGbG9hdFNp
emUgY2xhbXBlZFNpemUgPSBJbWFnZUJ1ZmZlcjo6Y2xhbXBlZFNpemUocGFpbnRSZWN0LnNpemUo
KSwgc2NhbGUpOworICAgIEZsb2F0U2l6ZSBzY2FsZSgxLCAxKTsKKyAgICBGbG9hdFNpemUgY2xh
bXBlZFNpemUgPSBwYWludFJlY3Quc2l6ZSgpOworICAgIGlmIChJbWFnZUJ1ZmZlcjo6c2l6ZU5l
ZWRzQ2xhbXBpbmcoY2xhbXBlZFNpemUsIHNjYWxlKSkKKyAgICAgICAgY2xhbXBlZFNpemUgPSBj
bGFtcGVkU2l6ZSAqIHNjYWxlOwogCiAjaWYgVVNFKERJUkVDVDJEKQogICAgIGF1dG8gaW1hZ2VC
dWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNsYW1wZWRTaXplLCByZW5kZXJpbmdNb2RlLCBj
b250ZXh0LCAxLCBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdDo6QkdSQTgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAppbmRleCA2NWIxMGM5YzY4
OWEwN2MxYmFjZjlkODc5MTk2YzY3NDQ4NzkxNDExLi40ZTc1ZTYyZjI2M2QyZDgzYmM1ZmI5NTE4
MTllN2YwNTBiNDc2NWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
ZmlsdGVycy9TVkdGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGaWx0ZXIuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKICAgICBGbG9hdFJl
Y3QgdGFyZ2V0Qm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBtX3RhcmdldEJvdW5kaW5nQm94
OyB9CiAKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBsYXN0RWZmZWN0KCkgY29uc3QgeyByZXR1
cm4gIW1fZXhwcmVzc2lvbi5pc0VtcHR5KCkgPyBtX2V4cHJlc3Npb24ubGFzdCgpIDogbnVsbHB0
cjsgfQorICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGxhc3RFZmZlY3QoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAhbV9leHByZXNzaW9uLmlzRW1wdHkoKSA/IG1fZXhwcmVzc2lvbi5sYXN0KCkg
OiBudWxscHRyOyB9CiAKICAgICBSZWZQdHI8RmlsdGVySW1hZ2U+IGFwcGx5KCkgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAxYzAyODgyYTU0NDk5OThmZjA3NTJkYzEzYTFlZTU0ODg3M2E5NGZlLi4xY2Nh
MGVkYTNjYzMxMTIzNDNjMTlmY2VlZjRiMTk1MDhiNjNkMjk5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMjEtMTItMDMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0dQVSBQcm9jZXNzXSAoUkVHUkVTU0lPTiByMjg1NTk3KTogRml4IFNWR0ZpbHRlciBj
bGFtcGluZyBjYWxjdWxhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzODQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVW5za2lwIHR3byBsYXlvdXQgdGVzdHMgd2hpY2ggd2VyZSBza2lwcGVkIGlu
IHIyODU1OTcuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTEyLTAyICBN
ZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgUmUtYWRk
IHN1cHBvcnQgb2YgaW1hZ2UgY29udHJvbCBtZW51cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDcw
MDBjMDIxMzVmYjczZjlkZmE0MGZiMzRjYmVmYzQ2NjQxYmRiMjguLjE1MjI1NzlmNmUxZmQwY2Rk
ZGViMGU3NTYyY2FhYWZmM2Y2MDU4NzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTE3NSwxMCAr
NTE3NSw4IEBAIHdlYmtpdC5vcmcvYi8yMzI3MDUgZmFzdC9maWx0ZXItaW1hZ2UvYmFja2dyb3Vu
ZC1maWx0ZXItaW1hZ2UuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIzMjcwNSBmYXN0L2Zp
bHRlci1pbWFnZS9maWx0ZXItaW1hZ2UtYmx1ci5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2Iv
MjMyNzA1IGZhc3QvZmlsdGVyLWltYWdlL2ZpbHRlci1pbWFnZS1zdmcuaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzIzMjcwNSBmYXN0L2ZpbHRlci1pbWFnZS9maWx0ZXItaW1hZ2UuaHRtbCBb
IFNraXAgXQotd2Via2l0Lm9yZy9iLzIzMjcwNSBpbXBvcnRlZC9ibGluay9zdmcvZmlsdGVycy9m
aWx0ZXItaHVnZS1jbGFtcGluZy5zdmcgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMzI3MDUgaW1w
b3J0ZWQvbW96aWxsYS9zdmcvZHluYW1pYy1maWx0ZXItY29udGVudHMtMDFhLnN2ZyBbIFNraXAg
XQogd2Via2l0Lm9yZy9iLzIzMjcwNSBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9maWx0ZXJzL2ZlQ29t
cG9zaXRlLTIuc3ZnIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjMyNzA1IGltcG9ydGVkL21vemls
bGEvc3ZnL2ZpbHRlcnMvZmVTcGVjdWxhckxpZ2h0aW5nLTEuc3ZnIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMjMyNzA1IHN2Zy9jdXN0b20vcmVzb3VyY2VzLWNzcy1zY2FsZWQuaHRtbCBbIFNraXAg
XQogd2Via2l0Lm9yZy9iLzIzMjcwNSBzdmcvZmlsdGVycy9mZUxpZ2h0aW5nLWNsaXBwZWQuc3Zn
IFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMjMyNzA1IHN2Zy9maWx0ZXJzL2JpZy1zaXplZC1vZmYt
dmlld3BvcnQtZmlsdGVyLnN2ZyBbIFNraXAgXQo=
</data>
<flag name="review"
          id="471234"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="471242"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445951</attachid>
            <date>2021-12-03 20:42:00 -0800</date>
            <delta_ts>2021-12-03 22:12:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233843-20211203204159.patch</filename>
            <type>text/plain</type>
            <size>19035</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRmMDU5YTA5MjFhOWRj
NmYwM2VhNDA3ZGQ2M2JkOTAwOWQ0ZDI5Yi4uMjI3Mjk5NTM4MGYwNjk3NGRlMDdjYjhhYzU4MzRj
NWEzNzNlZTE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIxLTEyLTAzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
KFJFR1JFU1NJT04gcjI4NTU5Nyk6IEZpeCBTVkdGaWx0ZXIgY2xhbXBpbmcgY2FsY3VsYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzg0Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBJbiB0aGlzIHBh
dGNoOgorCisgICAgICAgIDEuIGxhc3RFZmZlY3QoKSBpcyBtYWRlIHZpcnR1YWwgZnVuY3Rpb24g
b2YgRmlsdGVyIGFuZCBpdCdzIGFscmVhZHkgCisgICAgICAgICAgIGltcGxlbWVudGVkIGFzIG5v
bi12aXJ0dWFsIGZ1bmN0aW9uIGluIGJvdGggQ1NTRmlsdGVyIGFuZCBTVkdGaWx0ZXIuCisKKyAg
ICAgICAgMi4gVGhlIGNsYW1waW5nIGNhbGN1bGF0aW9ucyBmb3IgU1ZHRmlsdGVyIGFuZCBDU1NG
aWx0ZXIgYXJlIG1lcmdlZCBpbgorICAgICAgICAgICBvbmUgZnVuY3Rpb24gY2FsbGVkIEZpbHRl
cjo6Y2xhbXBGaWx0ZXJSZWdpb25JZk5lZWRlZCgpLiBUaGlzIG1lcmdlCisgICAgICAgICAgIG1h
a2VzIHRoZSBuZXcgZnVuY3Rpb24gaXMgdGhlIG9ubHkgY2FsbGVyIHRvIEZpbHRlckVmZmVjdDo6
bWF4RWZmZWN0UmVjdCgpLgorCisgICAgICAgIDMuIFJlbW92ZSBGaWx0ZXJFZmZlY3Q6Om1heEVm
ZmVjdFJlY3QoKSAuIEl0IGNhbiBiZSBjYWxjdWxhdGVkIGJ5IGNsaXBwaW5nCisgICAgICAgICAg
IHRoZSBGaWx0ZXJFZmZlY3Q6OmZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpIHRvIGZpbHRlclJl
Z2lvbigpIGFuZCB0aGVuCisgICAgICAgICAgIHNjYWxpbmcgdGhlIHJlc3VsdCBieSBmaWx0ZXJT
Y2FsZSgpLgorCisgICAgICAgIDQuIEluIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJl
c291cmNlKCkgd2UgbmVlZCB0byBwYXNzIHRoZSBub24tCisgICAgICAgICAgIHNjYWxlZCBkcmF3
aW5nUmVnaW9uIHRvIEltYWdlQnVmZmVyOjpzaXplTmVlZHNDbGFtcGluZygpIGJlY2F1c2UgdGhp
cworICAgICAgICAgICBmdW5jdGlvbiBzdGFydHMgYnkgc2NhbGluZyB0aGUgYXJndW1lbnQgJ3Np
emUnIGJ5IHRoZSBhcmd1bWVudCAnc2NhbGUnLgorICAgICAgICAgICBTbyB3ZSB3ZXJlIGRvdWJs
aW5nIHRoZSBzY2FsaW5nIGJ5IHBhc3NpbmcgJ2Fic29sdXRlRHJhd2luZ1JlZ2lvbicKKworICAg
ICAgICA1LiBTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIG5lZWRzIHRv
IHVzZSBJbWFnZUJ1ZmZlcjo6CisgICAgICAgICAgIHNpemVOZWVkc0NsYW1waW5nKCkgaW5zdGVh
ZCBvZiB1c2luZyBJbWFnZUJ1ZmZlcjo6Y2xhbXBlZFNpemUoKS4gVGhlCisgICAgICAgICAgIGZv
cm1lciBmdW5jdGlvbiBjbGFtcHMgdGhlIHNpemUgdG8gdGhlIE1heENsYW1wZWRBcmVhLiBCdXQg
dGhlIGxhdGVyCisgICAgICAgICAgIGZ1bmN0aW9uIHNocmlua3MgdGhlIHNpemUgdG8geyBNYXhD
bGFtcGVkTGVuZ3RoLCBNYXhDbGFtcGVkTGVuZ3RoIH0uCisgICAgICAgICAgIFdoZW4gY2FsbGlu
ZyBjcmVhdGVJbWFnZUJ1ZmZlcigpIGZyb20gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OgorICAg
ICAgICAgICBhcHBseVJlc291cmNlKCkgd2UgZG8gbm90IGV4cGVjdCBhbnkgZnVydGhlciBjbGFt
cGluZy4gQnV0IGlmIHdlIHBhc3MKKyAgICAgICAgICAgYSBzaXplIHdpdGggYSBzaWRlICBncmVh
dGVyIHRoYW4gTWF4Q2xhbXBlZExlbmd0aCB0byBjbGFtcGVkU2l6ZSgpLAorICAgICAgICAgICBp
dCAgd2lsbCBiZSBjbGFtcGVkIGV2ZW4gaWYgdGhlIGFyZWEgaXMgbGVzcyB0aGFuIE1heENsYW1w
ZWRBcmVhLiBBbmQKKyAgICAgICAgICAgZm9yIGZpbHRlcnMgd2UgY2xhbXAgdG8gdGhlIGFyZWEu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGaWx0ZXI6OmNsYW1wRmlsdGVyUmVnaW9uSWZOZWVkZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmlsdGVyRWZmZWN0OjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjphcHBseSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVm
ZmVjdDo6bWF4RWZmZWN0UmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJFZmZlY3Q6OnNldE1heEVmZmVjdFJlY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRl
cmluZy9DU1NGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVyOjpsYXN0RWZm
ZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlcjo6bGFzdEVmZmVjdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXI6OmRldGVybWluZUZpbHRlclByaW1p
dGl2ZVN1YnJlZ2lvbik6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL0NTU0ZpbHRlci5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlcnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJGaWx0ZXJzOjpiZWdpbkZpbHRlckVmZmVjdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdXJjZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKiBz
dmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaDoKKwogMjAyMS0xMi0wMyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBCcm9hZGNhc3RDaGFubmVsLCBD
T09QLCBDT0VQIGFuZCBXZWIgTG9ja3MgdG8gZmVhdHVyZXMuanNvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuY3BwCmluZGV4IDgzY2Zi
MTZmZmE1YzFlZDNmMDQ1ZTdjYzc0NjkyMzlhNWQzMDIzODkuLjUyZGMzNWQ2ZDYxZDM4ODM1ZDQw
Y2U2MzNkZTA2ZjY2NDUzZWQxZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5jcHAKQEAgLTI2LDcgKzI2LDkgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJGaWx0ZXIuaCIKIAorI2luY2x1ZGUgIkZpbHRlckVmZmVj
dC5oIgogI2luY2x1ZGUgIkZpbHRlckltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Niw2ICs3OCwyNiBAQCBGbG9hdFJlY3QgRmls
dGVyOjpjbGlwVG9NYXhFZmZlY3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYgaW1hZ2VSZWN0LCBjb25z
dCBGbG9hdFJlYwogICAgIHJldHVybiBtX2NsaXBPcGVyYXRpb24gPT0gQ2xpcE9wZXJhdGlvbjo6
SW50ZXJzZWN0ID8gaW50ZXJzZWN0aW9uKGltYWdlUmVjdCwgbWF4RWZmZWN0UmVjdCkgOiB1bmlv
blJlY3QoaW1hZ2VSZWN0LCBtYXhFZmZlY3RSZWN0KTsKIH0KIAorYm9vbCBGaWx0ZXI6OmNsYW1w
RmlsdGVyUmVnaW9uSWZOZWVkZWQoKQoreworICAgIGF1dG8gbGFzdEVmZmVjdCA9IHRoaXMtPmxh
c3RFZmZlY3QoKTsKKyAgICBsYXN0RWZmZWN0LT5kZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJy
ZWdpb24oKnRoaXMpOworICAgIAorICAgIGF1dG8gbWF4RWZmZWN0UmVjdCA9IHRoaXMtPm1heEVm
ZmVjdFJlY3QobGFzdEVmZmVjdC0+ZmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCkpOworICAgIGF1
dG8gc2NhbGVkTWF4RWZmZWN0UmVjdCA9IHNjYWxlZEJ5RmlsdGVyU2NhbGUobWF4RWZmZWN0UmVj
dCk7CisKKyAgICBGbG9hdFNpemUgY2xhbXBpbmdTY2FsZSgxLCAxKTsKKyAgICBpZiAoIUltYWdl
QnVmZmVyOjpzaXplTmVlZHNDbGFtcGluZyhzY2FsZWRNYXhFZmZlY3RSZWN0LnNpemUoKSwgY2xh
bXBpbmdTY2FsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fZmlsdGVyU2NhbGUg
PSBtX2ZpbHRlclNjYWxlICogY2xhbXBpbmdTY2FsZTsKKworICAgIC8vIEF0IGxlYXN0IG9uZSBG
aWx0ZXJFZmZlY3QgaGFzIGEgdG9vIGJpZyBpbWFnZSBzaXplLAorICAgIC8vIHJlY2FsY3VsYXRl
IHRoZSBlZmZlY3Qgc2l6ZXMgd2l0aCBuZXcgc2NhbGUgZmFjdG9ycy4KKyAgICBsYXN0RWZmZWN0
LT5kZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKnRoaXMpOworICAgIHJldHVybiB0
cnVlOworfQorCiBSZWZQdHI8RmlsdGVySW1hZ2U+IEZpbHRlcjo6YXBwbHkoSW1hZ2VCdWZmZXIq
IHNvdXJjZUltYWdlKQogewogICAgIHNldFNvdXJjZUltYWdlKHNvdXJjZUltYWdlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCmluZGV4
IGMzOTE5OTYzNzg0MzA3YWEyMWM0YzQwMDE1NzViODdkYTNiYTFlMjEuLmNhMWQ5NTM0YzdmOGIx
ODA2ZDgxYTVkMjAyN2Y4YzQ5MmFlMjI4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaApAQCAtNjcsNiArNjcsMTAgQEAgcHVibGlj
OgogICAgIEZsb2F0UmVjdCBtYXhFZmZlY3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZl
U3VicmVnaW9uKSBjb25zdDsKICAgICBGbG9hdFJlY3QgY2xpcFRvTWF4RWZmZWN0UmVjdChjb25z
dCBGbG9hdFJlY3QmIGltYWdlUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBwcmltaXRpdmVTdWJyZWdp
b24pIGNvbnN0OwogCisgICAgdmlydHVhbCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBsYXN0RWZmZWN0
KCkgY29uc3QgPSAwOworCisgICAgYm9vbCBjbGFtcEZpbHRlclJlZ2lvbklmTmVlZGVkKCk7Cisg
ICAgCiAgICAgdmlydHVhbCBSZWZQdHI8RmlsdGVySW1hZ2U+IGFwcGx5KCkgPSAwOwogICAgIFdF
QkNPUkVfRVhQT1JUIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHkoSW1hZ2VCdWZmZXIqIHNvdXJj
ZUltYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmluZGV4IDZlMTA5MjQ5NmVmODQ1YjZiODcyY2Ix
MDZjMGRkMTYwODlmNTdhZWQuLjBhZTk0ZDUwNmUxNDFlZGYzNDM0YWRiNjI0Yzg2YzUzMjIyNjNk
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAgLTcwLDEzICs3MCw3IEBAIEZsb2F0UmVjdCBGaWx0
ZXJFZmZlY3Q6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbihjb25zdCBGaWx0ZXIm
IGZpbHRlcikKICAgICAgICAgICAgIHByaW1pdGl2ZVN1YnJlZ2lvbi5zZXRIZWlnaHQoKmhlaWdo
dCk7CiAgICAgfQogCi0gICAgLy8gQ2xpcCBldmVyeSBmaWx0ZXIgZWZmZWN0IHRvIHRoZSBmaWx0
ZXIgcmVnaW9uLgotICAgIGF1dG8gYWJzb2x1dGVNYXhFZmZlY3RSZWN0ID0gZmlsdGVyLm1heEVm
ZmVjdFJlY3QocHJpbWl0aXZlU3VicmVnaW9uKTsKLSAgICBhYnNvbHV0ZU1heEVmZmVjdFJlY3Qu
c2NhbGUoZmlsdGVyLmZpbHRlclNjYWxlKCkpOwotCiAgICAgc2V0RmlsdGVyUHJpbWl0aXZlU3Vi
cmVnaW9uKHByaW1pdGl2ZVN1YnJlZ2lvbik7Ci0gICAgc2V0TWF4RWZmZWN0UmVjdChhYnNvbHV0
ZU1heEVmZmVjdFJlY3QpOwotCiAgICAgcmV0dXJuIHByaW1pdGl2ZVN1YnJlZ2lvbjsKIH0KIApA
QCAtMTI3LDcgKzEyMSw3IEBAIGJvb2wgRmlsdGVyRWZmZWN0OjphcHBseShjb25zdCBGaWx0ZXIm
IGZpbHRlcikKICAgICAgICAgPDwgIkZpbHRlckVmZmVjdCAiIDw8IGZpbHRlck5hbWUoKSA8PCAi
ICIgPDwgdGhpcyA8PCAiIGFwcGx5KCk6IgogICAgICAgICA8PCAiXG4gIGZpbHRlclByaW1pdGl2
ZVN1YnJlZ2lvbiAiIDw8IG1fZmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uCiAgICAgICAgIDw8ICJc
biAgYWJzb2x1dGVQYWludFJlY3QgIiA8PCBhYnNvbHV0ZUltYWdlUmVjdAotICAgICAgICA8PCAi
XG4gIG1heEVmZmVjdFJlY3QgIiA8PCBtX21heEVmZmVjdFJlY3QKKyAgICAgICAgPDwgIlxuICBt
YXhFZmZlY3RSZWN0ICIgPDwgZmlsdGVyLnNjYWxlZEJ5RmlsdGVyU2NhbGUoZmlsdGVyLm1heEVm
ZmVjdFJlY3QobV9maWx0ZXJQcmltaXRpdmVTdWJyZWdpb24pKQogICAgICAgICA8PCAiXG4gIGZp
bHRlciBzY2FsZSAiIDw8IGZpbHRlci5maWx0ZXJTY2FsZSgpKTsKIAogICAgIHJldHVybiBhcHBs
aWVyLT5hcHBseShmaWx0ZXIsIGlucHV0RmlsdGVySW1hZ2VzLCAqbV9maWx0ZXJJbWFnZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ckVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJFZmZlY3QuaAppbmRleCA2MmU2YTM3YzhmZWRmZDdkMjRkYjQ1ZjFjOGZmNzcyMjdhNWI4MmQz
Li44MjdlYjVkYjgxZTkxYzkyMzY5NjllYTVmZDkyMDJhOGNiOTViMzVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0
LmgKQEAgLTU2LDkgKzU2LDYgQEAgcHVibGljOgogICAgIC8vIFJlY3Vyc2VzIG9uIGlucHV0cy4K
ICAgICBGbG9hdFJlY3QgZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKGNvbnN0IEZp
bHRlciYpOwogCi0gICAgRmxvYXRSZWN0IG1heEVmZmVjdFJlY3QoKSBjb25zdCB7IHJldHVybiBt
X21heEVmZmVjdFJlY3Q7IH0KLSAgICB2b2lkIHNldE1heEVmZmVjdFJlY3QoY29uc3QgRmxvYXRS
ZWN0JiBtYXhFZmZlY3RSZWN0KSB7IG1fbWF4RWZmZWN0UmVjdCA9IG1heEVmZmVjdFJlY3Q7IH0K
LQogICAgIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBDb3Jy
ZWN0IGFueSBpbnZhbGlkIHBpeGVscywgaWYgbmVjZXNzYXJ5LCBpbiB0aGUgcmVzdWx0IG9mIGEg
ZmlsdGVyIG9wZXJhdGlvbi4KQEAgLTk2LDEwICs5Myw2IEBAIHByaXZhdGU6CiAKICAgICBSZWZQ
dHI8RmlsdGVySW1hZ2U+IG1fZmlsdGVySW1hZ2U7CiAKLSAgICAvLyBUaGUgbWF4aW11bSBzaXpl
IG9mIGEgZmlsdGVyIHByaW1pdGl2ZS4gSW4gU1ZHIHRoaXMgaXMgdGhlIHByaW1pdGl2ZSBzdWJy
ZWdpb24gaW4gYWJzb2x1dGUgY29vcmRpbmF0ZSBzcGFjZS4KLSAgICAvLyBUaGUgYWJzb2x1dGUg
cGFpbnQgcmVjdCBzaG91bGQgbmV2ZXIgYmUgYmlnZ2VyIHRoYW4gbV9tYXhFZmZlY3RSZWN0Lgot
ICAgIEZsb2F0UmVjdCBtX21heEVmZmVjdFJlY3Q7Ci0gICAgCiAgICAgLy8gVGhlIHN1YnJlZ2lv
biBvZiBhIGZpbHRlciBwcmltaXRpdmUgYWNjb3JkaW5nIHRvIHRoZSBTVkcgRmlsdGVyIHNwZWNp
ZmljYXRpb24gaW4gbG9jYWwgY29vcmRpbmF0ZXMuCiAgICAgLy8gVGhpcyBpcyBTVkcgc3BlY2lm
aWMgYW5kIG5lZWRzIHRvIG1vdmUgdG8gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUu
CiAgICAgRmxvYXRSZWN0IG1fZmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAppbmRleCBhNzk2OTMyOGQ2NThmOTNhNDUyMzNiNjFjZWNm
MGYyMWZmOTM4ZGZmLi5jOTE5ZDk4MDU0M2I3ODlmNWI5ZTU5ZTlhMjYxNWNhNzkwZTdmYmRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcApAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIkZFQ29tcG9uZW50VHJhbnNmZXIuaCIKICNpbmNsdWRlICJGRURyb3BTaGFkb3cu
aCIKICNpbmNsdWRlICJGRUdhdXNzaWFuQmx1ci5oIgotI2luY2x1ZGUgIkZFTWVyZ2UuaCIKICNp
bmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCkBAIC00MywxMCArNDIsNiBAQAogI2luY2x1
ZGUgIlNWR0ZpbHRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJTb3VyY2VHcmFwaGljLmgiCiAKLSNp
ZiBVU0UoRElSRUNUMkQpCi0jaW5jbHVkZSA8ZDJkMS5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogUmVmUHRyPENTU0ZpbHRlcj4gQ1NTRmlsdGVyOjpjcmVhdGUoY29uc3QgRmls
dGVyT3BlcmF0aW9ucyYgb3BlcmF0aW9ucywgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBm
bG9hdCBzY2FsZUZhY3RvciwgQ2xpcE9wZXJhdGlvbiBjbGlwT3BlcmF0aW9uKQpAQCAtMzM2LDcg
KzMzMSw3IEBAIGJvb2wgQ1NTRmlsdGVyOjp1cGRhdGVCYWNraW5nU3RvcmVSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgZmlsdGVyUmVjdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPEZpbHRl
ckVmZmVjdD4gQ1NTRmlsdGVyOjpsYXN0RWZmZWN0KCkKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IENT
U0ZpbHRlcjo6bGFzdEVmZmVjdCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnVuY3Rpb25zLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0zNjMsMTkgKzM1OCw2IEBAIGJvb2wg
Q1NTRmlsdGVyOjpzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpIGNvbnN0CiB9CiAjZW5kaWYK
IAotdm9pZCBDU1NGaWx0ZXI6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpCi17
Ci0gICAgYXV0byBlZmZlY3QgPSBsYXN0RWZmZWN0KCk7Ci0gICAgZWZmZWN0LT5kZXRlcm1pbmVG
aWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKnRoaXMpOwotICAgIEZsb2F0UmVjdCBzdWJSZWdpb24g
PSBlZmZlY3QtPm1heEVmZmVjdFJlY3QoKTsKLSAgICAvLyBBdCBsZWFzdCBvbmUgRmlsdGVyRWZm
ZWN0IGhhcyBhIHRvbyBiaWcgaW1hZ2Ugc2l6ZSwgcmVjYWxjdWxhdGUgdGhlIGVmZmVjdCBzaXpl
cyB3aXRoIG5ldyBzY2FsZSBmYWN0b3JzLgotICAgIEZsb2F0U2l6ZSBmaWx0ZXJTY2FsZSB7IDEs
IDEgfTsKLSAgICBpZiAoSW1hZ2VCdWZmZXI6OnNpemVOZWVkc0NsYW1waW5nKHN1YlJlZ2lvbi5z
aXplKCksIGZpbHRlclNjYWxlKSkgewotICAgICAgICBzZXRGaWx0ZXJTY2FsZShmaWx0ZXJTY2Fs
ZSk7Ci0gICAgICAgIGVmZmVjdC0+ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCp0
aGlzKTsKLSAgICB9Ci19Ci0KIHZvaWQgQ1NTRmlsdGVyOjpjbGVhckludGVybWVkaWF0ZVJlc3Vs
dHMoKQogewogICAgIGZvciAoYXV0byYgZnVuY3Rpb24gOiBtX2Z1bmN0aW9ucykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9DU1NGaWx0ZXIuaAppbmRleCAyZjUxNmU1MDU0OWNmMDcwYjczMzkwMmY4MmY0
Njg1YTM4MWM1YTMyLi43M2E0ZTg3YThmNTVkYTgyMmI4MmU5ZGU5MzI2MmQ1ZDg3OGUyNzRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCkBAIC00NiwxNiArNDYsMTUgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXRTb3VyY2VJbWFnZVJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CiAg
ICAgYm9vbCBidWlsZEZpbHRlckZ1bmN0aW9ucyhSZW5kZXJFbGVtZW50JiwgY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYpOwotICAgIHZvaWQgZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9u
KCk7CiAKICAgICBib29sIGhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscygpIGNvbnN0IHsgcmV0dXJu
IG1faGFzRmlsdGVyVGhhdE1vdmVzUGl4ZWxzOyB9CiAgICAgYm9vbCBoYXNGaWx0ZXJUaGF0U2hv
dWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzRmls
dGVyVGhhdFNob3VsZEJlUmVzdHJpY3RlZEJ5U2VjdXJpdHlPcmlnaW47IH0KIAotICAgIFJlZlB0
cjxGaWx0ZXJFZmZlY3Q+IGxhc3RFZmZlY3QoKTsKLSAgICBJbnRPdXRzZXRzIG91dHNldHMoKSBj
b25zdCBvdmVycmlkZTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBsYXN0RWZmZWN0KCkgY29u
c3QgZmluYWw7CisgICAgSW50T3V0c2V0cyBvdXRzZXRzKCkgY29uc3QgZmluYWw7CiAKICAgICB2
b2lkIGNsZWFySW50ZXJtZWRpYXRlUmVzdWx0cygpOwotICAgIFJlZlB0cjxGaWx0ZXJJbWFnZT4g
YXBwbHkoKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8RmlsdGVySW1hZ2U+IGFwcGx5KCkgZmluYWw7
CiAKICAgICBib29sIHVwZGF0ZUJhY2tpbmdTdG9yZVJlY3QoY29uc3QgRmxvYXRSZWN0JiBmaWx0
ZXJSZWN0KTsKIApAQCAtNjUsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIENTU0ZpbHRlcihSZW5k
ZXJpbmdNb2RlLCBmbG9hdCBzY2FsZUZhY3RvciwgQ2xpcE9wZXJhdGlvbiwgYm9vbCBoYXNGaWx0
ZXJUaGF0TW92ZXNQaXhlbHMsIGJvb2wgaGFzRmlsdGVyVGhhdFNob3VsZEJlUmVzdHJpY3RlZEJ5
U2VjdXJpdHlPcmlnaW4pOwogCiAjaWYgVVNFKENPUkVfSU1BR0UpCi0gICAgYm9vbCBzdXBwb3J0
c0NvcmVJbWFnZVJlbmRlcmluZygpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9ydHND
b3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAgICAgYm9vbCBtX2hh
c0ZpbHRlclRoYXRNb3Zlc1BpeGVscyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckZpbHRlcnMuY3BwCmluZGV4IGFjNzdiOGU1M2ZlM2IzZGE5OTJh
NzIyYmQ4MmU1NDE1Y2E3NGIyM2EuLmFlNzEyMjQ0ZjljODQyZDE4NzZiMjA5OWE2YzNjOTA3Nzcy
YWMwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZp
bHRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRl
cnMuY3BwCkBAIC0xODAsNyArMTgwLDcgQEAgR3JhcGhpY3NDb250ZXh0KiBSZW5kZXJMYXllckZp
bHRlcnM6OmJlZ2luRmlsdGVyRWZmZWN0KEdyYXBoaWNzQ29udGV4dCYgZGVzdGluYXQKICAgICBt
X3BhaW50T2Zmc2V0ID0gZmlsdGVyU291cmNlUmVjdC5sb2NhdGlvbigpOwogICAgIHJlc2V0RGly
dHlTb3VyY2VSZWN0KCk7CiAKLSAgICBmaWx0ZXIuZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3Vi
cmVnaW9uKCk7CisgICAgZmlsdGVyLmNsYW1wRmlsdGVyUmVnaW9uSWZOZWVkZWQoKTsKIAogICAg
IGlmIChoYXNVcGRhdGVkQmFja2luZ1N0b3JlKQogICAgICAgICBhbGxvY2F0ZUJhY2tpbmdTdG9y
ZShkZXN0aW5hdGlvbkNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAppbmRleCBmZGFkMDM5YTBjMTBh
MWY4NTBiNjNjMDQ4NGZlMjE2Y2U1MTlkNWVjLi5iMDMwYzBmNjY1NjE1MWMxMTFhMjFlOTlkMzAw
MTIyMTM2NmY0MDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcApAQCAtMTIyLDkgKzEyMiw3IEBAIGJvb2wg
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYgcmVu
ZGVyZXIsIGNvbnN0IFJlbmRlCiAgICAgZmlsdGVyRGF0YS0+ZHJhd2luZ1JlZ2lvbi5pbnRlcnNl
Y3QoZmlsdGVyRGF0YS0+Ym91bmRhcmllcyk7CiAKICAgICAvLyBEZXRlcm1pbmUgc2NhbGUgZmFj
dG9yIGZvciBmaWx0ZXIuIFRoZSBzaXplIG9mIGludGVybWVkaWF0ZSBJbWFnZUJ1ZmZlcnMgc2hv
dWxkbid0IGJlIGJpZ2dlciB0aGFuIGtNYXhGaWx0ZXJTaXplLgotICAgIEZsb2F0UmVjdCBhYnNv
bHV0ZURyYXdpbmdSZWdpb24gPSBmaWx0ZXJEYXRhLT5kcmF3aW5nUmVnaW9uOwotICAgIGFic29s
dXRlRHJhd2luZ1JlZ2lvbi5zY2FsZShmaWx0ZXJTY2FsZSk7Ci0gICAgSW1hZ2VCdWZmZXI6OnNp
emVOZWVkc0NsYW1waW5nKGFic29sdXRlRHJhd2luZ1JlZ2lvbi5zaXplKCksIGZpbHRlclNjYWxl
KTsKKyAgICBJbWFnZUJ1ZmZlcjo6c2l6ZU5lZWRzQ2xhbXBpbmcoZmlsdGVyRGF0YS0+ZHJhd2lu
Z1JlZ2lvbi5zaXplKCksIGZpbHRlclNjYWxlKTsKIAogICAgIC8vIFNldCB0aGUgcmVuZGVyaW5n
IG1vZGUgZnJvbSB0aGUgcGFnZSdzIHNldHRpbmdzLgogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9
IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gUmVuZGVy
aW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOwpAQCAt
MTM3LDIxICsxMzUsOSBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291
cmNlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBSZW5kZQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCi0gICAgYXV0byBsYXN0RWZmZWN0ID0gZmlsdGVyRGF0YS0+YnVpbGRl
ci0+bGFzdEVmZmVjdCgpOwotICAgIEFTU0VSVChsYXN0RWZmZWN0KTsKLQotICAgIExPR19XSVRI
X1NUUkVBTShGaWx0ZXJzLCBzdHJlYW0gPDwgIlJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBs
eVJlc291cmNlXG4iIDw8ICpmaWx0ZXJEYXRhLT5idWlsZGVyLT5sYXN0RWZmZWN0KCkpOwotCi0g
ICAgbGFzdEVmZmVjdC0+ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCpmaWx0ZXJE
YXRhLT5maWx0ZXIpOwotICAgIEZsb2F0UmVjdCBzdWJSZWdpb24gPSBsYXN0RWZmZWN0LT5tYXhF
ZmZlY3RSZWN0KCk7Ci0KLSAgICAvLyBBdCBsZWFzdCBvbmUgRmlsdGVyRWZmZWN0IGhhcyBhIHRv
byBiaWcgaW1hZ2Ugc2l6ZSwKLSAgICAvLyByZWNhbGN1bGF0ZSB0aGUgZWZmZWN0IHNpemVzIHdp
dGggbmV3IHNjYWxlIGZhY3RvcnMuCi0gICAgaWYgKEltYWdlQnVmZmVyOjpzaXplTmVlZHNDbGFt
cGluZyhzdWJSZWdpb24uc2l6ZSgpLCBmaWx0ZXJTY2FsZSkpIHsKLSAgICAgICAgZmlsdGVyRGF0
YS0+ZmlsdGVyLT5zZXRGaWx0ZXJTY2FsZShmaWx0ZXJTY2FsZSk7Ci0gICAgICAgIGxhc3RFZmZl
Y3QtPmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigqZmlsdGVyRGF0YS0+ZmlsdGVy
KTsKLSAgICB9Ci0KKyAgICBpZiAoZmlsdGVyRGF0YS0+ZmlsdGVyLT5jbGFtcEZpbHRlclJlZ2lv
bklmTmVlZGVkKCkpCisgICAgICAgIGZpbHRlclNjYWxlID0gZmlsdGVyRGF0YS0+ZmlsdGVyLT5m
aWx0ZXJTY2FsZSgpOworICAgIAogICAgIC8vIElmIHRoZSBkcmF3aW5nUmVnaW9uIGlzIGVtcHR5
LCB3ZSBoYXZlIHNvbWV0aGluZyBsaWtlIDxnIGZpbHRlcj0iLi4iLz4uCiAgICAgLy8gRXZlbiBp
ZiB0aGUgdGFyZ2V0IG9iamVjdEJvdW5kaW5nQm94KCkgaXMgZW1wdHksIHdlIHN0aWxsIGhhdmUg
dG8gZHJhdyB0aGUgbGFzdCBlZmZlY3QgcmVzdWx0IGltYWdlIGluIHBvc3RBcHBseVJlc291cmNl
LgogICAgIGlmIChmaWx0ZXJEYXRhLT5kcmF3aW5nUmVnaW9uLmlzRW1wdHkoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggMjBiOGI1ZTdiMDdiMzFhMTJjNWFhY2JhMzg1ODkyZmJmM2EyMzU3My4uM2QwNjA3NGY0
NmVjODA0YjJkOTgyMGE5ZmZkODQ5NTBiOGEwMDVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yMzUsOCArMjM1
LDEwIEBAIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1h
Z2VCdWZmZXIoY29uc3QgRmxvYXRSZWN0JiB0YXJnCiAgICAgaWYgKHBhaW50UmVjdC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgRmxvYXRTaXplIHNjYWxlOwotICAg
IEZsb2F0U2l6ZSBjbGFtcGVkU2l6ZSA9IEltYWdlQnVmZmVyOjpjbGFtcGVkU2l6ZShwYWludFJl
Y3Quc2l6ZSgpLCBzY2FsZSk7CisgICAgRmxvYXRTaXplIHNjYWxlKDEsIDEpOworICAgIEZsb2F0
U2l6ZSBjbGFtcGVkU2l6ZSA9IHBhaW50UmVjdC5zaXplKCk7CisgICAgaWYgKEltYWdlQnVmZmVy
OjpzaXplTmVlZHNDbGFtcGluZyhjbGFtcGVkU2l6ZSwgc2NhbGUpKQorICAgICAgICBjbGFtcGVk
U2l6ZSA9IGNsYW1wZWRTaXplICogc2NhbGU7CiAKICNpZiBVU0UoRElSRUNUMkQpCiAgICAgYXV0
byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoY2xhbXBlZFNpemUsIHJlbmRlcmlu
Z01vZGUsIGNvbnRleHQsIDEsIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0OjpCR1JBOCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCmluZGV4IDY1
YjEwYzljNjg5YTA3YzFiYWNmOWQ4NzkxOTZjNjc0NDg3OTE0MTEuLmY0ZDI5NGE3MTBmY2EzMGE5
NWY3MDFkMmM4ZTI0MmZmMjA5NjJhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCkBAIC00Miw5ICs0Miw5IEBAIHB1YmxpYzoKIAogICAg
IEZsb2F0UmVjdCB0YXJnZXRCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0Qm91
bmRpbmdCb3g7IH0KIAotICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGxhc3RFZmZlY3QoKSBjb25z
dCB7IHJldHVybiAhbV9leHByZXNzaW9uLmlzRW1wdHkoKSA/IG1fZXhwcmVzc2lvbi5sYXN0KCkg
OiBudWxscHRyOyB9CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gbGFzdEVmZmVjdCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICFtX2V4cHJlc3Npb24uaXNFbXB0eSgpID8gbV9leHByZXNzaW9uLmxh
c3QoKSA6IG51bGxwdHI7IH0KIAotICAgIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHkoKSBvdmVy
cmlkZTsKKyAgICBSZWZQdHI8RmlsdGVySW1hZ2U+IGFwcGx5KCkgZmluYWw7CiAKIHByaXZhdGU6
CiAgICAgU1ZHRmlsdGVyKFJlbmRlcmluZ01vZGUsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyU2Nh
bGUsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGZp
bHRlclJlZ2lvbiwgQ2xpcE9wZXJhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRCb3VuZGlu
Z0JveCwgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSBwcmltaXRpdmVVbml0cyk7CkBAIC01NCwx
NCArNTQsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEVmZmVjdEdlb21ldHJ5TWFwKEZpbHRl
ckVmZmVjdEdlb21ldHJ5TWFwJiYgZWZmZWN0R2VvbWV0cnlNYXApIHsgbV9lZmZlY3RHZW9tZXRy
eU1hcCA9IFdURk1vdmUoZWZmZWN0R2VvbWV0cnlNYXApOyB9CiAKICNpZiBVU0UoQ09SRV9JTUFH
RSkKLSAgICBib29sIHN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgYm9vbCBzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZygpIGNvbnN0IGZpbmFsOwogI2Vu
ZGlmCi0gICAgc3RkOjpvcHRpb25hbDxGaWx0ZXJFZmZlY3RHZW9tZXRyeT4gZWZmZWN0R2VvbWV0
cnkoRmlsdGVyRWZmZWN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxGaWx0
ZXJFZmZlY3RHZW9tZXRyeT4gZWZmZWN0R2VvbWV0cnkoRmlsdGVyRWZmZWN0JikgY29uc3QgZmlu
YWw7CiAgICAgRmxvYXRTaXplIHJlc29sdmVkU2l6ZShjb25zdCBGbG9hdFNpemUmKSBjb25zdCBm
aW5hbDsKIAotICAgIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJikgb3ZlcnJpZGU7Ci0gICAgSW50
T3V0c2V0cyBvdXRzZXRzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjbGVhclJlc3VsdCgp
IG92ZXJyaWRlOworICAgIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJikgZmluYWw7CisgICAgSW50
T3V0c2V0cyBvdXRzZXRzKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBjbGVhclJlc3VsdCgpIGZp
bmFsOwogCiAgICAgRmxvYXRSZWN0IG1fdGFyZ2V0Qm91bmRpbmdCb3g7CiAgICAgU1ZHVW5pdFR5
cGVzOjpTVkdVbml0VHlwZSBtX3ByaW1pdGl2ZVVuaXRzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgzOTVkNjVhYWVjZmJl
OWY2MDA3N2I0ZWY1ODM5ZTRhMzZjOWFlYWUuLjAwYzE4NWYwYTY2MmJjNTNlNDdlMWZkNDZiODhj
M2JjZDU2ZTAxOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMi0wMyAgU2FpZCBBYm91
LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIChSRUdS
RVNTSU9OIHIyODU1OTcpOiBGaXggU1ZHRmlsdGVyIGNsYW1waW5nIGNhbGN1bGF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4NDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgVW5za2lwIHR3byBsYXlv
dXQgdGVzdHMgd2hpY2ggd2VyZSBza2lwcGVkIGluIHIyODU1OTcuCisKKyAgICAgICAgKiBUZXN0
RXhwZWN0YXRpb25zOgorCiAyMDIxLTEyLTAzICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHTElCXSBHYXJkZW5pbmcgc29tZSBjb25zaXN0ZW50IHRpbWVvdXRz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA0ZDVhZWU0MTBjYjUyZGY4YzgwNjRiNTc0MjNkOGI1ZGM5
ZGQ4OWExLi42ODFlNDVlNTQ2YTg3NGJmOWU0OGQ3YmY3Yzg0NmNkNjJmMWZiMmFhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTUxNzQsMTAgKzUxNzQsOCBAQCB3ZWJraXQub3JnL2IvMjMyNzA1IGZh
c3QvZmlsdGVyLWltYWdlL2JhY2tncm91bmQtZmlsdGVyLWltYWdlLmh0bWwgWyBTa2lwIF0KIHdl
YmtpdC5vcmcvYi8yMzI3MDUgZmFzdC9maWx0ZXItaW1hZ2UvZmlsdGVyLWltYWdlLWJsdXIuaHRt
bCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIzMjcwNSBmYXN0L2ZpbHRlci1pbWFnZS9maWx0ZXIt
aW1hZ2Utc3ZnLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMzI3MDUgZmFzdC9maWx0ZXIt
aW1hZ2UvZmlsdGVyLWltYWdlLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8yMzI3MDUgaW1w
b3J0ZWQvYmxpbmsvc3ZnL2ZpbHRlcnMvZmlsdGVyLWh1Z2UtY2xhbXBpbmcuc3ZnIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvMjMyNzA1IGltcG9ydGVkL21vemlsbGEvc3ZnL2R5bmFtaWMtZmlsdGVy
LWNvbnRlbnRzLTAxYS5zdmcgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMzI3MDUgaW1wb3J0ZWQv
bW96aWxsYS9zdmcvZmlsdGVycy9mZUNvbXBvc2l0ZS0yLnN2ZyBbIFNraXAgXQogd2Via2l0Lm9y
Zy9iLzIzMjcwNSBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9maWx0ZXJzL2ZlU3BlY3VsYXJMaWdodGlu
Zy0xLnN2ZyBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIzMjcwNSBzdmcvY3VzdG9tL3Jlc291cmNl
cy1jc3Mtc2NhbGVkLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMzI3MDUgc3ZnL2ZpbHRl
cnMvZmVMaWdodGluZy1jbGlwcGVkLnN2ZyBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzIzMjcwNSBz
dmcvZmlsdGVycy9iaWctc2l6ZWQtb2ZmLXZpZXdwb3J0LWZpbHRlci5zdmcgWyBTa2lwIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>