<?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>214179</bug_id>
          
          <creation_ts>2020-07-10 02:26:27 -0700</creation_ts>
          <short_desc>[GTK][WPE] Scrolling with mouse wheel doesn&apos;t work on iframes with async scrolling enabled</short_desc>
          <delta_ts>2020-12-07 02:17:59 -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>WebKitGTK</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=218859</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=219594</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>clord</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1670395</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-07-10 02:26:27 -0700</bug_when>
    <thetext>The main frame is still scrolled instead. I think this used to work, so it&apos;s probably a &quot;recent&quot; regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670472</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-07-10 09:34:07 -0700</bug_when>
    <thetext>On Mac the scrolling thread now hit-tests CALayers to determine which thing to scroll. GTK needs an implementation of:
RefPtr&lt;ScrollingTreeNode&gt; ScrollingTreeMac::scrollingNodeForPoint(FloatPoint point)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700600</commentid>
    <comment_count>2</comment_count>
      <attachid>412085</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-22 04:36:55 -0700</bug_when>
    <thetext>Created attachment 412085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700602</commentid>
    <comment_count>3</comment_count>
      <attachid>412085</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-22 04:54:07 -0700</bug_when>
    <thetext>Comment on attachment 412085
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        async scrolling is enabled on WPE and GTK backends.

backends -&gt; ports

&gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:97
&gt; +        auto nodeID = scrollingNodeID();
&gt; +        compositionLayer.updateState([nodeID](Nicosia::CompositionLayer::LayerState&amp; state) {

[nodeID = scrollingNodeID()]

&gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeNicosia.cpp:80
&gt; +static void collectDescendantLayersAtPoint(Vector&lt;RefPtr&lt;CompositionLayer&gt;&gt;&amp; layersAtPoint, RefPtr&lt;CompositionLayer&gt; parent, FloatPoint point)

Could we make Vector&lt;RefPtr&lt;CompositionLayer&gt;&gt; the return value instead? and point should be a const reference

&gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:69
&gt; +        auto nodeID = scrollingNodeID();
&gt; +        compositionLayer.updateState([nodeID](Nicosia::CompositionLayer::LayerState&amp; state) {

[nodeID = scrollingNodeID()]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700604</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-22 05:02:37 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; Comment on attachment 412085 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412085&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        async scrolling is enabled on WPE and GTK backends.
&gt; 
&gt; backends -&gt; ports

Okidokes.

&gt; &gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:97
&gt; &gt; +        auto nodeID = scrollingNodeID();
&gt; &gt; +        compositionLayer.updateState([nodeID](Nicosia::CompositionLayer::LayerState&amp; state) {
&gt; 
&gt; [nodeID = scrollingNodeID()]

I tried this originally and got some syntax error, but I&apos;ll have another go.

&gt; &gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeNicosia.cpp:80
&gt; &gt; +static void collectDescendantLayersAtPoint(Vector&lt;RefPtr&lt;CompositionLayer&gt;&gt;&amp; layersAtPoint, RefPtr&lt;CompositionLayer&gt; parent, FloatPoint point)
&gt; 
&gt; Could we make Vector&lt;RefPtr&lt;CompositionLayer&gt;&gt; the return value instead? and
&gt; point should be a const reference

Not with this being a static function really - I did it this way to mirror how it&apos;s done in ScrollingTreeMac. Good point about the const reference though, will change that.

&gt; &gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:69
&gt; &gt; +        auto nodeID = scrollingNodeID();
&gt; &gt; +        compositionLayer.updateState([nodeID](Nicosia::CompositionLayer::LayerState&amp; state) {
&gt; 
&gt; [nodeID = scrollingNodeID()]

Same comment as above, but I&apos;ll try it again, maybe I just missed something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700976</commentid>
    <comment_count>5</comment_count>
      <attachid>412085</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-10-23 03:13:46 -0700</bug_when>
    <thetext>Comment on attachment 412085
Patch

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

&gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeNicosia.cpp:84
&gt; +    parent-&gt;accessCommitted([&amp;](const CompositionLayer::LayerState&amp; state) {

There&apos;s three stages in the CompositionLayer:
- pending, for storing local changes before they are flushed at the end of an update (layer flush or scrolling),
- staging, for storing the flushed changes,
- committed, which mirrors the staging state and applies it to the composition framework.

My perspective is that the committed state is just a (otherwise necessary) copy of the staging state. Think of it as a delayed, on-demand copy that&apos;s updated by the composition engine when possible (i.e. when a new frame can be rendered and there&apos;s pending changes to incorporate into the visually-presented scene). As such, I feel accessing the staging state here (and elsewhere) would guarantee retrieving more accurate and up-to-date information. But it would require a new accessor in the CompositionLayer.

&gt; Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:73
&gt; +            state.delta.scrollingNodeChanged = true;
&gt; +        });
&gt; +    }

How is this expected to be propagated from the local state over to the committed state? Right now it depends on whatever update comes next -- either a layer flush done on the main thread, or an update triggered through UpdateScope upon scrolling being handled on the scrolling thread.

Also applies to the change in ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren().

&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:204
&gt; +
&gt; +        WebCore::ScrollingNodeID scrollingNodeID;

This should have a sensible initialization value (0 probably).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703505</commentid>
    <comment_count>6</comment_count>
      <attachid>412910</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-11-02 06:11:06 -0800</bug_when>
    <thetext>Created attachment 412910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703511</commentid>
    <comment_count>7</comment_count>
      <attachid>412913</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-11-02 06:34:39 -0800</bug_when>
    <thetext>Created attachment 412913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703526</commentid>
    <comment_count>8</comment_count>
      <attachid>412918</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-11-02 07:43:27 -0800</bug_when>
    <thetext>Created attachment 412918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705152</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-11-06 00:46:22 -0800</bug_when>
    <thetext>Zan?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705672</commentid>
    <comment_count>10</comment_count>
      <attachid>413569</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-11-09 01:50:01 -0800</bug_when>
    <thetext>Created attachment 413569
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705676</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-09 02:21:18 -0800</bug_when>
    <thetext>Committed r269579: &lt;https://trac.webkit.org/changeset/269579&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413569.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412085</attachid>
            <date>2020-10-22 04:36:55 -0700</date>
            <delta_ts>2020-11-02 06:11:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214179-20201022123654.patch</filename>
            <type>text/plain</type>
            <size>13337</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdkMThmM2MyMGEyOWE2
N2FlZTFlY2I1NTU0ZjgxNjAyZTBlN2YyNS4uZGRkZmIyNzM3M2IwNDQxMTE2YTRlYmJlNDUyZjRk
OThjNTc4NjQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTEwLTIyICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFNjcm9sbGlu
ZyB3aXRoIG1vdXNlIHdoZWVsIGRvZXNuJ3Qgd29yayBvbiBpZnJhbWVzIHdpdGggYXN5bmMgc2Ny
b2xsaW5nIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQgaW4K
KyAgICAgICAgU2Nyb2xsaW5nVHJlZU5pY29zaWEuIFRoaXMgZml4ZXMgb3ZlcmZsb3cgYW5kIGlm
cmFtZSBzY3JvbGxpbmcgd2hlbgorICAgICAgICBhc3luYyBzY3JvbGxpbmcgaXMgZW5hYmxlZCBv
biBXUEUgYW5kIEdUSyBiYWNrZW5kcy4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVh
ZGVkU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmNvbW1pdFN0YXRlQmVm
b3JlQ2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bGxlY3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlTmljb3NpYTo6c2Nyb2xsaW5nTm9kZUZvclBvaW50KToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3Np
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlTmljb3NpYTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3Np
YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3Jt
TGF5ZXIuaDoKKyAgICAgICAgKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OmZsdXNoU3RhdGUp
OgorCiAyMDIwLTEwLTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFNhbml0aXplIHRoZSB1c2FnZSBvZiBvdmVycmlkZSBzaXplcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
aAppbmRleCBkYzNiMmE4M2M0MGQzMzYwZmIyOGI3MGIxYjc2ZGQwZTU3MDlhYmNmLi40ZjY4ZWJj
NTQzY2UzNDg1YzkzZTBmNmUwNjVmMThhMjIyZjg5MDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtNzcsNiAr
NzcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXBvcnRFeHBvc2VkVW5maWxsZWRBcmVhKE1v
bm90b25pY1RpbWUsIHVuc2lnbmVkIHVuZmlsbGVkQXJlYSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBy
ZXBvcnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b25pY1RpbWUsIE9w
dGlvblNldDxTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbj4pIG92ZXJyaWRlOwogCisgICAgUmVm
UHRyPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7CisK
IHByaXZhdGU6CiAgICAgYm9vbCBpc1RocmVhZGVkU2Nyb2xsaW5nVHJlZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHByb3BhZ2F0ZVN5bmNocm9ub3VzU2Nyb2xs
aW5nUmVhc29ucyhjb25zdCBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4mKSBvdmVycmlkZTsKQEAg
LTkxLDggKzkzLDYgQEAgcHJpdmF0ZToKIAogICAgIFNlY29uZHMgbWF4QWxsb3dhYmxlUmVuZGVy
aW5nVXBkYXRlRHVyYXRpb25Gb3JTeW5jaHJvbml6YXRpb24oKTsKIAotICAgIFJlZlB0cjxBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOwotCiAgICAgZW51
bSBjbGFzcyBTeW5jaHJvbml6YXRpb25TdGF0ZSA6IHVpbnQ4X3QgewogICAgICAgICBJZGxlLAog
ICAgICAgICBXYWl0aW5nRm9yUmVuZGVyaW5nVXBkYXRlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcAppbmRleCA1NjJjZDg2ODEx
OWEwZmNlMjkxMzQ1M2UwYWU5NmQ0MTk3ZWNjNDA0Li5hMzczYmFhYTMwOGRhMjI0Y2Y4YmE4Yjcx
M2U2NDRkZjQ1MGE3OGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcApAQCAtODksNiArODksMTYgQEAgdm9pZCBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJl
bihjb25zdCBTY3IKICAgICAgICAgYXV0byogbGF5ZXIgPSBzdGF0aWNfY2FzdDxOaWNvc2lhOjpQ
bGF0Zm9ybUxheWVyKj4oc2Nyb2xsaW5nU3RhdGVOb2RlLmZvb3RlckxheWVyKCkpOwogICAgICAg
ICBtX2Zvb3RlckxheWVyID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29tcG9zaXRpb25MYXllcj4obGF5
ZXIpOwogICAgIH0KKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikpIHsK
KyAgICAgICAgYXV0byogc2Nyb2xsTGF5ZXIgPSBzdGF0aWNfY2FzdDxOaWNvc2lhOjpQbGF0Zm9y
bUxheWVyKj4oc2Nyb2xsZWRDb250ZW50c0xheWVyKCkpOworICAgICAgICBBU1NFUlQoc2Nyb2xs
TGF5ZXIpOworICAgICAgICBhdXRvJiBjb21wb3NpdGlvbkxheWVyID0gZG93bmNhc3Q8Tmljb3Np
YTo6Q29tcG9zaXRpb25MYXllcj4oKnNjcm9sbExheWVyKTsKKyAgICAgICAgYXV0byBub2RlSUQg
PSBzY3JvbGxpbmdOb2RlSUQoKTsKKyAgICAgICAgY29tcG9zaXRpb25MYXllci51cGRhdGVTdGF0
ZShbbm9kZUlEXShOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyOjpMYXllclN0YXRlJiBzdGF0ZSkg
eworICAgICAgICAgICAgc3RhdGUuc2Nyb2xsaW5nTm9kZUlEID0gbm9kZUlEOworICAgICAgICAg
ICAgc3RhdGUuZGVsdGEuc2Nyb2xsaW5nTm9kZUNoYW5nZWQgPSB0cnVlOworICAgICAgICB9KTsK
KyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6
OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRl
Tm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5p
Y29zaWEuaAppbmRleCA2MDQwNzk4ODA2MTEyZWU2ZWM4MjU4MjYyNTc4Yzk0MzRjYmQ3ZDFmLi43
MGVhMWE4Yjc5MTdiN2EyYWJlZWZmNDA5MDJmNDNjYzRiYWE2ZWRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVOaWNvc2lhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmlj
b3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5oCkBAIC00Nyw2ICs0
Nyw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGU+IGNyZWF0ZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGlu
Z05vZGVJRCk7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5p
Y29zaWEoKTsKIAorICAgIFJlZlB0cjxOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyPiByb290Q29u
dGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdENvbnRlbnRzTGF5ZXI7IH0KKwogcHJp
dmF0ZToKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYShTY3JvbGxp
bmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU5p
Y29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxp
bmdUcmVlTmljb3NpYS5jcHAKaW5kZXggMGFjMjk5OWVlNjFhNjRiODYzZGIzYjU2YTM5ZGEwNGJk
ZmIzMGY3NC4uMzUwYjQ5YjIxYzFhY2IyNjQzNmVhNTk5NDExMzAyNmJkMzc4YjdiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVl
Tmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9T
Y3JvbGxpbmdUcmVlTmljb3NpYS5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2lmIEVOQUJMRShB
U1lOQ19TQ1JPTExJTkcpICYmIFVTRShOSUNPU0lBKQogCisjaW5jbHVkZSAiQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIk5pY29zaWFQbGF0Zm9ybUxheWVyLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVG
cmFtZUhvc3RpbmdOb2RlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZU5pY29zaWEuaCIKQEAgLTczLDYgKzc1LDY4IEBAIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4g
U2Nyb2xsaW5nVHJlZU5pY29zaWE6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05v
CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAordXNpbmcgTmljb3NpYTo6
Q29tcG9zaXRpb25MYXllcjsKKworc3RhdGljIHZvaWQgY29sbGVjdERlc2NlbmRhbnRMYXllcnNB
dFBvaW50KFZlY3RvcjxSZWZQdHI8Q29tcG9zaXRpb25MYXllcj4+JiBsYXllcnNBdFBvaW50LCBS
ZWZQdHI8Q29tcG9zaXRpb25MYXllcj4gcGFyZW50LCBGbG9hdFBvaW50IHBvaW50KQoreworICAg
IGJvb2wgY2hpbGRFeGlzdHNBdFBvaW50ID0gZmFsc2U7CisKKyAgICBwYXJlbnQtPmFjY2Vzc0Nv
bW1pdHRlZChbJl0oY29uc3QgQ29tcG9zaXRpb25MYXllcjo6TGF5ZXJTdGF0ZSYgc3RhdGUpIHsK
KyAgICAgICAgZm9yIChhdXRvIGNoaWxkIDogc3RhdGUuY2hpbGRyZW4pIHsKKyAgICAgICAgICAg
IGJvb2wgY29udGFpbnNQb2ludCA9IGZhbHNlOworICAgICAgICAgICAgRmxvYXRQb2ludCB0cmFu
c2Zvcm1lZFBvaW50OworICAgICAgICAgICAgY2hpbGQtPmFjY2Vzc0NvbW1pdHRlZChbJl0oY29u
c3QgQ29tcG9zaXRpb25MYXllcjo6TGF5ZXJTdGF0ZSYgY2hpbGRTdGF0ZSkgeworICAgICAgICAg
ICAgICAgIGlmICghY2hpbGRTdGF0ZS50cmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBmbG9hdCBvcmlnaW5YID0gY2hp
bGRTdGF0ZS5hbmNob3JQb2ludC54KCkgKiBjaGlsZFN0YXRlLnNpemUud2lkdGgoKTsKKyAgICAg
ICAgICAgICAgICBmbG9hdCBvcmlnaW5ZID0gY2hpbGRTdGF0ZS5hbmNob3JQb2ludC55KCkgKiBj
aGlsZFN0YXRlLnNpemUuaGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgYXV0byB0cmFuc2Zvcm0g
PSAqKFRyYW5zZm9ybWF0aW9uTWF0cml4KCkKKyAgICAgICAgICAgICAgICAgICAgLnRyYW5zbGF0
ZTNkKG9yaWdpblggKyBjaGlsZFN0YXRlLnBvc2l0aW9uLngoKSwgb3JpZ2luWSArIGNoaWxkU3Rh
dGUucG9zaXRpb24ueSgpLCBjaGlsZFN0YXRlLmFuY2hvclBvaW50LnooKSkKKyAgICAgICAgICAg
ICAgICAgICAgLm11bHRpcGx5KGNoaWxkU3RhdGUudHJhbnNmb3JtKQorICAgICAgICAgICAgICAg
ICAgICAudHJhbnNsYXRlM2QoLW9yaWdpblgsIC1vcmlnaW5ZLCAtY2hpbGRTdGF0ZS5hbmNob3JQ
b2ludC56KCkpLmludmVyc2UoKSk7CisgICAgICAgICAgICAgICAgYXV0byBjaGlsZFBvaW50ID0g
dHJhbnNmb3JtLnByb2plY3RQb2ludChwb2ludCk7CisgICAgICAgICAgICAgICAgaWYgKEZsb2F0
UmVjdChGbG9hdFBvaW50KCksIGNoaWxkU3RhdGUuc2l6ZSkuY29udGFpbnMoY2hpbGRQb2ludCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgY29udGFpbnNQb2ludCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgIHRyYW5zZm9ybWVkUG9pbnQuc2V0KGNoaWxkUG9pbnQueCgpLCBjaGlsZFBvaW50
LnkoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBp
ZiAoY29udGFpbnNQb2ludCkgeworICAgICAgICAgICAgICAgIGNoaWxkRXhpc3RzQXRQb2ludCA9
IHRydWU7CisgICAgICAgICAgICAgICAgY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBvaW50KGxh
eWVyc0F0UG9pbnQsIGNoaWxkLCB0cmFuc2Zvcm1lZFBvaW50KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0pOworCisgICAgaWYgKCFjaGlsZEV4aXN0c0F0UG9pbnQpCisgICAgICAg
IGxheWVyc0F0UG9pbnQuYXBwZW5kKHBhcmVudCk7Cit9CisKK1JlZlB0cjxTY3JvbGxpbmdUcmVl
Tm9kZT4gU2Nyb2xsaW5nVHJlZU5pY29zaWE6OnNjcm9sbGluZ05vZGVGb3JQb2ludChGbG9hdFBv
aW50IHBvaW50KQoreworICAgIGF1dG8qIHJvb3RTY3JvbGxpbmdOb2RlID0gcm9vdE5vZGUoKTsK
KyAgICBpZiAoIXJvb3RTY3JvbGxpbmdOb2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIExheWVyVHJlZUhpdFRlc3RMb2NrZXIgbGF5ZXJMb2NrZXIobV9zY3JvbGxpbmdDb29yZGlu
YXRvci5nZXQoKSk7CisKKyAgICBhdXRvIHJvb3RDb250ZW50c0xheWVyID0gc3RhdGljX2Nhc3Q8
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEqPihyb290U2Nyb2xsaW5nTm9k
ZSktPnJvb3RDb250ZW50c0xheWVyKCk7CisgICAgVmVjdG9yPFJlZlB0cjxDb21wb3NpdGlvbkxh
eWVyPj4gbGF5ZXJzQXRQb2ludDsKKyAgICBjb2xsZWN0RGVzY2VuZGFudExheWVyc0F0UG9pbnQo
bGF5ZXJzQXRQb2ludCwgcm9vdENvbnRlbnRzTGF5ZXIsIHBvaW50KTsKKworICAgIFNjcm9sbGlu
Z1RyZWVOb2RlKiByZXR1cm5Ob2RlID0gbnVsbHB0cjsKKyAgICBmb3IgKGF1dG8gbGF5ZXIgOiBX
VEY6Om1ha2VSZXZlcnNlZFJhbmdlKGxheWVyc0F0UG9pbnQpKSB7CisgICAgICAgIGxheWVyLT5h
Y2Nlc3NDb21taXR0ZWQoWyZdKGNvbnN0IENvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGUmIHN0
YXRlKSB7CisgICAgICAgICAgICBhdXRvKiBzY3JvbGxpbmdOb2RlID0gbm9kZUZvcklEKHN0YXRl
LnNjcm9sbGluZ05vZGVJRCk7CisgICAgICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU+KHNjcm9sbGluZ05vZGUpKQorICAgICAgICAgICAgICAgIHJldHVybk5vZGUgPSBz
Y3JvbGxpbmdOb2RlOworICAgICAgICB9KTsKKyAgICAgICAgaWYgKHJldHVybk5vZGUpCisgICAg
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0dXJuTm9kZSA/IHJldHVybk5v
ZGUgOiByb290U2Nyb2xsaW5nTm9kZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgVVNFKE5JQ09TSUEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVO
aWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGlu
Z1RyZWVOaWNvc2lhLmgKaW5kZXggNWI4MjZjYzZhNzhjYjgwYTEyOTNiNWQ1NWYwZjBlYjJhYjRj
N2QzOC4uMTZlYTNiMzU1YmMwMzk5ZTY1ZGQyYmI0ZTY0ZDM0MDU1NTZjYWU3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlTmlj
b3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xs
aW5nVHJlZU5pY29zaWEuaApAQCAtNDEsNiArNDEsOCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFNjcm9sbGluZ1RyZWVOaWNvc2lhKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKIAogICAg
IFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5n
Tm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisKKyAgICBSZWZQdHI8U2Nyb2xs
aW5nVHJlZU5vZGU+IHNjcm9sbGluZ05vZGVGb3JQb2ludChGbG9hdFBvaW50KSBmaW5hbDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5p
Y29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKaW5kZXggNjRkOGE1OGMxNDFl
YzU3ODlkYWVjMGI4OWMxN2Y3Yzk5ZTU4YjEwNC4uODY1YTg0MTVlMzljYTMxZWNiZjVkOWM3NTFh
ODQ1NDc5MWE2NmY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKQEAgLTU2LDYgKzU2LDIzIEBAIFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlTmljCiAKIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNv
c2lhOjp+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEoKSA9IGRlZmF1
bHQ7CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OmNv
bW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5v
ZGUpCit7CisgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3Jl
Q2hpbGRyZW4oc3RhdGVOb2RlKTsKKworICAgIGNvbnN0IGF1dG8mIHNjcm9sbGluZ1N0YXRlTm9k
ZSA9IGRvd25jYXN0PFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlPihzdGF0ZU5v
ZGUpOworICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsZWRDb250ZW50c0xheWVyKSkgeworICAgICAg
ICBhdXRvKiBzY3JvbGxMYXllciA9IHN0YXRpY19jYXN0PE5pY29zaWE6OlBsYXRmb3JtTGF5ZXIq
PihzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSk7CisgICAgICAgIEFTU0VSVChzY3JvbGxMYXllcik7
CisgICAgICAgIGF1dG8mIGNvbXBvc2l0aW9uTGF5ZXIgPSBkb3duY2FzdDxOaWNvc2lhOjpDb21w
b3NpdGlvbkxheWVyPigqc2Nyb2xsTGF5ZXIpOworICAgICAgICBhdXRvIG5vZGVJRCA9IHNjcm9s
bGluZ05vZGVJRCgpOworICAgICAgICBjb21wb3NpdGlvbkxheWVyLnVwZGF0ZVN0YXRlKFtub2Rl
SURdKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGUmIHN0YXRlKSB7CisgICAg
ICAgICAgICBzdGF0ZS5zY3JvbGxpbmdOb2RlSUQgPSBub2RlSUQ7CisgICAgICAgICAgICBzdGF0
ZS5kZWx0YS5zY3JvbGxpbmdOb2RlQ2hhbmdlZCA9IHRydWU7CisgICAgICAgIH0pOworICAgIH0K
K30KKwogdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29t
bWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2Rl
KQogewogICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRl
QWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmlj
b3NpYS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5oCmluZGV4IDNiZDFhNDUzMzdkMDA2Mzc4
OGU1MDE4NTczZmEwMWFlMzAwZWFmZjIuLmY1OGEwNGRlMDMxNDhiMTU5ZDZkNTBlZTA1YmJiYTQw
ZTExOWZjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVOaWNvc2lhLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYShTY3JvbGxpbmdU
cmVlJiwgU2Nyb2xsaW5nTm9kZUlEKTsKIAorICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGls
ZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1p
dFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsK
IAogICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50
JiwgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1M
YXllci5oCmluZGV4IDJlMjk2Mzc3NWI5OTY2ODdhZGJhZjdiOGVhZWVmNzljYTI4ZjA3NTcuLjA2
ZjlkNGYzYjhmZmM0ZTBmMjY1OTNjZGFiMTBhYWNiYTI0MmIzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQ
bGF0Zm9ybUxheWVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0
ZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0aW9uLmgiCiAj
aW5jbHVkZSAiTmljb3NpYVNjZW5lSW50ZWdyYXRpb24uaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBl
cy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTEzNCw2ICsxMzUsNyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWRCYWNraW5nU3RvcmVDbGllbnRD
aGFuZ2VkIDogMTsKICAgICAgICAgICAgICAgICAgICAgYm9vbCByZXBhaW50Q291bnRlckNoYW5n
ZWQgOiAxOwogICAgICAgICAgICAgICAgICAgICBib29sIGRlYnVnQm9yZGVyQ2hhbmdlZCA6IDE7
CisgICAgICAgICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nTm9kZUNoYW5nZWQgOiAxOwogICAg
ICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsdWUgeyAwIH07CiAg
ICAgICAgICAgICB9OwpAQCAtMTk4LDYgKzIwMCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGZs
b2F0IHdpZHRoIHsgMCB9OwogICAgICAgICAgICAgYm9vbCB2aXNpYmxlIHsgZmFsc2UgfTsKICAg
ICAgICAgfSBkZWJ1Z0JvcmRlcjsKKworICAgICAgICBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQg
c2Nyb2xsaW5nTm9kZUlEOwogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAt
MjY2LDYgKzI3MCw5IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKHBlbmRpbmcuZGVsdGEuZGVidWdC
b3JkZXJDaGFuZ2VkKQogICAgICAgICAgICAgc3RhZ2luZy5kZWJ1Z0JvcmRlciA9IHBlbmRpbmcu
ZGVidWdCb3JkZXI7CiAKKyAgICAgICAgaWYgKHBlbmRpbmcuZGVsdGEuc2Nyb2xsaW5nTm9kZUNo
YW5nZWQpCisgICAgICAgICAgICBzdGFnaW5nLnNjcm9sbGluZ05vZGVJRCA9IHBlbmRpbmcuc2Ny
b2xsaW5nTm9kZUlEOworCiAgICAgICAgIGlmIChwZW5kaW5nLmRlbHRhLmJhY2tpbmdTdG9yZUNo
YW5nZWQpCiAgICAgICAgICAgICBzdGFnaW5nLmJhY2tpbmdTdG9yZSA9IHBlbmRpbmcuYmFja2lu
Z1N0b3JlOwogICAgICAgICBpZiAocGVuZGluZy5kZWx0YS5jb250ZW50TGF5ZXJDaGFuZ2VkKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412910</attachid>
            <date>2020-11-02 06:11:06 -0800</date>
            <delta_ts>2020-11-02 06:34:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214179-20201102141104.patch</filename>
            <type>text/plain</type>
            <size>13812</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdkMThmM2MyMGEyOWE2
N2FlZTFlY2I1NTU0ZjgxNjAyZTBlN2YyNS4uNDYxMjlmMjFlZjA4MGQxZTA3NGYxY2I0NjA1M2Vl
NTBlM2UxZGI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTAyICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFNjcm9sbGlu
ZyB3aXRoIG1vdXNlIHdoZWVsIGRvZXNuJ3Qgd29yayBvbiBpZnJhbWVzIHdpdGggYXN5bmMgc2Ny
b2xsaW5nIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQgaW4K
KyAgICAgICAgU2Nyb2xsaW5nVHJlZU5pY29zaWEuIFRoaXMgZml4ZXMgb3ZlcmZsb3cgYW5kIGlm
cmFtZSBzY3JvbGxpbmcgd2hlbgorICAgICAgICBhc3luYyBzY3JvbGxpbmcgaXMgZW5hYmxlZCBv
biBXUEUgYW5kIEdUSyBwb3J0cy4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmNvbW1pdFN0YXRlQmVmb3Jl
Q2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxl
Y3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTmljb3NpYTo6c2Nyb2xsaW5nTm9kZUZvclBvaW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
Tmljb3NpYTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5
ZXIuaDoKKyAgICAgICAgKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OmZsdXNoU3RhdGUpOgor
ICAgICAgICAoTmljb3NpYTo6Q29tcG9zaXRpb25MYXllcjo6YWNjZXNzUGVuZGluZyk6CisKIDIw
MjAtMTAtMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgU2FuaXRpemUgdGhlIHVzYWdlIG9mIG92ZXJyaWRlIHNpemVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4
IGRjM2IyYTgzYzQwZDMzNjBmYjI4YjcwYjFiNzZkZDBlNTcwOWFiY2YuLjRmNjhlYmM1NDNjZTM0
ODVjOTNlMGY2ZTA2NWYxOGEyMjJmODkwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC03Nyw2ICs3Nyw4IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHJlcG9ydEV4cG9zZWRVbmZpbGxlZEFyZWEoTW9ub3Rvbmlj
VGltZSwgdW5zaWduZWQgdW5maWxsZWRBcmVhKSBvdmVycmlkZTsKICAgICB2b2lkIHJlcG9ydFN5
bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0NoYW5nZWQoTW9ub3RvbmljVGltZSwgT3B0aW9uU2V0
PFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uPikgb3ZlcnJpZGU7CiAKKyAgICBSZWZQdHI8QXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcj4gbV9zY3JvbGxpbmdDb29yZGluYXRvcjsKKwogcHJpdmF0
ZToKICAgICBib29sIGlzVGhyZWFkZWRTY3JvbGxpbmdUcmVlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgcHJvcGFnYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFz
b25zKGNvbnN0IEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiYpIG92ZXJyaWRlOwpAQCAtOTEsOCAr
OTMsNiBAQCBwcml2YXRlOgogCiAgICAgU2Vjb25kcyBtYXhBbGxvd2FibGVSZW5kZXJpbmdVcGRh
dGVEdXJhdGlvbkZvclN5bmNocm9uaXphdGlvbigpOwogCi0gICAgUmVmUHRyPEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7Ci0KICAgICBlbnVtIGNsYXNz
IFN5bmNocm9uaXphdGlvblN0YXRlIDogdWludDhfdCB7CiAgICAgICAgIElkbGUsCiAgICAgICAg
IFdhaXRpbmdGb3JSZW5kZXJpbmdVcGRhdGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNv
c2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCmluZGV4IDU2MmNkODY4MTE5YTBmY2Uy
OTEzNDUzZTBhZTk2ZDQxOTdlY2M0MDQuLjcwNTZjMmU0ZWFlMTk1NDFkZTE2MmViOGNkMmE3ZTY2
OTQ5NGU5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU5pY29zaWEuY3BwCkBAIC04OSw2ICs4OSwxNiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0
IFNjcgogICAgICAgICBhdXRvKiBsYXllciA9IHN0YXRpY19jYXN0PE5pY29zaWE6OlBsYXRmb3Jt
TGF5ZXIqPihzY3JvbGxpbmdTdGF0ZU5vZGUuZm9vdGVyTGF5ZXIoKSk7CiAgICAgICAgIG1fZm9v
dGVyTGF5ZXIgPSBkb3duY2FzdDxOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyPihsYXllcik7CiAg
ICAgfQorICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsZWRDb250ZW50c0xheWVyKSkgeworICAgICAg
ICBhdXRvKiBzY3JvbGxMYXllciA9IHN0YXRpY19jYXN0PE5pY29zaWE6OlBsYXRmb3JtTGF5ZXIq
PihzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSk7CisgICAgICAgIEFTU0VSVChzY3JvbGxMYXllcik7
CisgICAgICAgIGF1dG8mIGNvbXBvc2l0aW9uTGF5ZXIgPSBkb3duY2FzdDxOaWNvc2lhOjpDb21w
b3NpdGlvbkxheWVyPigqc2Nyb2xsTGF5ZXIpOworICAgICAgICBhdXRvIHVwZGF0ZVNjb3BlID0g
Y29tcG9zaXRpb25MYXllci5jcmVhdGVVcGRhdGVTY29wZSgpOworICAgICAgICBjb21wb3NpdGlv
bkxheWVyLnVwZGF0ZVN0YXRlKFtub2RlSUQgPSBzY3JvbGxpbmdOb2RlSUQoKV0oTmljb3NpYTo6
Q29tcG9zaXRpb25MYXllcjo6TGF5ZXJTdGF0ZSYgc3RhdGUpIHsKKyAgICAgICAgICAgIHN0YXRl
LnNjcm9sbGluZ05vZGVJRCA9IG5vZGVJRDsKKyAgICAgICAgICAgIHN0YXRlLmRlbHRhLnNjcm9s
bGluZ05vZGVDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiB2b2lkIFNj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVOaWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNv
c2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmgKaW5kZXggNjA0MDc5
ODgwNjExMmVlNmVjODI1ODI2MjU3OGM5NDM0Y2JkN2QxZi4uNzBlYTFhOGI3OTE3YjdhMmFiZWVm
ZjQwOTAyZjQzY2M0YmFhNmVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPiBjcmVhdGUoU2Nyb2xs
aW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIHZpcnR1
YWwgflNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhKCk7CiAKKyAgICBSZWZQ
dHI8Tmljb3NpYTo6Q29tcG9zaXRpb25MYXllcj4gcm9vdENvbnRlbnRzTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX3Jvb3RDb250ZW50c0xheWVyOyB9CisKIHByaXZhdGU6CiAgICAgU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05v
ZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU5pY29zaWEuY3BwCmlu
ZGV4IDBhYzI5OTllZTYxYTY0Yjg2M2RiM2I1NmEzOWRhMDRiZGZiMzBmNzQuLjllOTI4ZGM4ZmMw
ODM1ZWZkYjk1YjhkY2JlYWI3Y2U1NWJhMWUxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU5pY29zaWEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU5pY29zaWEu
Y3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBV
U0UoTklDT1NJQSkKIAorI2luY2x1ZGUgIkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKKyNp
bmNsdWRlICJOaWNvc2lhUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVG
aXhlZE5vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVIb3N0aW5nTm9kZS5oIgog
I2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmgiCkBAIC03
Myw2ICs3NSw2OCBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVOaWNvc2lh
OjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdObwogICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKK3VzaW5nIE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI7CisK
K3N0YXRpYyB2b2lkIGNvbGxlY3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludChWZWN0b3I8UmVmUHRy
PENvbXBvc2l0aW9uTGF5ZXI+PiYgbGF5ZXJzQXRQb2ludCwgUmVmUHRyPENvbXBvc2l0aW9uTGF5
ZXI+IHBhcmVudCwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgYm9vbCBjaGlsZEV4
aXN0c0F0UG9pbnQgPSBmYWxzZTsKKworICAgIHBhcmVudC0+YWNjZXNzUGVuZGluZyhbJl0oY29u
c3QgQ29tcG9zaXRpb25MYXllcjo6TGF5ZXJTdGF0ZSYgc3RhdGUpIHsKKyAgICAgICAgZm9yIChh
dXRvIGNoaWxkIDogc3RhdGUuY2hpbGRyZW4pIHsKKyAgICAgICAgICAgIGJvb2wgY29udGFpbnNQ
b2ludCA9IGZhbHNlOworICAgICAgICAgICAgRmxvYXRQb2ludCB0cmFuc2Zvcm1lZFBvaW50Owor
ICAgICAgICAgICAgY2hpbGQtPmFjY2Vzc1BlbmRpbmcoWyZdKGNvbnN0IENvbXBvc2l0aW9uTGF5
ZXI6OkxheWVyU3RhdGUmIGNoaWxkU3RhdGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWNoaWxk
U3RhdGUudHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgZmxvYXQgb3JpZ2luWCA9IGNoaWxkU3RhdGUuYW5jaG9yUG9p
bnQueCgpICogY2hpbGRTdGF0ZS5zaXplLndpZHRoKCk7CisgICAgICAgICAgICAgICAgZmxvYXQg
b3JpZ2luWSA9IGNoaWxkU3RhdGUuYW5jaG9yUG9pbnQueSgpICogY2hpbGRTdGF0ZS5zaXplLmhl
aWdodCgpOworICAgICAgICAgICAgICAgIGF1dG8gdHJhbnNmb3JtID0gKihUcmFuc2Zvcm1hdGlv
bk1hdHJpeCgpCisgICAgICAgICAgICAgICAgICAgIC50cmFuc2xhdGUzZChvcmlnaW5YICsgY2hp
bGRTdGF0ZS5wb3NpdGlvbi54KCksIG9yaWdpblkgKyBjaGlsZFN0YXRlLnBvc2l0aW9uLnkoKSwg
Y2hpbGRTdGF0ZS5hbmNob3JQb2ludC56KCkpCisgICAgICAgICAgICAgICAgICAgIC5tdWx0aXBs
eShjaGlsZFN0YXRlLnRyYW5zZm9ybSkKKyAgICAgICAgICAgICAgICAgICAgLnRyYW5zbGF0ZTNk
KC1vcmlnaW5YLCAtb3JpZ2luWSwgLWNoaWxkU3RhdGUuYW5jaG9yUG9pbnQueigpKS5pbnZlcnNl
KCkpOworICAgICAgICAgICAgICAgIGF1dG8gY2hpbGRQb2ludCA9IHRyYW5zZm9ybS5wcm9qZWN0
UG9pbnQocG9pbnQpOworICAgICAgICAgICAgICAgIGlmIChGbG9hdFJlY3QoRmxvYXRQb2ludCgp
LCBjaGlsZFN0YXRlLnNpemUpLmNvbnRhaW5zKGNoaWxkUG9pbnQpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGNvbnRhaW5zUG9pbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB0cmFuc2Zv
cm1lZFBvaW50LnNldChjaGlsZFBvaW50LngoKSwgY2hpbGRQb2ludC55KCkpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYgKGNvbnRhaW5zUG9pbnQp
IHsKKyAgICAgICAgICAgICAgICBjaGlsZEV4aXN0c0F0UG9pbnQgPSB0cnVlOworICAgICAgICAg
ICAgICAgIGNvbGxlY3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludChsYXllcnNBdFBvaW50LCBjaGls
ZCwgdHJhbnNmb3JtZWRQb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsK
KworICAgIGlmICghY2hpbGRFeGlzdHNBdFBvaW50KQorICAgICAgICBsYXllcnNBdFBvaW50LmFw
cGVuZChwYXJlbnQpOworfQorCitSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1Ry
ZWVOaWNvc2lhOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQoRmxvYXRQb2ludCBwb2ludCkKK3sKKyAg
ICBhdXRvKiByb290U2Nyb2xsaW5nTm9kZSA9IHJvb3ROb2RlKCk7CisgICAgaWYgKCFyb290U2Ny
b2xsaW5nTm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBMYXllclRyZWVIaXRU
ZXN0TG9ja2VyIGxheWVyTG9ja2VyKG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IuZ2V0KCkpOworCisg
ICAgYXV0byByb290Q29udGVudHNMYXllciA9IHN0YXRpY19jYXN0PFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVOaWNvc2lhKj4ocm9vdFNjcm9sbGluZ05vZGUpLT5yb290Q29udGVudHNM
YXllcigpOworICAgIFZlY3RvcjxSZWZQdHI8Q29tcG9zaXRpb25MYXllcj4+IGxheWVyc0F0UG9p
bnQ7CisgICAgY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBvaW50KGxheWVyc0F0UG9pbnQsIHJv
b3RDb250ZW50c0xheWVyLCBwb2ludCk7CisKKyAgICBTY3JvbGxpbmdUcmVlTm9kZSogcmV0dXJu
Tm9kZSA9IG51bGxwdHI7CisgICAgZm9yIChhdXRvIGxheWVyIDogV1RGOjptYWtlUmV2ZXJzZWRS
YW5nZShsYXllcnNBdFBvaW50KSkgeworICAgICAgICBsYXllci0+YWNjZXNzQ29tbWl0dGVkKFsm
XShjb25zdCBDb21wb3NpdGlvbkxheWVyOjpMYXllclN0YXRlJiBzdGF0ZSkgeworICAgICAgICAg
ICAgYXV0byogc2Nyb2xsaW5nTm9kZSA9IG5vZGVGb3JJRChzdGF0ZS5zY3JvbGxpbmdOb2RlSUQp
OworICAgICAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPihzY3JvbGxp
bmdOb2RlKSkKKyAgICAgICAgICAgICAgICByZXR1cm5Ob2RlID0gc2Nyb2xsaW5nTm9kZTsKKyAg
ICAgICAgfSk7CisgICAgICAgIGlmIChyZXR1cm5Ob2RlKQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgcmV0dXJuIHJldHVybk5vZGUgPyByZXR1cm5Ob2RlIDogcm9vdFNjcm9sbGlu
Z05vZGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShB
U1lOQ19TQ1JPTExJTkcpICYmIFVTRShOSUNPU0lBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlTmljb3NpYS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlTmljb3NpYS5oCmlu
ZGV4IDViODI2Y2M2YTc4Y2I4MGExMjkzYjVkNTVmMGYwZWIyYWI0YzdkMzguLjE2ZWEzYjM1NWJj
MDM5OWU2NWRkMmJiNGU2NGQzNDA1NTU2Y2FlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU5pY29zaWEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmgK
QEAgLTQxLDYgKzQxLDggQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlTmlj
b3NpYShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAKICAgICBSZWY8U2Nyb2xsaW5nVHJl
ZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxp
bmdOb2RlSUQpIG92ZXJyaWRlOworCisgICAgUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBzY3Jv
bGxpbmdOb2RlRm9yUG9pbnQoRmxvYXRQb2ludCkgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNv
c2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU5pY29zaWEuY3BwCmluZGV4IDY0ZDhhNThjMTQxZWM1Nzg5ZGFlYzBiODljMTdm
N2M5OWU1OGIxMDQuLjNiYzFkZjkxYmYyODdhNTNjM2ZmM2YxZWRmOTA2ZTI4MDA4ZDkxZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZU5pY29zaWEuY3BwCkBAIC01Niw2ICs1NiwyMyBAQCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTmljb3NpYTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pYwog
CiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6flNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhKCkgPSBkZWZhdWx0OwogCit2b2lkIFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpjb21taXRTdGF0ZUJlZm9yZUNo
aWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQoreworICAgIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0YXRlTm9k
ZSk7CisKKyAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSBkb3duY2FzdDxTY3Jv
bGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2RlKTsKKyAgICBpZiAoc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikpIHsKKyAgICAgICAgYXV0byogc2Nyb2xsTGF5
ZXIgPSBzdGF0aWNfY2FzdDxOaWNvc2lhOjpQbGF0Zm9ybUxheWVyKj4oc2Nyb2xsZWRDb250ZW50
c0xheWVyKCkpOworICAgICAgICBBU1NFUlQoc2Nyb2xsTGF5ZXIpOworICAgICAgICBhdXRvJiBj
b21wb3NpdGlvbkxheWVyID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29tcG9zaXRpb25MYXllcj4oKnNj
cm9sbExheWVyKTsKKyAgICAgICAgYXV0byB1cGRhdGVTY29wZSA9IGNvbXBvc2l0aW9uTGF5ZXIu
Y3JlYXRlVXBkYXRlU2NvcGUoKTsKKyAgICAgICAgY29tcG9zaXRpb25MYXllci51cGRhdGVTdGF0
ZShbbm9kZUlEID0gc2Nyb2xsaW5nTm9kZUlEKCldKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6
OkxheWVyU3RhdGUmIHN0YXRlKSB7CisgICAgICAgICAgICBzdGF0ZS5zY3JvbGxpbmdOb2RlSUQg
PSBub2RlSUQ7CisgICAgICAgICAgICBzdGF0ZS5kZWx0YS5zY3JvbGxpbmdOb2RlQ2hhbmdlZCA9
IHRydWU7CisgICAgICAgIH0pOworICAgIH0KK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNj
cm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewogICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3Np
YS5oCmluZGV4IDNiZDFhNDUzMzdkMDA2Mzc4OGU1MDE4NTczZmEwMWFlMzAwZWFmZjIuLmY1OGEw
NGRlMDMxNDhiMTU5ZDZkNTBlZTA1YmJiYTQwZTExOWZjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZU5pY29zaWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNv
c2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmgKQEAgLTQ0LDYg
KzQ0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTmljb3NpYShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZUlEKTsKIAorICAg
IHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUm
KSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3Jv
bGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKIAogICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3Jv
bGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0IG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS9OaWNvc2lhUGxhdGZvcm1MYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5oCmluZGV4IDJlMjk2Mzc3NWI5OTY2ODdh
ZGJhZjdiOGVhZWVmNzljYTI4ZjA3NTcuLjU1ZTg2ZmE0YjExYTU2MDY1MGI3NGYyZDkxY2ZhZDI0
NTAyM2NlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmgKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0ZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKICNpbmNs
dWRlICJOaWNvc2lhQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiTmljb3NpYVNjZW5lSW50ZWdyYXRp
b24uaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9u
TWF0cml4LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2su
aD4KQEAgLTEzNCw2ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIGJvb2wg
YW5pbWF0ZWRCYWNraW5nU3RvcmVDbGllbnRDaGFuZ2VkIDogMTsKICAgICAgICAgICAgICAgICAg
ICAgYm9vbCByZXBhaW50Q291bnRlckNoYW5nZWQgOiAxOwogICAgICAgICAgICAgICAgICAgICBi
b29sIGRlYnVnQm9yZGVyQ2hhbmdlZCA6IDE7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgc2Ny
b2xsaW5nTm9kZUNoYW5nZWQgOiAxOwogICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAg
ICAgdWludDMyX3QgdmFsdWUgeyAwIH07CiAgICAgICAgICAgICB9OwpAQCAtMTk4LDYgKzIwMCw4
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGZsb2F0IHdpZHRoIHsgMCB9OwogICAgICAgICAgICAg
Ym9vbCB2aXNpYmxlIHsgZmFsc2UgfTsKICAgICAgICAgfSBkZWJ1Z0JvcmRlcjsKKworICAgICAg
ICBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEIHsgMCB9OwogICAgIH07
CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtMjY2LDYgKzI3MCw5IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKHBlbmRpbmcuZGVsdGEuZGVidWdCb3JkZXJDaGFuZ2VkKQogICAgICAgICAg
ICAgc3RhZ2luZy5kZWJ1Z0JvcmRlciA9IHBlbmRpbmcuZGVidWdCb3JkZXI7CiAKKyAgICAgICAg
aWYgKHBlbmRpbmcuZGVsdGEuc2Nyb2xsaW5nTm9kZUNoYW5nZWQpCisgICAgICAgICAgICBzdGFn
aW5nLnNjcm9sbGluZ05vZGVJRCA9IHBlbmRpbmcuc2Nyb2xsaW5nTm9kZUlEOworCiAgICAgICAg
IGlmIChwZW5kaW5nLmRlbHRhLmJhY2tpbmdTdG9yZUNoYW5nZWQpCiAgICAgICAgICAgICBzdGFn
aW5nLmJhY2tpbmdTdG9yZSA9IHBlbmRpbmcuYmFja2luZ1N0b3JlOwogICAgICAgICBpZiAocGVu
ZGluZy5kZWx0YS5jb250ZW50TGF5ZXJDaGFuZ2VkKQpAQCAtMjkwLDYgKzI5NywxMyBAQCBwdWJs
aWM6CiAgICAgICAgIGZ1bmN0b3IobV9zdGF0ZS5jb21taXR0ZWQpOwogICAgIH0KIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBhY2Nlc3NQZW5kaW5nKGNvbnN0IFQmIGZ1bmN0
b3IpCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihQbGF0Zm9ybUxheWVyOjptX3N0
YXRlLmxvY2spOworICAgICAgICBmdW5jdG9yKG1fc3RhdGUucGVuZGluZyk7CisgICAgfQorCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICB2b2lkIGFjY2Vzc0NvbW1pdHRlZChjb25zdCBU
JiBmdW5jdG9yKQogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412913</attachid>
            <date>2020-11-02 06:34:39 -0800</date>
            <delta_ts>2020-11-02 07:43:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214179-20201102143438.patch</filename>
            <type>text/plain</type>
            <size>13818</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ4OWVlMzRlY2RiMzJl
OTAwOGNjMmY4OTEwOTFhYjhlMWZjYjE3Mi4uYjM3N2YwNDkxMDgyNmE2MWFkZGE0MGQxODFmYjNl
ZmU4ZmU5NGE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTAyICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFNjcm9sbGlu
ZyB3aXRoIG1vdXNlIHdoZWVsIGRvZXNuJ3Qgd29yayBvbiBpZnJhbWVzIHdpdGggYXN5bmMgc2Ny
b2xsaW5nIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQgaW4K
KyAgICAgICAgU2Nyb2xsaW5nVHJlZU5pY29zaWEuIFRoaXMgZml4ZXMgb3ZlcmZsb3cgYW5kIGlm
cmFtZSBzY3JvbGxpbmcgd2hlbgorICAgICAgICBhc3luYyBzY3JvbGxpbmcgaXMgZW5hYmxlZCBv
biBXUEUgYW5kIEdUSyBwb3J0cy4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmNvbW1pdFN0YXRlQmVmb3Jl
Q2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxl
Y3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTmljb3NpYTo6c2Nyb2xsaW5nTm9kZUZvclBvaW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
Tmljb3NpYTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5
ZXIuaDoKKyAgICAgICAgKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OmZsdXNoU3RhdGUpOgor
ICAgICAgICAoTmljb3NpYTo6Q29tcG9zaXRpb25MYXllcjo6YWNjZXNzUGVuZGluZyk6CisKIDIw
MjAtMTAtMjggIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgZGlhZ25vc3RpYyBsb2dnaW5nIGZvciBwbHVnLWlucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAppbmRl
eCBkYzNiMmE4M2M0MGQzMzYwZmIyOGI3MGIxYjc2ZGQwZTU3MDlhYmNmLi40ZjY4ZWJjNTQzY2Uz
NDg1YzkzZTBmNmUwNjVmMThhMjIyZjg5MDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtNzcsNiArNzcsOCBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXBvcnRFeHBvc2VkVW5maWxsZWRBcmVhKE1vbm90b25p
Y1RpbWUsIHVuc2lnbmVkIHVuZmlsbGVkQXJlYSkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBvcnRT
eW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b25pY1RpbWUsIE9wdGlvblNl
dDxTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbj4pIG92ZXJyaWRlOwogCisgICAgUmVmUHRyPEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7CisKIHByaXZh
dGU6CiAgICAgYm9vbCBpc1RocmVhZGVkU2Nyb2xsaW5nVHJlZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHByb3BhZ2F0ZVN5bmNocm9ub3VzU2Nyb2xsaW5nUmVh
c29ucyhjb25zdCBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4mKSBvdmVycmlkZTsKQEAgLTkxLDgg
KzkzLDYgQEAgcHJpdmF0ZToKIAogICAgIFNlY29uZHMgbWF4QWxsb3dhYmxlUmVuZGVyaW5nVXBk
YXRlRHVyYXRpb25Gb3JTeW5jaHJvbml6YXRpb24oKTsKIAotICAgIFJlZlB0cjxBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOwotCiAgICAgZW51bSBjbGFz
cyBTeW5jaHJvbml6YXRpb25TdGF0ZSA6IHVpbnQ4X3QgewogICAgICAgICBJZGxlLAogICAgICAg
ICBXYWl0aW5nRm9yUmVuZGVyaW5nVXBkYXRlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmlj
b3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcAppbmRleCA1NjJjZDg2ODExOWEwZmNl
MjkxMzQ1M2UwYWU5NmQ0MTk3ZWNjNDA0Li5jNjg4ZTMzNjk4ZWM4MjMxZTdiZDExNjU2MTg3NDM1
OWU5ZTRhZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNv
c2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVOaWNvc2lhLmNwcApAQCAtODksNiArODksMTYgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25z
dCBTY3IKICAgICAgICAgYXV0byogbGF5ZXIgPSBzdGF0aWNfY2FzdDxOaWNvc2lhOjpQbGF0Zm9y
bUxheWVyKj4oc2Nyb2xsaW5nU3RhdGVOb2RlLmZvb3RlckxheWVyKCkpOwogICAgICAgICBtX2Zv
b3RlckxheWVyID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29tcG9zaXRpb25MYXllcj4obGF5ZXIpOwog
ICAgIH0KKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsZWRDb250ZW50c0xheWVyKSkgewor
ICAgICAgICBhdXRvKiBzY3JvbGxMYXllciA9IHN0YXRpY19jYXN0PE5pY29zaWE6OlBsYXRmb3Jt
TGF5ZXIqPihzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSk7CisgICAgICAgIEFTU0VSVChzY3JvbGxM
YXllcik7CisgICAgICAgIGF1dG8mIGNvbXBvc2l0aW9uTGF5ZXIgPSBkb3duY2FzdDxOaWNvc2lh
OjpDb21wb3NpdGlvbkxheWVyPigqc2Nyb2xsTGF5ZXIpOworICAgICAgICBhdXRvIHVwZGF0ZVNj
b3BlID0gY29tcG9zaXRpb25MYXllci5jcmVhdGVVcGRhdGVTY29wZSgpOworICAgICAgICBjb21w
b3NpdGlvbkxheWVyLnVwZGF0ZVN0YXRlKFtub2RlSUQgPSBzY3JvbGxpbmdOb2RlSUQoKV0oTmlj
b3NpYTo6Q29tcG9zaXRpb25MYXllcjo6TGF5ZXJTdGF0ZSYgc3RhdGUpIHsKKyAgICAgICAgICAg
IHN0YXRlLnNjcm9sbGluZ05vZGVJRCA9IG5vZGVJRDsKKyAgICAgICAgICAgIHN0YXRlLmRlbHRh
LnNjcm9sbGluZ05vZGVDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiB2
b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpjb21taXRTdGF0ZUFm
dGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmgKaW5kZXgg
NjA0MDc5ODgwNjExMmVlNmVjODI1ODI2MjU3OGM5NDM0Y2JkN2QxZi4uNzBlYTFhOGI3OTE3Yjdh
MmFiZWVmZjQwOTAyZjQzY2M0YmFhNmVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3Np
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPiBjcmVhdGUo
U2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAg
IHZpcnR1YWwgflNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhKCk7CiAKKyAg
ICBSZWZQdHI8Tmljb3NpYTo6Q29tcG9zaXRpb25MYXllcj4gcm9vdENvbnRlbnRzTGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3Jvb3RDb250ZW50c0xheWVyOyB9CisKIHByaXZhdGU6CiAgICAgU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEoU2Nyb2xsaW5nVHJlZSYsIFNjcm9s
bGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU5pY29zaWEu
Y3BwCmluZGV4IDBhYzI5OTllZTYxYTY0Yjg2M2RiM2I1NmEzOWRhMDRiZGZiMzBmNzQuLjllOTI4
ZGM4ZmMwODM1ZWZkYjk1YjhkY2JlYWI3Y2U1NWJhMWUxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU5pY29zaWEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU5p
Y29zaWEuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KSAmJiBVU0UoTklDT1NJQSkKIAorI2luY2x1ZGUgIkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aCIKKyNpbmNsdWRlICJOaWNvc2lhUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlNjcm9sbGlu
Z1RyZWVGaXhlZE5vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVIb3N0aW5nTm9k
ZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmgi
CkBAIC03Myw2ICs3NSw2OCBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVO
aWNvc2lhOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdObwogICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK3VzaW5nIE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5
ZXI7CisKK3N0YXRpYyB2b2lkIGNvbGxlY3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludChWZWN0b3I8
UmVmUHRyPENvbXBvc2l0aW9uTGF5ZXI+PiYgbGF5ZXJzQXRQb2ludCwgUmVmUHRyPENvbXBvc2l0
aW9uTGF5ZXI+IHBhcmVudCwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCit7CisgICAgYm9vbCBj
aGlsZEV4aXN0c0F0UG9pbnQgPSBmYWxzZTsKKworICAgIHBhcmVudC0+YWNjZXNzUGVuZGluZyhb
Jl0oY29uc3QgQ29tcG9zaXRpb25MYXllcjo6TGF5ZXJTdGF0ZSYgc3RhdGUpIHsKKyAgICAgICAg
Zm9yIChhdXRvIGNoaWxkIDogc3RhdGUuY2hpbGRyZW4pIHsKKyAgICAgICAgICAgIGJvb2wgY29u
dGFpbnNQb2ludCA9IGZhbHNlOworICAgICAgICAgICAgRmxvYXRQb2ludCB0cmFuc2Zvcm1lZFBv
aW50OworICAgICAgICAgICAgY2hpbGQtPmFjY2Vzc1BlbmRpbmcoWyZdKGNvbnN0IENvbXBvc2l0
aW9uTGF5ZXI6OkxheWVyU3RhdGUmIGNoaWxkU3RhdGUpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IWNoaWxkU3RhdGUudHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgZmxvYXQgb3JpZ2luWCA9IGNoaWxkU3RhdGUuYW5j
aG9yUG9pbnQueCgpICogY2hpbGRTdGF0ZS5zaXplLndpZHRoKCk7CisgICAgICAgICAgICAgICAg
ZmxvYXQgb3JpZ2luWSA9IGNoaWxkU3RhdGUuYW5jaG9yUG9pbnQueSgpICogY2hpbGRTdGF0ZS5z
aXplLmhlaWdodCgpOworICAgICAgICAgICAgICAgIGF1dG8gdHJhbnNmb3JtID0gKihUcmFuc2Zv
cm1hdGlvbk1hdHJpeCgpCisgICAgICAgICAgICAgICAgICAgIC50cmFuc2xhdGUzZChvcmlnaW5Y
ICsgY2hpbGRTdGF0ZS5wb3NpdGlvbi54KCksIG9yaWdpblkgKyBjaGlsZFN0YXRlLnBvc2l0aW9u
LnkoKSwgY2hpbGRTdGF0ZS5hbmNob3JQb2ludC56KCkpCisgICAgICAgICAgICAgICAgICAgIC5t
dWx0aXBseShjaGlsZFN0YXRlLnRyYW5zZm9ybSkKKyAgICAgICAgICAgICAgICAgICAgLnRyYW5z
bGF0ZTNkKC1vcmlnaW5YLCAtb3JpZ2luWSwgLWNoaWxkU3RhdGUuYW5jaG9yUG9pbnQueigpKS5p
bnZlcnNlKCkpOworICAgICAgICAgICAgICAgIGF1dG8gY2hpbGRQb2ludCA9IHRyYW5zZm9ybS5w
cm9qZWN0UG9pbnQocG9pbnQpOworICAgICAgICAgICAgICAgIGlmIChGbG9hdFJlY3QoRmxvYXRQ
b2ludCgpLCBjaGlsZFN0YXRlLnNpemUpLmNvbnRhaW5zKGNoaWxkUG9pbnQpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGNvbnRhaW5zUG9pbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB0
cmFuc2Zvcm1lZFBvaW50LnNldChjaGlsZFBvaW50LngoKSwgY2hpbGRQb2ludC55KCkpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYgKGNvbnRhaW5z
UG9pbnQpIHsKKyAgICAgICAgICAgICAgICBjaGlsZEV4aXN0c0F0UG9pbnQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIGNvbGxlY3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludChsYXllcnNBdFBvaW50
LCBjaGlsZCwgdHJhbnNmb3JtZWRQb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9KTsKKworICAgIGlmICghY2hpbGRFeGlzdHNBdFBvaW50KQorICAgICAgICBsYXllcnNBdFBv
aW50LmFwcGVuZChwYXJlbnQpOworfQorCitSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9s
bGluZ1RyZWVOaWNvc2lhOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQoRmxvYXRQb2ludCBwb2ludCkK
K3sKKyAgICBhdXRvKiByb290U2Nyb2xsaW5nTm9kZSA9IHJvb3ROb2RlKCk7CisgICAgaWYgKCFy
b290U2Nyb2xsaW5nTm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBMYXllclRy
ZWVIaXRUZXN0TG9ja2VyIGxheWVyTG9ja2VyKG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IuZ2V0KCkp
OworCisgICAgYXV0byByb290Q29udGVudHNMYXllciA9IHN0YXRpY19jYXN0PFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhKj4ocm9vdFNjcm9sbGluZ05vZGUpLT5yb290Q29u
dGVudHNMYXllcigpOworICAgIFZlY3RvcjxSZWZQdHI8Q29tcG9zaXRpb25MYXllcj4+IGxheWVy
c0F0UG9pbnQ7CisgICAgY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBvaW50KGxheWVyc0F0UG9p
bnQsIHJvb3RDb250ZW50c0xheWVyLCBwb2ludCk7CisKKyAgICBTY3JvbGxpbmdUcmVlTm9kZSog
cmV0dXJuTm9kZSA9IG51bGxwdHI7CisgICAgZm9yIChhdXRvIGxheWVyIDogV1RGOjptYWtlUmV2
ZXJzZWRSYW5nZShsYXllcnNBdFBvaW50KSkgeworICAgICAgICBsYXllci0+YWNjZXNzQ29tbWl0
dGVkKFsmXShjb25zdCBDb21wb3NpdGlvbkxheWVyOjpMYXllclN0YXRlJiBzdGF0ZSkgeworICAg
ICAgICAgICAgYXV0byogc2Nyb2xsaW5nTm9kZSA9IG5vZGVGb3JJRChzdGF0ZS5zY3JvbGxpbmdO
b2RlSUQpOworICAgICAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPihz
Y3JvbGxpbmdOb2RlKSkKKyAgICAgICAgICAgICAgICByZXR1cm5Ob2RlID0gc2Nyb2xsaW5nTm9k
ZTsKKyAgICAgICAgfSk7CisgICAgICAgIGlmIChyZXR1cm5Ob2RlKQorICAgICAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgcmV0dXJuIHJldHVybk5vZGUgPyByZXR1cm5Ob2RlIDogcm9vdFNj
cm9sbGluZ05vZGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIFVTRShOSUNPU0lBKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlTmljb3NpYS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlTmljb3Np
YS5oCmluZGV4IDViODI2Y2M2YTc4Y2I4MGExMjkzYjVkNTVmMGYwZWIyYWI0YzdkMzguLjE2ZWEz
YjM1NWJjMDM5OWU2NWRkMmJiNGU2NGQzNDA1NTU2Y2FlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU5pY29zaWEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNv
c2lhLmgKQEAgLTQxLDYgKzQxLDggQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBTY3JvbGxpbmdU
cmVlTmljb3NpYShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAKICAgICBSZWY8U2Nyb2xs
aW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworCisgICAgUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2Rl
PiBzY3JvbGxpbmdOb2RlRm9yUG9pbnQoRmxvYXRQb2ludCkgZmluYWw7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCmluZGV4IDY0ZDhhNThjMTQxZWM1Nzg5ZGFlYzBi
ODljMTdmN2M5OWU1OGIxMDQuLjNiYzFkZjkxYmYyODdhNTNjM2ZmM2YxZWRmOTA2ZTI4MDA4ZDkx
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZU5pY29zaWEuY3BwCkBAIC01Niw2ICs1NiwyMyBAQCBTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZU5pYwogCiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6flNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhKCkgPSBkZWZhdWx0OwogCit2b2lk
IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpjb21taXRTdGF0ZUJl
Zm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQoreworICAg
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKHN0
YXRlTm9kZSk7CisKKyAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSBkb3duY2Fz
dDxTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4oc3RhdGVOb2RlKTsKKyAgICBp
ZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikpIHsKKyAgICAgICAgYXV0byogc2Ny
b2xsTGF5ZXIgPSBzdGF0aWNfY2FzdDxOaWNvc2lhOjpQbGF0Zm9ybUxheWVyKj4oc2Nyb2xsZWRD
b250ZW50c0xheWVyKCkpOworICAgICAgICBBU1NFUlQoc2Nyb2xsTGF5ZXIpOworICAgICAgICBh
dXRvJiBjb21wb3NpdGlvbkxheWVyID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29tcG9zaXRpb25MYXll
cj4oKnNjcm9sbExheWVyKTsKKyAgICAgICAgYXV0byB1cGRhdGVTY29wZSA9IGNvbXBvc2l0aW9u
TGF5ZXIuY3JlYXRlVXBkYXRlU2NvcGUoKTsKKyAgICAgICAgY29tcG9zaXRpb25MYXllci51cGRh
dGVTdGF0ZShbbm9kZUlEID0gc2Nyb2xsaW5nTm9kZUlEKCldKE5pY29zaWE6OkNvbXBvc2l0aW9u
TGF5ZXI6OkxheWVyU3RhdGUmIHN0YXRlKSB7CisgICAgICAgICAgICBzdGF0ZS5zY3JvbGxpbmdO
b2RlSUQgPSBub2RlSUQ7CisgICAgICAgICAgICBzdGF0ZS5kZWx0YS5zY3JvbGxpbmdOb2RlQ2hh
bmdlZCA9IHRydWU7CisgICAgICAgIH0pOworICAgIH0KK30KKwogdm9pZCBTY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNv
bnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewogICAgIFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihzdGF0ZU5vZGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
Tmljb3NpYS5oCmluZGV4IDNiZDFhNDUzMzdkMDA2Mzc4OGU1MDE4NTczZmEwMWFlMzAwZWFmZjIu
LmY1OGEwNGRlMDMxNDhiMTU5ZDZkNTBlZTA1YmJiYTQwZTExOWZjNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU5pY29zaWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmgKQEAg
LTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlTmljb3NpYShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZUlEKTsK
IAorICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0
ZU5vZGUmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25z
dCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKIAogICAgIEZsb2F0UG9pbnQgYWRqdXN0
ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5oCmluZGV4IDJlMjk2Mzc3NWI5
OTY2ODdhZGJhZjdiOGVhZWVmNzljYTI4ZjA3NTcuLjU1ZTg2ZmE0YjExYTU2MDY1MGI3NGYyZDkx
Y2ZhZDI0NTAyM2NlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9ybUxheWVyLmgKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0ZWRCYWNraW5nU3RvcmVDbGllbnQuaCIK
ICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiTmljb3NpYVNjZW5lSW50
ZWdyYXRpb24uaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KQEAgLTEzNCw2ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAg
IGJvb2wgYW5pbWF0ZWRCYWNraW5nU3RvcmVDbGllbnRDaGFuZ2VkIDogMTsKICAgICAgICAgICAg
ICAgICAgICAgYm9vbCByZXBhaW50Q291bnRlckNoYW5nZWQgOiAxOwogICAgICAgICAgICAgICAg
ICAgICBib29sIGRlYnVnQm9yZGVyQ2hhbmdlZCA6IDE7CisgICAgICAgICAgICAgICAgICAgIGJv
b2wgc2Nyb2xsaW5nTm9kZUNoYW5nZWQgOiAxOwogICAgICAgICAgICAgICAgIH07CiAgICAgICAg
ICAgICAgICAgdWludDMyX3QgdmFsdWUgeyAwIH07CiAgICAgICAgICAgICB9OwpAQCAtMTk4LDYg
KzIwMCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGZsb2F0IHdpZHRoIHsgMCB9OwogICAgICAg
ICAgICAgYm9vbCB2aXNpYmxlIHsgZmFsc2UgfTsKICAgICAgICAgfSBkZWJ1Z0JvcmRlcjsKKwor
ICAgICAgICBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEIHsgMCB9Owog
ICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtMjY2LDYgKzI3MCw5IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKHBlbmRpbmcuZGVsdGEuZGVidWdCb3JkZXJDaGFuZ2VkKQogICAg
ICAgICAgICAgc3RhZ2luZy5kZWJ1Z0JvcmRlciA9IHBlbmRpbmcuZGVidWdCb3JkZXI7CiAKKyAg
ICAgICAgaWYgKHBlbmRpbmcuZGVsdGEuc2Nyb2xsaW5nTm9kZUNoYW5nZWQpCisgICAgICAgICAg
ICBzdGFnaW5nLnNjcm9sbGluZ05vZGVJRCA9IHBlbmRpbmcuc2Nyb2xsaW5nTm9kZUlEOworCiAg
ICAgICAgIGlmIChwZW5kaW5nLmRlbHRhLmJhY2tpbmdTdG9yZUNoYW5nZWQpCiAgICAgICAgICAg
ICBzdGFnaW5nLmJhY2tpbmdTdG9yZSA9IHBlbmRpbmcuYmFja2luZ1N0b3JlOwogICAgICAgICBp
ZiAocGVuZGluZy5kZWx0YS5jb250ZW50TGF5ZXJDaGFuZ2VkKQpAQCAtMjkwLDYgKzI5NywxMyBA
QCBwdWJsaWM6CiAgICAgICAgIGZ1bmN0b3IobV9zdGF0ZS5jb21taXR0ZWQpOwogICAgIH0KIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBhY2Nlc3NQZW5kaW5nKGNvbnN0IFQm
IGZ1bmN0b3IpCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihQbGF0Zm9ybUxheWVy
OjptX3N0YXRlLmxvY2spOworICAgICAgICBmdW5jdG9yKG1fc3RhdGUucGVuZGluZyk7CisgICAg
fQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICB2b2lkIGFjY2Vzc0NvbW1pdHRlZChj
b25zdCBUJiBmdW5jdG9yKQogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412918</attachid>
            <date>2020-11-02 07:43:27 -0800</date>
            <delta_ts>2020-11-09 01:49:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214179-20201102154326.patch</filename>
            <type>text/plain</type>
            <size>13893</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVhZjFmOTJlNTJlY2Vj
ZGViN2EzOTM5NGJjMzM4NzcxMDYzMzAyYi4uZjA1Mjk3NzRkZjI3YmI1ZWVkYWIyYzVlNmNmNDll
ZDgxYjhlZmM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTAyICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFNjcm9sbGlu
ZyB3aXRoIG1vdXNlIHdoZWVsIGRvZXNuJ3Qgd29yayBvbiBpZnJhbWVzIHdpdGggYXN5bmMgc2Ny
b2xsaW5nIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQgaW4K
KyAgICAgICAgU2Nyb2xsaW5nVHJlZU5pY29zaWEuIFRoaXMgZml4ZXMgb3ZlcmZsb3cgYW5kIGlm
cmFtZSBzY3JvbGxpbmcgd2hlbgorICAgICAgICBhc3luYyBzY3JvbGxpbmcgaXMgZW5hYmxlZCBv
biBXUEUgYW5kIEdUSyBwb3J0cy4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmNvbW1pdFN0YXRlQmVmb3Jl
Q2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxl
Y3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTmljb3NpYTo6c2Nyb2xsaW5nTm9kZUZvclBvaW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
Tmljb3NpYTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5
ZXIuaDoKKyAgICAgICAgKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OmZsdXNoU3RhdGUpOgor
ICAgICAgICAoTmljb3NpYTo6Q29tcG9zaXRpb25MYXllcjo6YWNjZXNzUGVuZGluZyk6CisKIDIw
MjAtMTEtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHTElCXSBSRUdSRVNTSU9OKHIyNjkxNDQpIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsSW50b1ZpZXctc2Nyb2xsTWFyZ2luLmh0bWwgaXMg
ZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaAppbmRleCBkYzNiMmE4M2M0MGQzMzYwZmIyOGI3MGIxYjc2ZGQwZTU3
MDlhYmNmLi40ZjY4ZWJjNTQzY2UzNDg1YzkzZTBmNmUwNjVmMThhMjIyZjg5MDc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuaApAQCAtNzcsNiArNzcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXBvcnRFeHBvc2Vk
VW5maWxsZWRBcmVhKE1vbm90b25pY1RpbWUsIHVuc2lnbmVkIHVuZmlsbGVkQXJlYSkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCByZXBvcnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1v
bm90b25pY1RpbWUsIE9wdGlvblNldDxTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbj4pIG92ZXJy
aWRlOwogCisgICAgUmVmUHRyPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3I7CisKIHByaXZhdGU6CiAgICAgYm9vbCBpc1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHByb3BhZ2F0ZVN5
bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyhjb25zdCBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4m
KSBvdmVycmlkZTsKQEAgLTkxLDggKzkzLDYgQEAgcHJpdmF0ZToKIAogICAgIFNlY29uZHMgbWF4
QWxsb3dhYmxlUmVuZGVyaW5nVXBkYXRlRHVyYXRpb25Gb3JTeW5jaHJvbml6YXRpb24oKTsKIAot
ICAgIFJlZlB0cjxBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5h
dG9yOwotCiAgICAgZW51bSBjbGFzcyBTeW5jaHJvbml6YXRpb25TdGF0ZSA6IHVpbnQ4X3Qgewog
ICAgICAgICBJZGxlLAogICAgICAgICBXYWl0aW5nRm9yUmVuZGVyaW5nVXBkYXRlLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcApp
bmRleCA3NzMxYjc1NGYzZDdiYTZkMjgzZGU2MDYxMThkYmM5OTEzOTdiMWZkLi40Yjk4NjA3YjJh
NjEwZmM5YzI1YjA2NmJlZjA2MmRkMzYxN2QzODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVO
aWNvc2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcApAQCAtODksNiArODksMTYg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3Rh
dGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3IKICAgICAgICAgYXV0byogbGF5ZXIgPSBzdGF0aWNf
Y2FzdDxOaWNvc2lhOjpQbGF0Zm9ybUxheWVyKj4oc2Nyb2xsaW5nU3RhdGVOb2RlLmZvb3Rlckxh
eWVyKCkpOwogICAgICAgICBtX2Zvb3RlckxheWVyID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29tcG9z
aXRpb25MYXllcj4obGF5ZXIpOwogICAgIH0KKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3BlcnR5OjpTY3JvbGxlZENv
bnRlbnRzTGF5ZXIpKSB7CisgICAgICAgIGF1dG8qIHNjcm9sbExheWVyID0gc3RhdGljX2Nhc3Q8
Tmljb3NpYTo6UGxhdGZvcm1MYXllcio+KHNjcm9sbGVkQ29udGVudHNMYXllcigpKTsKKyAgICAg
ICAgQVNTRVJUKHNjcm9sbExheWVyKTsKKyAgICAgICAgYXV0byYgY29tcG9zaXRpb25MYXllciA9
IGRvd25jYXN0PE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI+KCpzY3JvbGxMYXllcik7CisgICAg
ICAgIGF1dG8gdXBkYXRlU2NvcGUgPSBjb21wb3NpdGlvbkxheWVyLmNyZWF0ZVVwZGF0ZVNjb3Bl
KCk7CisgICAgICAgIGNvbXBvc2l0aW9uTGF5ZXIudXBkYXRlU3RhdGUoW25vZGVJRCA9IHNjcm9s
bGluZ05vZGVJRCgpXShOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyOjpMYXllclN0YXRlJiBzdGF0
ZSkgeworICAgICAgICAgICAgc3RhdGUuc2Nyb2xsaW5nTm9kZUlEID0gbm9kZUlEOworICAgICAg
ICAgICAgc3RhdGUuZGVsdGEuc2Nyb2xsaW5nTm9kZUNoYW5nZWQgPSB0cnVlOworICAgICAgICB9
KTsKKyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29z
aWE6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0
YXRlTm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU5pY29zaWEuaAppbmRleCA2MDQwNzk4ODA2MTEyZWU2ZWM4MjU4MjYyNTc4Yzk0MzRjYmQ3ZDFm
Li43MGVhMWE4Yjc5MTdiN2EyYWJlZWZmNDA5MDJmNDNjYzRiYWE2ZWRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVOaWNvc2lhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5oCkBAIC00Nyw2
ICs0Nyw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGU+IGNyZWF0ZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCk7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU5pY29zaWEoKTsKIAorICAgIFJlZlB0cjxOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyPiByb290
Q29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdENvbnRlbnRzTGF5ZXI7IH0KKwog
cHJpdmF0ZToKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYShTY3Jv
bGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJl
ZU5pY29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3Jv
bGxpbmdUcmVlTmljb3NpYS5jcHAKaW5kZXggMGFjMjk5OWVlNjFhNjRiODYzZGIzYjU2YTM5ZGEw
NGJkZmIzMGY3NC4uOWU5MjhkYzhmYzA4MzVlZmRiOTViOGRjYmVhYjdjZTU1YmExZTExNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlTmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3Np
YS9TY3JvbGxpbmdUcmVlTmljb3NpYS5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2lmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpICYmIFVTRShOSUNPU0lBKQogCisjaW5jbHVkZSAiQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIk5pY29zaWFQbGF0Zm9ybUxheWVyLmgiCiAj
aW5jbHVkZSAiU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1Ry
ZWVGcmFtZUhvc3RpbmdOb2RlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU5pY29zaWEuaCIKQEAgLTczLDYgKzc1LDY4IEBAIFJlZjxTY3JvbGxpbmdUcmVlTm9k
ZT4gU2Nyb2xsaW5nVHJlZU5pY29zaWE6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z05vCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAordXNpbmcgTmljb3Np
YTo6Q29tcG9zaXRpb25MYXllcjsKKworc3RhdGljIHZvaWQgY29sbGVjdERlc2NlbmRhbnRMYXll
cnNBdFBvaW50KFZlY3RvcjxSZWZQdHI8Q29tcG9zaXRpb25MYXllcj4+JiBsYXllcnNBdFBvaW50
LCBSZWZQdHI8Q29tcG9zaXRpb25MYXllcj4gcGFyZW50LCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCkKK3sKKyAgICBib29sIGNoaWxkRXhpc3RzQXRQb2ludCA9IGZhbHNlOworCisgICAgcGFyZW50
LT5hY2Nlc3NQZW5kaW5nKFsmXShjb25zdCBDb21wb3NpdGlvbkxheWVyOjpMYXllclN0YXRlJiBz
dGF0ZSkgeworICAgICAgICBmb3IgKGF1dG8gY2hpbGQgOiBzdGF0ZS5jaGlsZHJlbikgeworICAg
ICAgICAgICAgYm9vbCBjb250YWluc1BvaW50ID0gZmFsc2U7CisgICAgICAgICAgICBGbG9hdFBv
aW50IHRyYW5zZm9ybWVkUG9pbnQ7CisgICAgICAgICAgICBjaGlsZC0+YWNjZXNzUGVuZGluZyhb
Jl0oY29uc3QgQ29tcG9zaXRpb25MYXllcjo6TGF5ZXJTdGF0ZSYgY2hpbGRTdGF0ZSkgeworICAg
ICAgICAgICAgICAgIGlmICghY2hpbGRTdGF0ZS50cmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBmbG9hdCBvcmlnaW5Y
ID0gY2hpbGRTdGF0ZS5hbmNob3JQb2ludC54KCkgKiBjaGlsZFN0YXRlLnNpemUud2lkdGgoKTsK
KyAgICAgICAgICAgICAgICBmbG9hdCBvcmlnaW5ZID0gY2hpbGRTdGF0ZS5hbmNob3JQb2ludC55
KCkgKiBjaGlsZFN0YXRlLnNpemUuaGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgYXV0byB0cmFu
c2Zvcm0gPSAqKFRyYW5zZm9ybWF0aW9uTWF0cml4KCkKKyAgICAgICAgICAgICAgICAgICAgLnRy
YW5zbGF0ZTNkKG9yaWdpblggKyBjaGlsZFN0YXRlLnBvc2l0aW9uLngoKSwgb3JpZ2luWSArIGNo
aWxkU3RhdGUucG9zaXRpb24ueSgpLCBjaGlsZFN0YXRlLmFuY2hvclBvaW50LnooKSkKKyAgICAg
ICAgICAgICAgICAgICAgLm11bHRpcGx5KGNoaWxkU3RhdGUudHJhbnNmb3JtKQorICAgICAgICAg
ICAgICAgICAgICAudHJhbnNsYXRlM2QoLW9yaWdpblgsIC1vcmlnaW5ZLCAtY2hpbGRTdGF0ZS5h
bmNob3JQb2ludC56KCkpLmludmVyc2UoKSk7CisgICAgICAgICAgICAgICAgYXV0byBjaGlsZFBv
aW50ID0gdHJhbnNmb3JtLnByb2plY3RQb2ludChwb2ludCk7CisgICAgICAgICAgICAgICAgaWYg
KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGNoaWxkU3RhdGUuc2l6ZSkuY29udGFpbnMoY2hpbGRQ
b2ludCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGFpbnNQb2ludCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkUG9pbnQuc2V0KGNoaWxkUG9pbnQueCgpLCBjaGls
ZFBvaW50LnkoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBpZiAoY29udGFpbnNQb2ludCkgeworICAgICAgICAgICAgICAgIGNoaWxkRXhpc3RzQXRQ
b2ludCA9IHRydWU7CisgICAgICAgICAgICAgICAgY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBv
aW50KGxheWVyc0F0UG9pbnQsIGNoaWxkLCB0cmFuc2Zvcm1lZFBvaW50KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgaWYgKCFjaGlsZEV4aXN0c0F0UG9pbnQpCisg
ICAgICAgIGxheWVyc0F0UG9pbnQuYXBwZW5kKHBhcmVudCk7Cit9CisKK1JlZlB0cjxTY3JvbGxp
bmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZU5pY29zaWE6OnNjcm9sbGluZ05vZGVGb3JQb2ludChG
bG9hdFBvaW50IHBvaW50KQoreworICAgIGF1dG8qIHJvb3RTY3JvbGxpbmdOb2RlID0gcm9vdE5v
ZGUoKTsKKyAgICBpZiAoIXJvb3RTY3JvbGxpbmdOb2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIExheWVyVHJlZUhpdFRlc3RMb2NrZXIgbGF5ZXJMb2NrZXIobV9zY3JvbGxpbmdD
b29yZGluYXRvci5nZXQoKSk7CisKKyAgICBhdXRvIHJvb3RDb250ZW50c0xheWVyID0gc3RhdGlj
X2Nhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEqPihyb290U2Nyb2xs
aW5nTm9kZSktPnJvb3RDb250ZW50c0xheWVyKCk7CisgICAgVmVjdG9yPFJlZlB0cjxDb21wb3Np
dGlvbkxheWVyPj4gbGF5ZXJzQXRQb2ludDsKKyAgICBjb2xsZWN0RGVzY2VuZGFudExheWVyc0F0
UG9pbnQobGF5ZXJzQXRQb2ludCwgcm9vdENvbnRlbnRzTGF5ZXIsIHBvaW50KTsKKworICAgIFNj
cm9sbGluZ1RyZWVOb2RlKiByZXR1cm5Ob2RlID0gbnVsbHB0cjsKKyAgICBmb3IgKGF1dG8gbGF5
ZXIgOiBXVEY6Om1ha2VSZXZlcnNlZFJhbmdlKGxheWVyc0F0UG9pbnQpKSB7CisgICAgICAgIGxh
eWVyLT5hY2Nlc3NDb21taXR0ZWQoWyZdKGNvbnN0IENvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3Rh
dGUmIHN0YXRlKSB7CisgICAgICAgICAgICBhdXRvKiBzY3JvbGxpbmdOb2RlID0gbm9kZUZvcklE
KHN0YXRlLnNjcm9sbGluZ05vZGVJRCk7CisgICAgICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU+KHNjcm9sbGluZ05vZGUpKQorICAgICAgICAgICAgICAgIHJldHVybk5v
ZGUgPSBzY3JvbGxpbmdOb2RlOworICAgICAgICB9KTsKKyAgICAgICAgaWYgKHJldHVybk5vZGUp
CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0dXJuTm9kZSA/IHJl
dHVybk5vZGUgOiByb290U2Nyb2xsaW5nTm9kZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgVVNFKE5JQ09TSUEpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGlu
Z1RyZWVOaWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVOaWNvc2lhLmgKaW5kZXggNWI4MjZjYzZhNzhjYjgwYTEyOTNiNWQ1NWYwZjBl
YjJhYjRjN2QzOC4uMTZlYTNiMzU1YmMwMzk5ZTY1ZGQyYmI0ZTY0ZDM0MDU1NTZjYWU3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nVHJlZU5pY29zaWEuaApAQCAtNDEsNiArNDEsOCBAQCBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFNjcm9sbGluZ1RyZWVOaWNvc2lhKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsK
IAogICAgIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Ny
b2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisKKyAgICBSZWZQdHI8
U2Nyb2xsaW5nVHJlZU5vZGU+IHNjcm9sbGluZ05vZGVGb3JQb2ludChGbG9hdFBvaW50KSBmaW5h
bDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU5pY29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKaW5kZXggM2IzMjQ4
NmY0Y2M3NzZhNjJlYjVhODZhN2U3NjBkMjE5ZDFiYjgwOC4uNDQ2Yjc1ZWZmOGIxYTAwZDdiMjQ0
NGYzZTk3M2Y5OTNlNGNmOTMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKQEAgLTU2LDYgKzU2LDIzIEBAIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTmljCiAKIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVOaWNvc2lhOjp+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEoKSA9
IGRlZmF1bHQ7CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29z
aWE6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBz
dGF0ZU5vZGUpCit7CisgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRl
QmVmb3JlQ2hpbGRyZW4oc3RhdGVOb2RlKTsKKworICAgIGNvbnN0IGF1dG8mIHNjcm9sbGluZ1N0
YXRlTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlPihz
dGF0ZU5vZGUpOworICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OlNjcm9sbGVkQ29udGVudHNMYXllcikpIHsK
KyAgICAgICAgYXV0byogc2Nyb2xsTGF5ZXIgPSBzdGF0aWNfY2FzdDxOaWNvc2lhOjpQbGF0Zm9y
bUxheWVyKj4oc2Nyb2xsZWRDb250ZW50c0xheWVyKCkpOworICAgICAgICBBU1NFUlQoc2Nyb2xs
TGF5ZXIpOworICAgICAgICBhdXRvJiBjb21wb3NpdGlvbkxheWVyID0gZG93bmNhc3Q8Tmljb3Np
YTo6Q29tcG9zaXRpb25MYXllcj4oKnNjcm9sbExheWVyKTsKKyAgICAgICAgYXV0byB1cGRhdGVT
Y29wZSA9IGNvbXBvc2l0aW9uTGF5ZXIuY3JlYXRlVXBkYXRlU2NvcGUoKTsKKyAgICAgICAgY29t
cG9zaXRpb25MYXllci51cGRhdGVTdGF0ZShbbm9kZUlEID0gc2Nyb2xsaW5nTm9kZUlEKCldKE5p
Y29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGUmIHN0YXRlKSB7CisgICAgICAgICAg
ICBzdGF0ZS5zY3JvbGxpbmdOb2RlSUQgPSBub2RlSUQ7CisgICAgICAgICAgICBzdGF0ZS5kZWx0
YS5zY3JvbGxpbmdOb2RlQ2hhbmdlZCA9IHRydWU7CisgICAgICAgIH0pOworICAgIH0KK30KKwog
dm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3Rh
dGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewog
ICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJD
aGlsZHJlbihzdGF0ZU5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5oCmluZGV4IDNiZDFhNDUzMzdkMDA2Mzc4OGU1MDE4
NTczZmEwMWFlMzAwZWFmZjIuLmY1OGEwNGRlMDMxNDhiMTU5ZDZkNTBlZTA1YmJiYTQwZTExOWZj
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVOaWNvc2lhLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYShTY3JvbGxpbmdUcmVlJiwg
U2Nyb2xsaW5nTm9kZUlEKTsKIAorICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihj
b25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFN0YXRl
QWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKIAogICAg
IEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Ny
b2xsQ2xhbXBpbmcpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5o
CmluZGV4IDJlMjk2Mzc3NWI5OTY2ODdhZGJhZjdiOGVhZWVmNzljYTI4ZjA3NTcuLjU1ZTg2ZmE0
YjExYTU2MDY1MGI3NGYyZDkxY2ZhZDI0NTAyM2NlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9y
bUxheWVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0ZWRCYWNr
aW5nU3RvcmVDbGllbnQuaCIKICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0aW9uLmgiCiAjaW5jbHVk
ZSAiTmljb3NpYVNjZW5lSW50ZWdyYXRpb24uaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgog
I2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTEzNCw2ICsxMzUsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWRCYWNraW5nU3RvcmVDbGllbnRDaGFuZ2Vk
IDogMTsKICAgICAgICAgICAgICAgICAgICAgYm9vbCByZXBhaW50Q291bnRlckNoYW5nZWQgOiAx
OwogICAgICAgICAgICAgICAgICAgICBib29sIGRlYnVnQm9yZGVyQ2hhbmdlZCA6IDE7CisgICAg
ICAgICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nTm9kZUNoYW5nZWQgOiAxOwogICAgICAgICAg
ICAgICAgIH07CiAgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsdWUgeyAwIH07CiAgICAgICAg
ICAgICB9OwpAQCAtMTk4LDYgKzIwMCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGZsb2F0IHdp
ZHRoIHsgMCB9OwogICAgICAgICAgICAgYm9vbCB2aXNpYmxlIHsgZmFsc2UgfTsKICAgICAgICAg
fSBkZWJ1Z0JvcmRlcjsKKworICAgICAgICBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xs
aW5nTm9kZUlEIHsgMCB9OwogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAt
MjY2LDYgKzI3MCw5IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKHBlbmRpbmcuZGVsdGEuZGVidWdC
b3JkZXJDaGFuZ2VkKQogICAgICAgICAgICAgc3RhZ2luZy5kZWJ1Z0JvcmRlciA9IHBlbmRpbmcu
ZGVidWdCb3JkZXI7CiAKKyAgICAgICAgaWYgKHBlbmRpbmcuZGVsdGEuc2Nyb2xsaW5nTm9kZUNo
YW5nZWQpCisgICAgICAgICAgICBzdGFnaW5nLnNjcm9sbGluZ05vZGVJRCA9IHBlbmRpbmcuc2Ny
b2xsaW5nTm9kZUlEOworCiAgICAgICAgIGlmIChwZW5kaW5nLmRlbHRhLmJhY2tpbmdTdG9yZUNo
YW5nZWQpCiAgICAgICAgICAgICBzdGFnaW5nLmJhY2tpbmdTdG9yZSA9IHBlbmRpbmcuYmFja2lu
Z1N0b3JlOwogICAgICAgICBpZiAocGVuZGluZy5kZWx0YS5jb250ZW50TGF5ZXJDaGFuZ2VkKQpA
QCAtMjkwLDYgKzI5NywxMyBAQCBwdWJsaWM6CiAgICAgICAgIGZ1bmN0b3IobV9zdGF0ZS5jb21t
aXR0ZWQpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBhY2Nl
c3NQZW5kaW5nKGNvbnN0IFQmIGZ1bmN0b3IpCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihQbGF0Zm9ybUxheWVyOjptX3N0YXRlLmxvY2spOworICAgICAgICBmdW5jdG9yKG1fc3Rh
dGUucGVuZGluZyk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICB2b2lk
IGFjY2Vzc0NvbW1pdHRlZChjb25zdCBUJiBmdW5jdG9yKQogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413569</attachid>
            <date>2020-11-09 01:50:01 -0800</date>
            <delta_ts>2020-11-09 02:21:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214179-20201109094959.patch</filename>
            <type>text/plain</type>
            <size>13893</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVhZjFmOTJlNTJlY2Vj
ZGViN2EzOTM5NGJjMzM4NzcxMDYzMzAyYi4uZjkwYWRmMmMzYzQ3ODNiZTQ5OWYzMTUwODU3MmVk
OWYzZmE4MWQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTAyICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFNjcm9sbGlu
ZyB3aXRoIG1vdXNlIHdoZWVsIGRvZXNuJ3Qgd29yayBvbiBpZnJhbWVzIHdpdGggYXN5bmMgc2Ny
b2xsaW5nIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IMW9YW4gRG9iZXLFoWVrLgorCisg
ICAgICAgIEltcGxlbWVudCBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQgaW4K
KyAgICAgICAgU2Nyb2xsaW5nVHJlZU5pY29zaWEuIFRoaXMgZml4ZXMgb3ZlcmZsb3cgYW5kIGlm
cmFtZSBzY3JvbGxpbmcgd2hlbgorICAgICAgICBhc3luYyBzY3JvbGxpbmcgaXMgZW5hYmxlZCBv
biBXUEUgYW5kIEdUSyBwb3J0cy4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmNvbW1pdFN0YXRlQmVmb3Jl
Q2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9u
aWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxl
Y3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTmljb3NpYTo6c2Nyb2xsaW5nTm9kZUZvclBvaW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVOaWNvc2lhLmg6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
Tmljb3NpYTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5
ZXIuaDoKKyAgICAgICAgKE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OmZsdXNoU3RhdGUpOgor
ICAgICAgICAoTmljb3NpYTo6Q29tcG9zaXRpb25MYXllcjo6YWNjZXNzUGVuZGluZyk6CisKIDIw
MjAtMTEtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHTElCXSBSRUdSRVNTSU9OKHIyNjkxNDQpIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsSW50b1ZpZXctc2Nyb2xsTWFyZ2luLmh0bWwgaXMg
ZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaAppbmRleCBkYzNiMmE4M2M0MGQzMzYwZmIyOGI3MGIxYjc2ZGQwZTU3
MDlhYmNmLi40ZjY4ZWJjNTQzY2UzNDg1YzkzZTBmNmUwNjVmMThhMjIyZjg5MDc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuaApAQCAtNzcsNiArNzcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXBvcnRFeHBvc2Vk
VW5maWxsZWRBcmVhKE1vbm90b25pY1RpbWUsIHVuc2lnbmVkIHVuZmlsbGVkQXJlYSkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCByZXBvcnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1v
bm90b25pY1RpbWUsIE9wdGlvblNldDxTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbj4pIG92ZXJy
aWRlOwogCisgICAgUmVmUHRyPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3I7CisKIHByaXZhdGU6CiAgICAgYm9vbCBpc1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHByb3BhZ2F0ZVN5
bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyhjb25zdCBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4m
KSBvdmVycmlkZTsKQEAgLTkxLDggKzkzLDYgQEAgcHJpdmF0ZToKIAogICAgIFNlY29uZHMgbWF4
QWxsb3dhYmxlUmVuZGVyaW5nVXBkYXRlRHVyYXRpb25Gb3JTeW5jaHJvbml6YXRpb24oKTsKIAot
ICAgIFJlZlB0cjxBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5h
dG9yOwotCiAgICAgZW51bSBjbGFzcyBTeW5jaHJvbml6YXRpb25TdGF0ZSA6IHVpbnQ4X3Qgewog
ICAgICAgICBJZGxlLAogICAgICAgICBXYWl0aW5nRm9yUmVuZGVyaW5nVXBkYXRlLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcApp
bmRleCA3NzMxYjc1NGYzZDdiYTZkMjgzZGU2MDYxMThkYmM5OTEzOTdiMWZkLi40Yjk4NjA3YjJh
NjEwZmM5YzI1YjA2NmJlZjA2MmRkMzYxN2QzODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVO
aWNvc2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcApAQCAtODksNiArODksMTYg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3Rh
dGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3IKICAgICAgICAgYXV0byogbGF5ZXIgPSBzdGF0aWNf
Y2FzdDxOaWNvc2lhOjpQbGF0Zm9ybUxheWVyKj4oc2Nyb2xsaW5nU3RhdGVOb2RlLmZvb3Rlckxh
eWVyKCkpOwogICAgICAgICBtX2Zvb3RlckxheWVyID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29tcG9z
aXRpb25MYXllcj4obGF5ZXIpOwogICAgIH0KKyAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3BlcnR5OjpTY3JvbGxlZENv
bnRlbnRzTGF5ZXIpKSB7CisgICAgICAgIGF1dG8qIHNjcm9sbExheWVyID0gc3RhdGljX2Nhc3Q8
Tmljb3NpYTo6UGxhdGZvcm1MYXllcio+KHNjcm9sbGVkQ29udGVudHNMYXllcigpKTsKKyAgICAg
ICAgQVNTRVJUKHNjcm9sbExheWVyKTsKKyAgICAgICAgYXV0byYgY29tcG9zaXRpb25MYXllciA9
IGRvd25jYXN0PE5pY29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI+KCpzY3JvbGxMYXllcik7CisgICAg
ICAgIGF1dG8gdXBkYXRlU2NvcGUgPSBjb21wb3NpdGlvbkxheWVyLmNyZWF0ZVVwZGF0ZVNjb3Bl
KCk7CisgICAgICAgIGNvbXBvc2l0aW9uTGF5ZXIudXBkYXRlU3RhdGUoW25vZGVJRCA9IHNjcm9s
bGluZ05vZGVJRCgpXShOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyOjpMYXllclN0YXRlJiBzdGF0
ZSkgeworICAgICAgICAgICAgc3RhdGUuc2Nyb2xsaW5nTm9kZUlEID0gbm9kZUlEOworICAgICAg
ICAgICAgc3RhdGUuZGVsdGEuc2Nyb2xsaW5nTm9kZUNoYW5nZWQgPSB0cnVlOworICAgICAgICB9
KTsKKyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29z
aWE6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0
YXRlTm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU5pY29zaWEuaAppbmRleCA2MDQwNzk4ODA2MTEyZWU2ZWM4MjU4MjYyNTc4Yzk0MzRjYmQ3ZDFm
Li43MGVhMWE4Yjc5MTdiN2EyYWJlZWZmNDA5MDJmNDNjYzRiYWE2ZWRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVOaWNvc2lhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5oCkBAIC00Nyw2
ICs0Nyw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGU+IGNyZWF0ZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCk7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU5pY29zaWEoKTsKIAorICAgIFJlZlB0cjxOaWNvc2lhOjpDb21wb3NpdGlvbkxheWVyPiByb290
Q29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdENvbnRlbnRzTGF5ZXI7IH0KKwog
cHJpdmF0ZToKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYShTY3Jv
bGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJl
ZU5pY29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3Jv
bGxpbmdUcmVlTmljb3NpYS5jcHAKaW5kZXggMGFjMjk5OWVlNjFhNjRiODYzZGIzYjU2YTM5ZGEw
NGJkZmIzMGY3NC4uOWU5MjhkYzhmYzA4MzVlZmRiOTViOGRjYmVhYjdjZTU1YmExZTExNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlTmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3Np
YS9TY3JvbGxpbmdUcmVlTmljb3NpYS5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2lmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpICYmIFVTRShOSUNPU0lBKQogCisjaW5jbHVkZSAiQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIk5pY29zaWFQbGF0Zm9ybUxheWVyLmgiCiAj
aW5jbHVkZSAiU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1Ry
ZWVGcmFtZUhvc3RpbmdOb2RlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU5pY29zaWEuaCIKQEAgLTczLDYgKzc1LDY4IEBAIFJlZjxTY3JvbGxpbmdUcmVlTm9k
ZT4gU2Nyb2xsaW5nVHJlZU5pY29zaWE6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z05vCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAordXNpbmcgTmljb3Np
YTo6Q29tcG9zaXRpb25MYXllcjsKKworc3RhdGljIHZvaWQgY29sbGVjdERlc2NlbmRhbnRMYXll
cnNBdFBvaW50KFZlY3RvcjxSZWZQdHI8Q29tcG9zaXRpb25MYXllcj4+JiBsYXllcnNBdFBvaW50
LCBSZWZQdHI8Q29tcG9zaXRpb25MYXllcj4gcGFyZW50LCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCkKK3sKKyAgICBib29sIGNoaWxkRXhpc3RzQXRQb2ludCA9IGZhbHNlOworCisgICAgcGFyZW50
LT5hY2Nlc3NQZW5kaW5nKFsmXShjb25zdCBDb21wb3NpdGlvbkxheWVyOjpMYXllclN0YXRlJiBz
dGF0ZSkgeworICAgICAgICBmb3IgKGF1dG8gY2hpbGQgOiBzdGF0ZS5jaGlsZHJlbikgeworICAg
ICAgICAgICAgYm9vbCBjb250YWluc1BvaW50ID0gZmFsc2U7CisgICAgICAgICAgICBGbG9hdFBv
aW50IHRyYW5zZm9ybWVkUG9pbnQ7CisgICAgICAgICAgICBjaGlsZC0+YWNjZXNzUGVuZGluZyhb
Jl0oY29uc3QgQ29tcG9zaXRpb25MYXllcjo6TGF5ZXJTdGF0ZSYgY2hpbGRTdGF0ZSkgeworICAg
ICAgICAgICAgICAgIGlmICghY2hpbGRTdGF0ZS50cmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBmbG9hdCBvcmlnaW5Y
ID0gY2hpbGRTdGF0ZS5hbmNob3JQb2ludC54KCkgKiBjaGlsZFN0YXRlLnNpemUud2lkdGgoKTsK
KyAgICAgICAgICAgICAgICBmbG9hdCBvcmlnaW5ZID0gY2hpbGRTdGF0ZS5hbmNob3JQb2ludC55
KCkgKiBjaGlsZFN0YXRlLnNpemUuaGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgYXV0byB0cmFu
c2Zvcm0gPSAqKFRyYW5zZm9ybWF0aW9uTWF0cml4KCkKKyAgICAgICAgICAgICAgICAgICAgLnRy
YW5zbGF0ZTNkKG9yaWdpblggKyBjaGlsZFN0YXRlLnBvc2l0aW9uLngoKSwgb3JpZ2luWSArIGNo
aWxkU3RhdGUucG9zaXRpb24ueSgpLCBjaGlsZFN0YXRlLmFuY2hvclBvaW50LnooKSkKKyAgICAg
ICAgICAgICAgICAgICAgLm11bHRpcGx5KGNoaWxkU3RhdGUudHJhbnNmb3JtKQorICAgICAgICAg
ICAgICAgICAgICAudHJhbnNsYXRlM2QoLW9yaWdpblgsIC1vcmlnaW5ZLCAtY2hpbGRTdGF0ZS5h
bmNob3JQb2ludC56KCkpLmludmVyc2UoKSk7CisgICAgICAgICAgICAgICAgYXV0byBjaGlsZFBv
aW50ID0gdHJhbnNmb3JtLnByb2plY3RQb2ludChwb2ludCk7CisgICAgICAgICAgICAgICAgaWYg
KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGNoaWxkU3RhdGUuc2l6ZSkuY29udGFpbnMoY2hpbGRQ
b2ludCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGFpbnNQb2ludCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkUG9pbnQuc2V0KGNoaWxkUG9pbnQueCgpLCBjaGls
ZFBvaW50LnkoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBpZiAoY29udGFpbnNQb2ludCkgeworICAgICAgICAgICAgICAgIGNoaWxkRXhpc3RzQXRQ
b2ludCA9IHRydWU7CisgICAgICAgICAgICAgICAgY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBv
aW50KGxheWVyc0F0UG9pbnQsIGNoaWxkLCB0cmFuc2Zvcm1lZFBvaW50KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgaWYgKCFjaGlsZEV4aXN0c0F0UG9pbnQpCisg
ICAgICAgIGxheWVyc0F0UG9pbnQuYXBwZW5kKHBhcmVudCk7Cit9CisKK1JlZlB0cjxTY3JvbGxp
bmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZU5pY29zaWE6OnNjcm9sbGluZ05vZGVGb3JQb2ludChG
bG9hdFBvaW50IHBvaW50KQoreworICAgIGF1dG8qIHJvb3RTY3JvbGxpbmdOb2RlID0gcm9vdE5v
ZGUoKTsKKyAgICBpZiAoIXJvb3RTY3JvbGxpbmdOb2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIExheWVyVHJlZUhpdFRlc3RMb2NrZXIgbGF5ZXJMb2NrZXIobV9zY3JvbGxpbmdD
b29yZGluYXRvci5nZXQoKSk7CisKKyAgICBhdXRvIHJvb3RDb250ZW50c0xheWVyID0gc3RhdGlj
X2Nhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEqPihyb290U2Nyb2xs
aW5nTm9kZSktPnJvb3RDb250ZW50c0xheWVyKCk7CisgICAgVmVjdG9yPFJlZlB0cjxDb21wb3Np
dGlvbkxheWVyPj4gbGF5ZXJzQXRQb2ludDsKKyAgICBjb2xsZWN0RGVzY2VuZGFudExheWVyc0F0
UG9pbnQobGF5ZXJzQXRQb2ludCwgcm9vdENvbnRlbnRzTGF5ZXIsIHBvaW50KTsKKworICAgIFNj
cm9sbGluZ1RyZWVOb2RlKiByZXR1cm5Ob2RlID0gbnVsbHB0cjsKKyAgICBmb3IgKGF1dG8gbGF5
ZXIgOiBXVEY6Om1ha2VSZXZlcnNlZFJhbmdlKGxheWVyc0F0UG9pbnQpKSB7CisgICAgICAgIGxh
eWVyLT5hY2Nlc3NDb21taXR0ZWQoWyZdKGNvbnN0IENvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3Rh
dGUmIHN0YXRlKSB7CisgICAgICAgICAgICBhdXRvKiBzY3JvbGxpbmdOb2RlID0gbm9kZUZvcklE
KHN0YXRlLnNjcm9sbGluZ05vZGVJRCk7CisgICAgICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU+KHNjcm9sbGluZ05vZGUpKQorICAgICAgICAgICAgICAgIHJldHVybk5v
ZGUgPSBzY3JvbGxpbmdOb2RlOworICAgICAgICB9KTsKKyAgICAgICAgaWYgKHJldHVybk5vZGUp
CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0dXJuTm9kZSA/IHJl
dHVybk5vZGUgOiByb290U2Nyb2xsaW5nTm9kZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgVVNFKE5JQ09TSUEpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGlu
Z1RyZWVOaWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVOaWNvc2lhLmgKaW5kZXggNWI4MjZjYzZhNzhjYjgwYTEyOTNiNWQ1NWYwZjBl
YjJhYjRjN2QzOC4uMTZlYTNiMzU1YmMwMzk5ZTY1ZGQyYmI0ZTY0ZDM0MDU1NTZjYWU3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nVHJlZU5pY29zaWEuaApAQCAtNDEsNiArNDEsOCBAQCBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFNjcm9sbGluZ1RyZWVOaWNvc2lhKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsK
IAogICAgIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Ny
b2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisKKyAgICBSZWZQdHI8
U2Nyb2xsaW5nVHJlZU5vZGU+IHNjcm9sbGluZ05vZGVGb3JQb2ludChGbG9hdFBvaW50KSBmaW5h
bDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU5pY29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKaW5kZXggM2IzMjQ4
NmY0Y2M3NzZhNjJlYjVhODZhN2U3NjBkMjE5ZDFiYjgwOC4uNDQ2Yjc1ZWZmOGIxYTAwZDdiMjQ0
NGYzZTk3M2Y5OTNlNGNmOTMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKQEAgLTU2LDYgKzU2LDIzIEBAIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTmljCiAKIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVOaWNvc2lhOjp+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEoKSA9
IGRlZmF1bHQ7CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29z
aWE6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBz
dGF0ZU5vZGUpCit7CisgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRl
QmVmb3JlQ2hpbGRyZW4oc3RhdGVOb2RlKTsKKworICAgIGNvbnN0IGF1dG8mIHNjcm9sbGluZ1N0
YXRlTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlPihz
dGF0ZU5vZGUpOworICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OlNjcm9sbGVkQ29udGVudHNMYXllcikpIHsK
KyAgICAgICAgYXV0byogc2Nyb2xsTGF5ZXIgPSBzdGF0aWNfY2FzdDxOaWNvc2lhOjpQbGF0Zm9y
bUxheWVyKj4oc2Nyb2xsZWRDb250ZW50c0xheWVyKCkpOworICAgICAgICBBU1NFUlQoc2Nyb2xs
TGF5ZXIpOworICAgICAgICBhdXRvJiBjb21wb3NpdGlvbkxheWVyID0gZG93bmNhc3Q8Tmljb3Np
YTo6Q29tcG9zaXRpb25MYXllcj4oKnNjcm9sbExheWVyKTsKKyAgICAgICAgYXV0byB1cGRhdGVT
Y29wZSA9IGNvbXBvc2l0aW9uTGF5ZXIuY3JlYXRlVXBkYXRlU2NvcGUoKTsKKyAgICAgICAgY29t
cG9zaXRpb25MYXllci51cGRhdGVTdGF0ZShbbm9kZUlEID0gc2Nyb2xsaW5nTm9kZUlEKCldKE5p
Y29zaWE6OkNvbXBvc2l0aW9uTGF5ZXI6OkxheWVyU3RhdGUmIHN0YXRlKSB7CisgICAgICAgICAg
ICBzdGF0ZS5zY3JvbGxpbmdOb2RlSUQgPSBub2RlSUQ7CisgICAgICAgICAgICBzdGF0ZS5kZWx0
YS5zY3JvbGxpbmdOb2RlQ2hhbmdlZCA9IHRydWU7CisgICAgICAgIH0pOworICAgIH0KK30KKwog
dm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6Y29tbWl0U3Rh
dGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYgc3RhdGVOb2RlKQogewog
ICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJD
aGlsZHJlbihzdGF0ZU5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5oCmluZGV4IDNiZDFhNDUzMzdkMDA2Mzc4OGU1MDE4
NTczZmEwMWFlMzAwZWFmZjIuLmY1OGEwNGRlMDMxNDhiMTU5ZDZkNTBlZTA1YmJiYTQwZTExOWZj
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVOaWNvc2lhLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYShTY3JvbGxpbmdUcmVlJiwg
U2Nyb2xsaW5nTm9kZUlEKTsKIAorICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihj
b25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFN0YXRl
QWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKIAogICAg
IEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Ny
b2xsQ2xhbXBpbmcpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGxhdGZvcm1MYXllci5o
CmluZGV4IDJlMjk2Mzc3NWI5OTY2ODdhZGJhZjdiOGVhZWVmNzljYTI4ZjA3NTcuLjU1ZTg2ZmE0
YjExYTU2MDY1MGI3NGYyZDkxY2ZhZDI0NTAyM2NlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBsYXRmb3JtTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQbGF0Zm9y
bUxheWVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0ZWRCYWNr
aW5nU3RvcmVDbGllbnQuaCIKICNpbmNsdWRlICJOaWNvc2lhQW5pbWF0aW9uLmgiCiAjaW5jbHVk
ZSAiTmljb3NpYVNjZW5lSW50ZWdyYXRpb24uaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgog
I2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTEzNCw2ICsxMzUsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWRCYWNraW5nU3RvcmVDbGllbnRDaGFuZ2Vk
IDogMTsKICAgICAgICAgICAgICAgICAgICAgYm9vbCByZXBhaW50Q291bnRlckNoYW5nZWQgOiAx
OwogICAgICAgICAgICAgICAgICAgICBib29sIGRlYnVnQm9yZGVyQ2hhbmdlZCA6IDE7CisgICAg
ICAgICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5nTm9kZUNoYW5nZWQgOiAxOwogICAgICAgICAg
ICAgICAgIH07CiAgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsdWUgeyAwIH07CiAgICAgICAg
ICAgICB9OwpAQCAtMTk4LDYgKzIwMCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGZsb2F0IHdp
ZHRoIHsgMCB9OwogICAgICAgICAgICAgYm9vbCB2aXNpYmxlIHsgZmFsc2UgfTsKICAgICAgICAg
fSBkZWJ1Z0JvcmRlcjsKKworICAgICAgICBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xs
aW5nTm9kZUlEIHsgMCB9OwogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAt
MjY2LDYgKzI3MCw5IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKHBlbmRpbmcuZGVsdGEuZGVidWdC
b3JkZXJDaGFuZ2VkKQogICAgICAgICAgICAgc3RhZ2luZy5kZWJ1Z0JvcmRlciA9IHBlbmRpbmcu
ZGVidWdCb3JkZXI7CiAKKyAgICAgICAgaWYgKHBlbmRpbmcuZGVsdGEuc2Nyb2xsaW5nTm9kZUNo
YW5nZWQpCisgICAgICAgICAgICBzdGFnaW5nLnNjcm9sbGluZ05vZGVJRCA9IHBlbmRpbmcuc2Ny
b2xsaW5nTm9kZUlEOworCiAgICAgICAgIGlmIChwZW5kaW5nLmRlbHRhLmJhY2tpbmdTdG9yZUNo
YW5nZWQpCiAgICAgICAgICAgICBzdGFnaW5nLmJhY2tpbmdTdG9yZSA9IHBlbmRpbmcuYmFja2lu
Z1N0b3JlOwogICAgICAgICBpZiAocGVuZGluZy5kZWx0YS5jb250ZW50TGF5ZXJDaGFuZ2VkKQpA
QCAtMjkwLDYgKzI5NywxMyBAQCBwdWJsaWM6CiAgICAgICAgIGZ1bmN0b3IobV9zdGF0ZS5jb21t
aXR0ZWQpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBhY2Nl
c3NQZW5kaW5nKGNvbnN0IFQmIGZ1bmN0b3IpCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihQbGF0Zm9ybUxheWVyOjptX3N0YXRlLmxvY2spOworICAgICAgICBmdW5jdG9yKG1fc3Rh
dGUucGVuZGluZyk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICB2b2lk
IGFjY2Vzc0NvbW1pdHRlZChjb25zdCBUJiBmdW5jdG9yKQogICAgIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>