<?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>222594</bug_id>
          
          <creation_ts>2021-03-02 05:03:46 -0800</creation_ts>
          <short_desc>Add basic (non-momentum) wheel event handling for scroll snap</short_desc>
          <delta_ts>2021-04-21 05:16:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</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=223729</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=224058</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>224080</dependson>
    
    <dependson>224176</dependson>
          <blocked>221461</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1734815</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-02 05:03:46 -0800</bug_when>
    <thetext>Basic wheel event handling is the last piece necessary for turning scroll snap on for GTK+ and WPE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734898</commentid>
    <comment_count>1</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-02 09:55:33 -0800</bug_when>
    <thetext>It seems this is useful for the Mac port as well. I have verified this by plugging in a non-momentum based mouse. Scroll snap doesn&apos;t seem to be working in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734917</commentid>
    <comment_count>2</comment_count>
      <attachid>421961</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-02 10:24:17 -0800</bug_when>
    <thetext>Created attachment 421961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735198</commentid>
    <comment_count>3</comment_count>
      <attachid>422047</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-02 22:16:33 -0800</bug_when>
    <thetext>Created attachment 422047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737105</commentid>
    <comment_count>4</comment_count>
      <attachid>422047</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-08 08:56:53 -0800</bug_when>
    <thetext>Comment on attachment 422047
Patch

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

&gt; Source/WebCore/platform/ScrollAnimator.cpp:214
&gt; +        ScrollBehavior behavior = ScrollBehavior::DoDirectionalSnapping;
&gt; +        if (e.hasPreciseScrollingDeltas())
&gt; +            behavior = static_cast&lt;ScrollBehavior&gt;(behavior &amp; ScrollBehavior::NeverAnimate);

Don&apos;t you want an OptionSet&lt;&gt; here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737529</commentid>
    <comment_count>5</comment_count>
      <attachid>422686</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-09 04:35:10 -0800</bug_when>
    <thetext>Created attachment 422686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737535</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-09 05:04:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/75213351&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737573</commentid>
    <comment_count>7</comment_count>
      <attachid>422701</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-09 08:24:10 -0800</bug_when>
    <thetext>Created attachment 422701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737681</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-09 11:28:28 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Comment on attachment 422047 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422047&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ScrollAnimator.cpp:214
&gt; &gt; +        ScrollBehavior behavior = ScrollBehavior::DoDirectionalSnapping;
&gt; &gt; +        if (e.hasPreciseScrollingDeltas())
&gt; &gt; +            behavior = static_cast&lt;ScrollBehavior&gt;(behavior &amp; ScrollBehavior::NeverAnimate);
&gt; 
&gt; Don&apos;t you want an OptionSet&lt;&gt; here?

Oh nice. I wasn&apos;t aware of OptionSet&lt;&gt;. I&apos;ve modified the patch to use that everywhere applicable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738935</commentid>
    <comment_count>9</comment_count>
      <attachid>422701</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-12 10:07:16 -0800</bug_when>
    <thetext>Comment on attachment 422701
Patch

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

&gt; Source/WebCore/platform/ScrollAnimator.cpp:181
&gt; +        if (processWheelEventForScrollSnap(e))
&gt; +            return false;

Double indentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738954</commentid>
    <comment_count>10</comment_count>
      <attachid>423064</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-12 10:49:11 -0800</bug_when>
    <thetext>Created attachment 423064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739044</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-12 15:20:34 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 423064 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739120</commentid>
    <comment_count>12</comment_count>
      <attachid>423099</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-13 00:53:58 -0800</bug_when>
    <thetext>Created attachment 423099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739124</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-13 01:31:23 -0800</bug_when>
    <thetext>Committed r274381: &lt;https://commits.webkit.org/r274381&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423099.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746282</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-04-01 14:58:48 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 224080</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746938</commentid>
    <comment_count>15</comment_count>
      <attachid>425148</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-04-05 07:05:06 -0700</bug_when>
    <thetext>Created attachment 425148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752228</commentid>
    <comment_count>16</comment_count>
      <attachid>426538</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-04-20 05:09:20 -0700</bug_when>
    <thetext>Created attachment 426538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752292</commentid>
    <comment_count>17</comment_count>
      <attachid>426538</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-20 09:32:17 -0700</bug_when>
    <thetext>Comment on attachment 426538
Patch

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

&gt; Source/WebCore/platform/ScrollAnimator.h:72
&gt; +        Default = 0,

When we use OptionSet, we don’t need a named constant for 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752293</commentid>
    <comment_count>18</comment_count>
      <attachid>426538</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-20 09:32:43 -0700</bug_when>
    <thetext>Comment on attachment 426538
Patch

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

&gt; Source/WebCore/platform/ScrollAnimator.h:74
&gt; +        DoDirectionalSnapping = 1 &lt;&lt; 1,
&gt; +        NeverAnimate = 1 &lt;&lt; 2,

This should start with 1 &lt;&lt; 0, not skip it and move on to to 1 &lt;&lt; 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752295</commentid>
    <comment_count>19</comment_count>
      <attachid>426538</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-20 09:35:50 -0700</bug_when>
    <thetext>Comment on attachment 426538
Patch

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

Looks fine.

&gt; Source/WebCore/platform/ScrollAnimator.cpp:182
&gt;  #if PLATFORM(MAC)
&gt; -bool ScrollAnimator::processWheelEventForScrollSnap(const PlatformWheelEvent&amp; wheelEvent)
&gt; -{
&gt; -    return m_scrollController.processWheelEventForScrollSnap(wheelEvent);
&gt; -}
&gt;  #endif

Since we’re deleting this code, please delete the #if/#endif pair too!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752668</commentid>
    <comment_count>20</comment_count>
      <attachid>426659</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-04-21 01:03:35 -0700</bug_when>
    <thetext>Created attachment 426659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752669</commentid>
    <comment_count>21</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-04-21 01:07:15 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=224643(In reply to Darin Adler from comment #18)
&gt; Comment on attachment 426538 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=426538&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ScrollAnimator.h:74
&gt; &gt; +        DoDirectionalSnapping = 1 &lt;&lt; 1,
&gt; &gt; +        NeverAnimate = 1 &lt;&lt; 2,
&gt; 
&gt; This should start with 1 &lt;&lt; 0, not skip it and move on to to 1 &lt;&lt; 1.

Okay. I&apos;ve removed Default from the enum and also have started it from 1 &lt;&lt; 0.

(In reply to Darin Adler from comment #19)
&gt; &gt; Source/WebCore/platform/ScrollAnimator.cpp:182
&gt; &gt;  #if PLATFORM(MAC)
&gt; &gt; -bool ScrollAnimator::processWheelEventForScrollSnap(const PlatformWheelEvent&amp; wheelEvent)
&gt; &gt; -{
&gt; &gt; -    return m_scrollController.processWheelEventForScrollSnap(wheelEvent);
&gt; &gt; -}
&gt; &gt;  #endif
&gt; 
&gt; Since we’re deleting this code, please delete the #if/#endif pair too!

Oh geez! Thanks for pointing this out. I&apos;ve fixed it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752678</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-21 02:04:33 -0700</bug_when>
    <thetext>Committed r276353 (236831@main): &lt;https://commits.webkit.org/236831@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426659.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421961</attachid>
            <date>2021-03-02 10:24:17 -0800</date>
            <delta_ts>2021-03-02 22:16:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222594-20210302192414.patch</filename>
            <type>text/plain</type>
            <size>15311</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzExNjQ1ZDAxOWYyMDM1
YmYxMjI0NGRhODZjNzM5ODhmZjZiY2I1Ny4uMDE4Y2Y3NTJjM2JjZDgwZDllYWQ5OWVjNTQ2MzEz
MGEyYTU3MjI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTAyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYmFzaWMg
KG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcgZm9yIHNjcm9sbCBzbmFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBjc3MzL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwKKworICAgICAgICBFbmFibGUg
c2Nyb2xsIHNuYXBwaW5nIGZvciBiYXNpYyB3aGVlbCBldmVudHMgb24gR1RLKyBhbmQgV1BFLiBU
aGUgTWFjIHBvcnQKKyAgICAgICAgaGFzIHNwZWNpYWwgd2hlZWwgaGFuZGxpbmcgZHVlIHRvIG1v
bWVudHVtIHNjcm9sbGluZy4gT3RoZXIgc2Nyb2xsLXNuYXAtZW5hYmxlZAorICAgICAgICBwb3J0
cyBjYW4ganVzdCB1c2UgYSBiYXNpYyB2ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9s
bCk6IEFjY2VwdCBhIGJpdG1hc2sgb2Ygb3B0aW9ucyBub3cuIFRoaXMKKyAgICAgICAgd2lsbCBh
bGxvdyB1c2luZyB0aGlzIG1ldGhvZCB3aGVuIGhhbmRsaW5nIHdoZWVsIGV2ZW50cyB0aGF0IGRv
IG5vdCBhbmltYXRlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdo
ZWVsRXZlbnQpOiBUcmlnZ2VyIDo6c2Nyb2xsIHdpdGgKKyAgICAgICAgc2Nyb2xsIHNuYXBwaW5n
IGVuYWJsZWQgYW5kIHBhc3MgdGhlIGFwcHJvcHJpYXRlIG9wdGlvbiB0byBkaXNhYmxlIGFuaW1h
dGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6cHJvY2Vzc1doZWVsRXZl
bnRGb3JTY3JvbGxTbmFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9y
Ojpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOiBNYWRlCisgICAgICAgIHRoaXMgYSBt
ZXRob2QgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOiBBZGRlZCBwcm9jZXNzV2hlZWxFdmVudEZv
clNjcm9sbFNuYXAuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbCk6IFBheSBhdHRl
bnRpb24gdG8gdGhlIE5ldmVyQW5pbWF0ZSBiaXRtYXNrIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOiBBZGRl
ZC4KKwogMjAyMS0wMy0wMiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CiAKICAgICAgICAgRWxpbWluYXRlIFNjcm9sbEFuaW1hdG9yR2VuZXJpYzo6bV9zbW9vdGhBbmlt
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAppbmRleCA2
NGM4NDNiNTk3NTI0NjRhY2Y3Zjc0NGI1YmJlNTc4YjI3ZDQ4Zjg0Li42OWI4YjU0NmYzOWZmMzlm
OTMwNTE3NjhiYjQ3MmNjYTc0ZjFlYWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuY3BwCkBAIC04NCwxNSArODQsMTYgQEAgU2Nyb2xsQW5pbWF0b3I6On5TY3Jv
bGxBbmltYXRvcigpCiBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBz
dGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKIHsKICNpZiBF
TkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlv
cjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKSB7CisgICAgaWYgKGJlaGF2aW9yICYgU2Nyb2xsQmVo
YXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykgewogICAgICAgICBhdXRvIG5ld09mZnNldCA9
IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb25Gcm9tU3Rl
cChvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlwbGllciksIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJs
ZUFyZWEuc2Nyb2xsT3JpZ2luKCkpKTsKICAgICAgICAgYXV0byBjdXJyZW50T2Zmc2V0ID0gbV9z
Y3JvbGxhYmxlQXJlYS5zY3JvbGxPZmZzZXQoKTsKKyAgICAgICAgYmVoYXZpb3IgPSBzdGF0aWNf
Y2FzdDxTY3JvbGxCZWhhdmlvcj4oYmVoYXZpb3IgJiB+U2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0
aW9uYWxTbmFwcGluZyk7CiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Ny
b2xsYmFyKSB7CiAgICAgICAgICAgICBuZXdPZmZzZXQuc2V0WChtX3Njcm9sbENvbnRyb2xsZXIu
YWRqdXN0U2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBuZXdP
ZmZzZXQueCgpLCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0LngoKSkpOwotICAgICAgICAgICAg
cmV0dXJuIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3T2Zmc2V0
LngoKSAtIGN1cnJlbnRPZmZzZXQueCgpLCAxLjApOworICAgICAgICAgICAgcmV0dXJuIHNjcm9s
bChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3T2Zmc2V0LngoKSAtIGN1cnJl
bnRPZmZzZXQueCgpLCAxLjAsIGJlaGF2aW9yKTsKICAgICAgICAgfQogICAgICAgICBuZXdPZmZz
ZXQuc2V0WShtX3Njcm9sbENvbnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xs
RXZlbnRBeGlzOjpWZXJ0aWNhbCwgbmV3T2Zmc2V0LnkoKSwgbXVsdGlwbGllciwgY3VycmVudE9m
ZnNldC55KCkpKTsKLSAgICAgICAgcmV0dXJuIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3Jh
bnVsYXJpdHksIG5ld09mZnNldC55KCkgLSBjdXJyZW50T2Zmc2V0LnkoKSwgMS4wKTsKKyAgICAg
ICAgcmV0dXJuIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIG5ld09mZnNl
dC55KCkgLSBjdXJyZW50T2Zmc2V0LnkoKSwgMS4wLCBiZWhhdmlvcik7CiAgICAgfQogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0oZ3JhbnVsYXJpdHkpOwpAQCAtMTAwLDcgKzEwMSw3IEBAIGJvb2wg
U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwg
U2Nyb2xsR3JhbnVsYXJpdHkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
ICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLnNjcm9s
bEFuaW1hdG9yRW5hYmxlZCgpKSB7CisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5p
bWF0b3JFbmFibGVkKCkgJiYgIShiZWhhdmlvciAmIFNjcm9sbEJlaGF2aW9yOjpOZXZlckFuaW1h
dGUpKSB7CiAgICAgICAgIG1fc2Nyb2xsQW5pbWF0aW9uLT5zZXRDdXJyZW50UG9zaXRpb24obV9j
dXJyZW50UG9zaXRpb24pOwogICAgICAgICByZXR1cm4gbV9zY3JvbGxBbmltYXRpb24tPnNjcm9s
bChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOwogICAgIH0KQEAg
LTE2MCwxMCArMTYxLDYgQEAgRmxvYXRQb2ludCBTY3JvbGxBbmltYXRvcjo6cG9zaXRpb25Gcm9t
U3RlcChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgZmwKIAogI2lmIEVOQUJMRShD
U1NfU0NST0xMX1NOQVApCiAjaWYgUExBVEZPUk0oTUFDKQotYm9vbCBTY3JvbGxBbmltYXRvcjo6
cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKLXsKLSAgICByZXR1cm4gbV9zY3JvbGxDb250cm9sbGVyLnByb2Nlc3NXaGVl
bEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50KTsKLX0KICNlbmRpZgogCiBib29sIFNjcm9s
bEFuaW1hdG9yOjphY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSBjb25zdApAQCAtMTc5
LDEwICsxNzYsMTEgQEAgdW5zaWduZWQgU2Nyb2xsQW5pbWF0b3I6OmFjdGl2ZVNjcm9sbFNuYXBJ
bmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNvbnMKIAogYm9vbCBTY3JvbGxBbmlt
YXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiB7Ci0j
aWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgJiYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtX3Nj
cm9sbENvbnRyb2xsZXIucHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGUpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKKyAgICAgICAgaWYg
KHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChlKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRXZlbnRzIGluIHRo
ZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6TWF5QmVnaW4gcGhhc2UgaGF2ZSBubyBkZWx0YXMs
IGFuZCB0aGVyZWZvcmUgbmV2ZXIgcGFzc2VzIHRocm91Z2ggdGhlIHNjcm9sbCBoYW5kbGluZyBs
b2dpYyBiZWxvdy4KICAgICAvLyBUaGlzIGNhdXNlcyB1cyB0byByZXR1cm4gd2l0aCBhbiAndW5o
YW5kbGVkJyByZXR1cm4gc3RhdGUsIGV2ZW4gdGhvdWdoIHRoaXMgZXZlbnQgd2FzIHN1Y2Nlc3Nm
dWxseSBwcm9jZXNzZWQuCkBAIC0yMDMsNyArMjAxLDYgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6
aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAKICAgICBib29s
IGhhbmRsZWQgPSBmYWxzZTsKIAotICAgIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0g
U2Nyb2xsQnlQaXhlbDsKICAgICBJbnRTaXplIG1heEZvcndhcmRTY3JvbGxEZWx0YSA9IG1fc2Ny
b2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgLSBtX3Njcm9sbGFibGVBcmVhLnNj
cm9sbFBvc2l0aW9uKCk7CiAgICAgSW50U2l6ZSBtYXhCYWNrd2FyZFNjcm9sbERlbHRhID0gbV9z
Y3JvbGxhYmxlQXJlYS5zY3JvbGxQb3NpdGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVt
U2Nyb2xsUG9zaXRpb24oKTsKICAgICBpZiAoKGRlbHRhWCA8IDAgJiYgbWF4Rm9yd2FyZFNjcm9s
bERlbHRhLndpZHRoKCkgPiAwKQpAQCAtMjEyLDYgKzIwOSwxMCBAQCBib29sIFNjcm9sbEFuaW1h
dG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAg
ICAgfHwgKGRlbHRhWSA+IDAgJiYgbWF4QmFja3dhcmRTY3JvbGxEZWx0YS5oZWlnaHQoKSA+IDAp
KSB7CiAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwogCisgICAgICAgIFNjcm9sbEJlaGF2aW9yIGJl
aGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZzsKKyAgICAgICAg
aWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQorICAgICAgICAgICAgYmVoYXZpb3Ig
PSBzdGF0aWNfY2FzdDxTY3JvbGxCZWhhdmlvcj4oYmVoYXZpb3IgJiBTY3JvbGxCZWhhdmlvcjo6
TmV2ZXJBbmltYXRlKTsKKwogICAgICAgICBpZiAoZGVsdGFZKSB7CiAgICAgICAgICAgICBpZiAo
ZS5ncmFudWxhcml0eSgpID09IFNjcm9sbEJ5UGFnZVdoZWVsRXZlbnQpIHsKICAgICAgICAgICAg
ICAgICBib29sIG5lZ2F0aXZlID0gZGVsdGFZIDwgMDsKQEAgLTIxOSwxMCArMjIwLDcgQEAgYm9v
bCBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGUpCiAgICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlKQogICAgICAgICAgICAgICAgICAg
ICBkZWx0YVkgPSAtZGVsdGFZOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGUuaGFz
UHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQotICAgICAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRp
b25XaXRob3V0QW5pbWF0aW9uKHBvc2l0aW9uRnJvbVN0ZXAoVmVydGljYWxTY3JvbGxiYXIsIHZl
cnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSkpOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHks
IHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSk7CisgICAgICAgICAgICBz
Y3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIFNjcm9sbEJ5UGl4ZWwsIHZlcnRpY2FsU2Nyb2xsYmFy
LT5waXhlbFN0ZXAoKSwgLWRlbHRhWSwgYmVoYXZpb3IpOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKGRlbHRhWCkgewpAQCAtMjMyLDEwICsyMzAsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpo
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAgICAgICAg
ICAgICBpZiAobmVnYXRpdmUpCiAgICAgICAgICAgICAgICAgICAgIGRlbHRhWCA9IC1kZWx0YVg7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZS5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVs
dGFzKCkpCi0gICAgICAgICAgICAgICAgc2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmltYXRpb24o
cG9zaXRpb25Gcm9tU3RlcChIb3Jpem9udGFsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFy
LT5waXhlbFN0ZXAoKSwgLWRlbHRhWCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgaG9yaXpvbnRhbFNj
cm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVgpOworICAgICAgICAgICAgc2Nyb2xsKEhvcml6
b250YWxTY3JvbGxiYXIsIFNjcm9sbEJ5UGl4ZWwsIGhvcml6b250YWxTY3JvbGxiYXItPnBpeGVs
U3RlcCgpLCAtZGVsdGFYLCBiZWhhdmlvcik7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJu
IGhhbmRsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA2
ZWIxNDA2NzdkMTM4YmVkMDU0ZTZlNzBmMTBiM2YxODY4NWI4OGQ4Li41NTI1NjE2OTZmODAyMzBm
NzNkZmIzYmVhMDE5NGMwNzA4MTk1YzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmgKQEAgLTY5LDggKzY5LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNjcm9s
bEFuaW1hdG9yKCk7CiAKICAgICBlbnVtIFNjcm9sbEJlaGF2aW9yIHsKLSAgICAgICAgRGVmYXVs
dCwKLSAgICAgICAgRG9EaXJlY3Rpb25hbFNuYXBwaW5nLAorICAgICAgICBEZWZhdWx0ID0gMCwK
KyAgICAgICAgRG9EaXJlY3Rpb25hbFNuYXBwaW5nID0gMSA8PCAxLAorICAgICAgICBOZXZlckFu
aW1hdGUgPSAxIDw8IDIsCiAgICAgfTsKIAogICAgIC8vIENvbXB1dGVzIGEgc2Nyb2xsIGRlc3Rp
bmF0aW9uIGZvciB0aGUgZ2l2ZW4gcGFyYW1ldGVycy4gIFJldHVybnMgZmFsc2UgaWYKQEAgLTE0
OSw5ICsxNTAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NO
QVApCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGJvb2wgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3Jv
bGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwotI2VuZGlmCisgICAgdmlydHVhbCBi
b29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgdXBkYXRlU2Nyb2xsU25hcFN0YXRlKCk7
CiAgICAgYm9vbCBhY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSBjb25zdDsKICAgICB1
bnNpZ25lZCBhY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhpcykgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5o
CmluZGV4IDY0OWI0Y2Y1NDQ1MDk4YTMzMTIyODM4NTBiNTE3MmNhMWNkMzI3OGIuLjdiMjk2ZGMz
ZTgxZmZlMWRiMWRlNDcyN2I4MTQ1NTEwZWIzMmE4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCkBAIC0xNDAsNiArMTQwLDggQEAgcHJp
dmF0ZToKICAgICBTdHJpbmcgaG9yaXpvbnRhbFNjcm9sbGJhclN0YXRlRm9yVGVzdGluZygpIGNv
bnN0IGZpbmFsOwogICAgIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0YXRlRm9yVGVzdGluZygp
IGNvbnN0IGZpbmFsOwogCisgICAgYm9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisKICAgICAvLyBTY3JvbGxDb250
cm9sbGVyQ2xpZW50LgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBJbnRTaXplIHN0
cmV0Y2hBbW91bnQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCA4ZTAwYmQ3MThiZjUwYjYzNGQ4YjI5NjY2
OGNjZGViNWJjODQyOWVlLi4yY2Y5NmY1MjQyMTk4ZmNhZWRiMGE5MmIwNDE1MjAyMmE5ZmM0NjMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tCkBAIC03NTcsMTAgKzc1NywxMSBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaQogCiAgICAg
Ly8gVGhpcyBtZXRob2QgZG9lc24ndCBkbyBkaXJlY3Rpb25hbCBzbmFwcGluZywgYnV0IG91ciBi
YXNlIGNsYXNzIGRvZXMuIEl0IHdpbGwgY2FsbCBpbnRvCiAgICAgLy8gU2Nyb2xsQW5pbWF0b3JN
YWM6OnNjcm9sbCBhZ2FpbiB3aXRoIHRoZSBzbmFwcGVkIHBvc2l0aW9ucyBhbmQgU2Nyb2xsQmVo
YXZpb3I6OkRlZmF1bHQuCi0gICAgaWYgKGJlaGF2aW9yID09IFNjcm9sbEJlaGF2aW9yOjpEb0Rp
cmVjdGlvbmFsU25hcHBpbmcpCisgICAgaWYgKGJlaGF2aW9yICYgU2Nyb2xsQmVoYXZpb3I6OkRv
RGlyZWN0aW9uYWxTbmFwcGluZykKICAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3Jv
bGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7
CiAKLSAgICBib29sIHNob3VsZEFuaW1hdGUgPSBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lz
dGVtKCkgJiYgbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSAmJiBncmFu
dWxhcml0eSAhPSBTY3JvbGxCeVBpeGVsOworICAgIGJvb2wgc2hvdWxkQW5pbWF0ZSA9IHNjcm9s
bEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSAmJiBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFu
aW1hdG9yRW5hYmxlZCgpICYmIGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5UGl4ZWwKKyAgICAgICAg
JiYgIShiZWhhdmlvciAmIFNjcm9sbEJlaGF2aW9yOjpOZXZlckFuaW1hdGUpOwogICAgIEZsb2F0
UG9pbnQgbmV3UG9zaXRpb24gPSBwb3NpdGlvbkZyb21TdGVwKG9yaWVudGF0aW9uLCBzdGVwLCBt
dWx0aXBsaWVyKTsKICAgICBuZXdQb3NpdGlvbiA9IG5ld1Bvc2l0aW9uLmNvbnN0cmFpbmVkQmV0
d2VlbihzY3JvbGxhYmxlQXJlYSgpLm1pbmltdW1TY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxhYmxl
QXJlYSgpLm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsKIApAQCAtMTUwMCw2ICsxNTAxLDExIEBA
IHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25z
dCBJbnRSZWN0JiBzY3JvbGxlclRodW1iCiAgICAgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Qg
PSByZWN0SW5WaWV3Q29vcmRpbmF0ZXM7CiB9CiAKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnBy
b2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdo
ZWVsRXZlbnQpCit7CisgICAgcmV0dXJuIG1fc2Nyb2xsQ29udHJvbGxlci5wcm9jZXNzV2hlZWxF
dmVudEZvclNjcm9sbFNuYXAod2hlZWxFdmVudCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZlNGQzNmM1
OWE5MTdjMTA0NTI5Mjc3NDcyMTA0MDVkMzc1ODlhODMuLjc1MmM0NWQ1ZjEwMDVjMDY2Mzc3MWY0
YTUyZGRjNDMwYzk3MGQ3NTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wMy0wMiAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2lj
IChub24tbW9tZW50dW0pIHdoZWVsIGV2ZW50IGhhbmRsaW5nIGZvciBzY3JvbGwgc25hcAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNTk0CisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzMy9zY3JvbGwt
c25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbDogQWRkZWQu
CisKIDIwMjEtMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEVuYWJsZSBNRURJQV9TT1VSQ0UgaW4gSU9TIFNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2
ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWU2MWNhMjIwNzE0MWVlZTAxODhiN2IxYzcy
YzFjM2MyZmE5ZjBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwt
c25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CitQQVNTIGhvcml6b250YWwgbW91c2Ugd2hlZWwgZXZlbnQgc25hcHBlZAorUEFTUyB2ZXJ0aWNh
bCBtb3VzZSB3aGVlbCBldmVudCBzbmFwcGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZTIz
ZGFiM2QyZWY3OTc1YmQyN2Q0OTJmMjA1YWZhNjI1OTdhYjYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwK
QEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHRpdGxlPlNpbXBsZSB3aGVlbCBldmVudHMgc2hvdWxkIHRyaWdnZXIgc2Nyb2xsIHNu
YXBwaW5nPC90aXRsZT4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAg
ICAgIC5jb250YWluZXIgeworICAgICAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAg
ICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwor
ICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IGJvdGggbWFuZGF0b3J5OworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAuaG9yaXpvbnRhbC1kcmF3ZXIgeworICAgICAgICAgICAg
ICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIC5ibG9jayB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAx
MDAlOworICAgICAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBzY3Jv
bGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIgPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lclRleHQgPSAiU2lt
cGxlIHdoZWVsIGV2ZW50cyBzaG91bGQgdHJpZ2dlciBzY3JvbGwgc25hcHBpbmciOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjAsIDE5MCk7CisgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oODAsIDE5MCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSgtMSwg
MCk7CisKKyAgICAgICAgICAgICAgICBsZXQgaG9yaXpvbnRhbENvbnRhaW5lciA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJob3Jpem9udGFsLWNvbnRhaW5lciIpOworICAgICAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmltYXRpb25Ub1NldHRsZShob3Jp
em9udGFsQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGhvcml6b250YWxD
b250YWluZXIuc2Nyb2xsTGVmdCA9PSAyMDAsICJob3Jpem9udGFsIG1vdXNlIHdoZWVsIGV2ZW50
IHNuYXBwZWQiKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDE5
MCwgMjIwKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxOTAsIDI3MCk7CisgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeSgwLCAtMSk7CisKKyAgICAgICAgICAgICAgICBsZXQgdmVydGljYWxD
b250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVydGljYWwtY29udGFpbmVyIik7
CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1h
dGlvblRvU2V0dGxlKHZlcnRpY2FsQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBleHBlY3RU
cnVlKHZlcnRpY2FsQ29udGFpbmVyLnNjcm9sbFRvcCA9PSAxODUsICJ2ZXJ0aWNhbCBtb3VzZSB3
aGVlbCBldmVudCBzbmFwcGVkIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
ICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+
CisgICAgICAgIDxkaXYgaWQ9Imhvcml6b250YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZHJhd2VyIj4KKyAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImZsb2F0OiBsZWZ0OyBiYWNrZ3JvdW5k
OiAjODA0NzVFIj48L2Rpdj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5
bGU9ImZsb2F0OiBsZWZ0OyBiYWNrZ3JvdW5kOiAjQ0M1QTcxIj48L2Rpdj4KKyAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0idmVydGljYWwtY29udGFp
bmVyIiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBz
dHlsZT0iYmFja2dyb3VuZDogIzgwNDc1RSI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJibG9jayIgc3R5bGU9ImJhY2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPHAgaWQ9ImNvbnNvbGUiPjwvcD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422047</attachid>
            <date>2021-03-02 22:16:33 -0800</date>
            <delta_ts>2021-03-09 04:35:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222594-20210303071630.patch</filename>
            <type>text/plain</type>
            <size>16733</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzExNjQ1ZDAxOWYyMDM1
YmYxMjI0NGRhODZjNzM5ODhmZjZiY2I1Ny4uMDE4Y2Y3NTJjM2JjZDgwZDllYWQ5OWVjNTQ2MzEz
MGEyYTU3MjI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTAyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYmFzaWMg
KG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcgZm9yIHNjcm9sbCBzbmFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBjc3MzL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwKKworICAgICAgICBFbmFibGUg
c2Nyb2xsIHNuYXBwaW5nIGZvciBiYXNpYyB3aGVlbCBldmVudHMgb24gR1RLKyBhbmQgV1BFLiBU
aGUgTWFjIHBvcnQKKyAgICAgICAgaGFzIHNwZWNpYWwgd2hlZWwgaGFuZGxpbmcgZHVlIHRvIG1v
bWVudHVtIHNjcm9sbGluZy4gT3RoZXIgc2Nyb2xsLXNuYXAtZW5hYmxlZAorICAgICAgICBwb3J0
cyBjYW4ganVzdCB1c2UgYSBiYXNpYyB2ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9s
bCk6IEFjY2VwdCBhIGJpdG1hc2sgb2Ygb3B0aW9ucyBub3cuIFRoaXMKKyAgICAgICAgd2lsbCBh
bGxvdyB1c2luZyB0aGlzIG1ldGhvZCB3aGVuIGhhbmRsaW5nIHdoZWVsIGV2ZW50cyB0aGF0IGRv
IG5vdCBhbmltYXRlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdo
ZWVsRXZlbnQpOiBUcmlnZ2VyIDo6c2Nyb2xsIHdpdGgKKyAgICAgICAgc2Nyb2xsIHNuYXBwaW5n
IGVuYWJsZWQgYW5kIHBhc3MgdGhlIGFwcHJvcHJpYXRlIG9wdGlvbiB0byBkaXNhYmxlIGFuaW1h
dGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6cHJvY2Vzc1doZWVsRXZl
bnRGb3JTY3JvbGxTbmFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9y
Ojpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOiBNYWRlCisgICAgICAgIHRoaXMgYSBt
ZXRob2QgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOiBBZGRlZCBwcm9jZXNzV2hlZWxFdmVudEZv
clNjcm9sbFNuYXAuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbCk6IFBheSBhdHRl
bnRpb24gdG8gdGhlIE5ldmVyQW5pbWF0ZSBiaXRtYXNrIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOiBBZGRl
ZC4KKwogMjAyMS0wMy0wMiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CiAKICAgICAgICAgRWxpbWluYXRlIFNjcm9sbEFuaW1hdG9yR2VuZXJpYzo6bV9zbW9vdGhBbmlt
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAppbmRleCA2
NGM4NDNiNTk3NTI0NjRhY2Y3Zjc0NGI1YmJlNTc4YjI3ZDQ4Zjg0Li42OWI4YjU0NmYzOWZmMzlm
OTMwNTE3NjhiYjQ3MmNjYTc0ZjFlYWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuY3BwCkBAIC04NCwxNSArODQsMTYgQEAgU2Nyb2xsQW5pbWF0b3I6On5TY3Jv
bGxBbmltYXRvcigpCiBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBz
dGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKIHsKICNpZiBF
TkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlv
cjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKSB7CisgICAgaWYgKGJlaGF2aW9yICYgU2Nyb2xsQmVo
YXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykgewogICAgICAgICBhdXRvIG5ld09mZnNldCA9
IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb25Gcm9tU3Rl
cChvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlwbGllciksIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJs
ZUFyZWEuc2Nyb2xsT3JpZ2luKCkpKTsKICAgICAgICAgYXV0byBjdXJyZW50T2Zmc2V0ID0gbV9z
Y3JvbGxhYmxlQXJlYS5zY3JvbGxPZmZzZXQoKTsKKyAgICAgICAgYmVoYXZpb3IgPSBzdGF0aWNf
Y2FzdDxTY3JvbGxCZWhhdmlvcj4oYmVoYXZpb3IgJiB+U2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0
aW9uYWxTbmFwcGluZyk7CiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Ny
b2xsYmFyKSB7CiAgICAgICAgICAgICBuZXdPZmZzZXQuc2V0WChtX3Njcm9sbENvbnRyb2xsZXIu
YWRqdXN0U2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBuZXdP
ZmZzZXQueCgpLCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0LngoKSkpOwotICAgICAgICAgICAg
cmV0dXJuIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3T2Zmc2V0
LngoKSAtIGN1cnJlbnRPZmZzZXQueCgpLCAxLjApOworICAgICAgICAgICAgcmV0dXJuIHNjcm9s
bChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3T2Zmc2V0LngoKSAtIGN1cnJl
bnRPZmZzZXQueCgpLCAxLjAsIGJlaGF2aW9yKTsKICAgICAgICAgfQogICAgICAgICBuZXdPZmZz
ZXQuc2V0WShtX3Njcm9sbENvbnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xs
RXZlbnRBeGlzOjpWZXJ0aWNhbCwgbmV3T2Zmc2V0LnkoKSwgbXVsdGlwbGllciwgY3VycmVudE9m
ZnNldC55KCkpKTsKLSAgICAgICAgcmV0dXJuIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3Jh
bnVsYXJpdHksIG5ld09mZnNldC55KCkgLSBjdXJyZW50T2Zmc2V0LnkoKSwgMS4wKTsKKyAgICAg
ICAgcmV0dXJuIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIG5ld09mZnNl
dC55KCkgLSBjdXJyZW50T2Zmc2V0LnkoKSwgMS4wLCBiZWhhdmlvcik7CiAgICAgfQogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0oZ3JhbnVsYXJpdHkpOwpAQCAtMTAwLDcgKzEwMSw3IEBAIGJvb2wg
U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwg
U2Nyb2xsR3JhbnVsYXJpdHkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
ICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLnNjcm9s
bEFuaW1hdG9yRW5hYmxlZCgpKSB7CisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5p
bWF0b3JFbmFibGVkKCkgJiYgIShiZWhhdmlvciAmIFNjcm9sbEJlaGF2aW9yOjpOZXZlckFuaW1h
dGUpKSB7CiAgICAgICAgIG1fc2Nyb2xsQW5pbWF0aW9uLT5zZXRDdXJyZW50UG9zaXRpb24obV9j
dXJyZW50UG9zaXRpb24pOwogICAgICAgICByZXR1cm4gbV9zY3JvbGxBbmltYXRpb24tPnNjcm9s
bChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOwogICAgIH0KQEAg
LTE2MCwxMCArMTYxLDYgQEAgRmxvYXRQb2ludCBTY3JvbGxBbmltYXRvcjo6cG9zaXRpb25Gcm9t
U3RlcChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgZmwKIAogI2lmIEVOQUJMRShD
U1NfU0NST0xMX1NOQVApCiAjaWYgUExBVEZPUk0oTUFDKQotYm9vbCBTY3JvbGxBbmltYXRvcjo6
cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKLXsKLSAgICByZXR1cm4gbV9zY3JvbGxDb250cm9sbGVyLnByb2Nlc3NXaGVl
bEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50KTsKLX0KICNlbmRpZgogCiBib29sIFNjcm9s
bEFuaW1hdG9yOjphY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSBjb25zdApAQCAtMTc5
LDEwICsxNzYsMTEgQEAgdW5zaWduZWQgU2Nyb2xsQW5pbWF0b3I6OmFjdGl2ZVNjcm9sbFNuYXBJ
bmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNvbnMKIAogYm9vbCBTY3JvbGxBbmlt
YXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiB7Ci0j
aWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgJiYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtX3Nj
cm9sbENvbnRyb2xsZXIucHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGUpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKKyAgICAgICAgaWYg
KHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChlKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRXZlbnRzIGluIHRo
ZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6TWF5QmVnaW4gcGhhc2UgaGF2ZSBubyBkZWx0YXMs
IGFuZCB0aGVyZWZvcmUgbmV2ZXIgcGFzc2VzIHRocm91Z2ggdGhlIHNjcm9sbCBoYW5kbGluZyBs
b2dpYyBiZWxvdy4KICAgICAvLyBUaGlzIGNhdXNlcyB1cyB0byByZXR1cm4gd2l0aCBhbiAndW5o
YW5kbGVkJyByZXR1cm4gc3RhdGUsIGV2ZW4gdGhvdWdoIHRoaXMgZXZlbnQgd2FzIHN1Y2Nlc3Nm
dWxseSBwcm9jZXNzZWQuCkBAIC0yMDMsNyArMjAxLDYgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6
aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAKICAgICBib29s
IGhhbmRsZWQgPSBmYWxzZTsKIAotICAgIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0g
U2Nyb2xsQnlQaXhlbDsKICAgICBJbnRTaXplIG1heEZvcndhcmRTY3JvbGxEZWx0YSA9IG1fc2Ny
b2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgLSBtX3Njcm9sbGFibGVBcmVhLnNj
cm9sbFBvc2l0aW9uKCk7CiAgICAgSW50U2l6ZSBtYXhCYWNrd2FyZFNjcm9sbERlbHRhID0gbV9z
Y3JvbGxhYmxlQXJlYS5zY3JvbGxQb3NpdGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVt
U2Nyb2xsUG9zaXRpb24oKTsKICAgICBpZiAoKGRlbHRhWCA8IDAgJiYgbWF4Rm9yd2FyZFNjcm9s
bERlbHRhLndpZHRoKCkgPiAwKQpAQCAtMjEyLDYgKzIwOSwxMCBAQCBib29sIFNjcm9sbEFuaW1h
dG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAg
ICAgfHwgKGRlbHRhWSA+IDAgJiYgbWF4QmFja3dhcmRTY3JvbGxEZWx0YS5oZWlnaHQoKSA+IDAp
KSB7CiAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwogCisgICAgICAgIFNjcm9sbEJlaGF2aW9yIGJl
aGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZzsKKyAgICAgICAg
aWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQorICAgICAgICAgICAgYmVoYXZpb3Ig
PSBzdGF0aWNfY2FzdDxTY3JvbGxCZWhhdmlvcj4oYmVoYXZpb3IgJiBTY3JvbGxCZWhhdmlvcjo6
TmV2ZXJBbmltYXRlKTsKKwogICAgICAgICBpZiAoZGVsdGFZKSB7CiAgICAgICAgICAgICBpZiAo
ZS5ncmFudWxhcml0eSgpID09IFNjcm9sbEJ5UGFnZVdoZWVsRXZlbnQpIHsKICAgICAgICAgICAg
ICAgICBib29sIG5lZ2F0aXZlID0gZGVsdGFZIDwgMDsKQEAgLTIxOSwxMCArMjIwLDcgQEAgYm9v
bCBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGUpCiAgICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlKQogICAgICAgICAgICAgICAgICAg
ICBkZWx0YVkgPSAtZGVsdGFZOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGUuaGFz
UHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQotICAgICAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRp
b25XaXRob3V0QW5pbWF0aW9uKHBvc2l0aW9uRnJvbVN0ZXAoVmVydGljYWxTY3JvbGxiYXIsIHZl
cnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSkpOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHks
IHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSk7CisgICAgICAgICAgICBz
Y3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIFNjcm9sbEJ5UGl4ZWwsIHZlcnRpY2FsU2Nyb2xsYmFy
LT5waXhlbFN0ZXAoKSwgLWRlbHRhWSwgYmVoYXZpb3IpOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKGRlbHRhWCkgewpAQCAtMjMyLDEwICsyMzAsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpo
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAgICAgICAg
ICAgICBpZiAobmVnYXRpdmUpCiAgICAgICAgICAgICAgICAgICAgIGRlbHRhWCA9IC1kZWx0YVg7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZS5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVs
dGFzKCkpCi0gICAgICAgICAgICAgICAgc2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmltYXRpb24o
cG9zaXRpb25Gcm9tU3RlcChIb3Jpem9udGFsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFy
LT5waXhlbFN0ZXAoKSwgLWRlbHRhWCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgaG9yaXpvbnRhbFNj
cm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVgpOworICAgICAgICAgICAgc2Nyb2xsKEhvcml6
b250YWxTY3JvbGxiYXIsIFNjcm9sbEJ5UGl4ZWwsIGhvcml6b250YWxTY3JvbGxiYXItPnBpeGVs
U3RlcCgpLCAtZGVsdGFYLCBiZWhhdmlvcik7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJu
IGhhbmRsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA2
ZWIxNDA2NzdkMTM4YmVkMDU0ZTZlNzBmMTBiM2YxODY4NWI4OGQ4Li41NTI1NjE2OTZmODAyMzBm
NzNkZmIzYmVhMDE5NGMwNzA4MTk1YzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmgKQEAgLTY5LDggKzY5LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNjcm9s
bEFuaW1hdG9yKCk7CiAKICAgICBlbnVtIFNjcm9sbEJlaGF2aW9yIHsKLSAgICAgICAgRGVmYXVs
dCwKLSAgICAgICAgRG9EaXJlY3Rpb25hbFNuYXBwaW5nLAorICAgICAgICBEZWZhdWx0ID0gMCwK
KyAgICAgICAgRG9EaXJlY3Rpb25hbFNuYXBwaW5nID0gMSA8PCAxLAorICAgICAgICBOZXZlckFu
aW1hdGUgPSAxIDw8IDIsCiAgICAgfTsKIAogICAgIC8vIENvbXB1dGVzIGEgc2Nyb2xsIGRlc3Rp
bmF0aW9uIGZvciB0aGUgZ2l2ZW4gcGFyYW1ldGVycy4gIFJldHVybnMgZmFsc2UgaWYKQEAgLTE0
OSw5ICsxNTAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NO
QVApCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGJvb2wgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3Jv
bGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwotI2VuZGlmCisgICAgdmlydHVhbCBi
b29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgdXBkYXRlU2Nyb2xsU25hcFN0YXRlKCk7
CiAgICAgYm9vbCBhY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSBjb25zdDsKICAgICB1
bnNpZ25lZCBhY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhpcykgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5o
CmluZGV4IDY0OWI0Y2Y1NDQ1MDk4YTMzMTIyODM4NTBiNTE3MmNhMWNkMzI3OGIuLjdiMjk2ZGMz
ZTgxZmZlMWRiMWRlNDcyN2I4MTQ1NTEwZWIzMmE4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCkBAIC0xNDAsNiArMTQwLDggQEAgcHJp
dmF0ZToKICAgICBTdHJpbmcgaG9yaXpvbnRhbFNjcm9sbGJhclN0YXRlRm9yVGVzdGluZygpIGNv
bnN0IGZpbmFsOwogICAgIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0YXRlRm9yVGVzdGluZygp
IGNvbnN0IGZpbmFsOwogCisgICAgYm9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisKICAgICAvLyBTY3JvbGxDb250
cm9sbGVyQ2xpZW50LgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBJbnRTaXplIHN0
cmV0Y2hBbW91bnQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCA4ZTAwYmQ3MThiZjUwYjYzNGQ4YjI5NjY2
OGNjZGViNWJjODQyOWVlLi4yY2Y5NmY1MjQyMTk4ZmNhZWRiMGE5MmIwNDE1MjAyMmE5ZmM0NjMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tCkBAIC03NTcsMTAgKzc1NywxMSBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaQogCiAgICAg
Ly8gVGhpcyBtZXRob2QgZG9lc24ndCBkbyBkaXJlY3Rpb25hbCBzbmFwcGluZywgYnV0IG91ciBi
YXNlIGNsYXNzIGRvZXMuIEl0IHdpbGwgY2FsbCBpbnRvCiAgICAgLy8gU2Nyb2xsQW5pbWF0b3JN
YWM6OnNjcm9sbCBhZ2FpbiB3aXRoIHRoZSBzbmFwcGVkIHBvc2l0aW9ucyBhbmQgU2Nyb2xsQmVo
YXZpb3I6OkRlZmF1bHQuCi0gICAgaWYgKGJlaGF2aW9yID09IFNjcm9sbEJlaGF2aW9yOjpEb0Rp
cmVjdGlvbmFsU25hcHBpbmcpCisgICAgaWYgKGJlaGF2aW9yICYgU2Nyb2xsQmVoYXZpb3I6OkRv
RGlyZWN0aW9uYWxTbmFwcGluZykKICAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3Jv
bGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7
CiAKLSAgICBib29sIHNob3VsZEFuaW1hdGUgPSBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lz
dGVtKCkgJiYgbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSAmJiBncmFu
dWxhcml0eSAhPSBTY3JvbGxCeVBpeGVsOworICAgIGJvb2wgc2hvdWxkQW5pbWF0ZSA9IHNjcm9s
bEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSAmJiBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFu
aW1hdG9yRW5hYmxlZCgpICYmIGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5UGl4ZWwKKyAgICAgICAg
JiYgIShiZWhhdmlvciAmIFNjcm9sbEJlaGF2aW9yOjpOZXZlckFuaW1hdGUpOwogICAgIEZsb2F0
UG9pbnQgbmV3UG9zaXRpb24gPSBwb3NpdGlvbkZyb21TdGVwKG9yaWVudGF0aW9uLCBzdGVwLCBt
dWx0aXBsaWVyKTsKICAgICBuZXdQb3NpdGlvbiA9IG5ld1Bvc2l0aW9uLmNvbnN0cmFpbmVkQmV0
d2VlbihzY3JvbGxhYmxlQXJlYSgpLm1pbmltdW1TY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxhYmxl
QXJlYSgpLm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsKIApAQCAtMTUwMCw2ICsxNTAxLDExIEBA
IHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25z
dCBJbnRSZWN0JiBzY3JvbGxlclRodW1iCiAgICAgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Qg
PSByZWN0SW5WaWV3Q29vcmRpbmF0ZXM7CiB9CiAKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnBy
b2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdo
ZWVsRXZlbnQpCit7CisgICAgcmV0dXJuIG1fc2Nyb2xsQ29udHJvbGxlci5wcm9jZXNzV2hlZWxF
dmVudEZvclNjcm9sbFNuYXAod2hlZWxFdmVudCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZlNGQzNmM1
OWE5MTdjMTA0NTI5Mjc3NDcyMTA0MDVkMzc1ODlhODMuLmY1YjExN2EzNDgwYmZlODZmYzVmMGFj
MThjMDVhNjYwOTcyMGVhNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMy0wMiAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2lj
IChub24tbW9tZW50dW0pIHdoZWVsIGV2ZW50IGhhbmRsaW5nIGZvciBzY3JvbGwgc25hcAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNTk0CisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzMy9zY3JvbGwt
c25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIG5ldyB0
ZXN0IGJlY2F1c2UgaXQgdXNlcyBtb3VzZSBldmVudCBzaW11bGF0aW9uLgorICAgICAgICBNb3Zl
IGV4aXN0aW5nIGNsYXNzaWZpY2F0aW9uIHRvIGJldHRlciBzZWN0aW9uIGFzIHdlbGwuCisKIDIw
MjEtMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEVu
YWJsZSBNRURJQV9TT1VSQ0UgaW4gSU9TIFNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWU2MWNhMjIwNzE0MWVlZTAxODhiN2IxYzcyYzFjM2My
ZmE5ZjBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9z
Y3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitQQVNT
IGhvcml6b250YWwgbW91c2Ugd2hlZWwgZXZlbnQgc25hcHBlZAorUEFTUyB2ZXJ0aWNhbCBtb3Vz
ZSB3aGVlbCBldmVudCBzbmFwcGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwt
c25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZTIzZGFiM2Qy
ZWY3OTc1YmQyN2Q0OTJmMjA1YWZhNjI1OTdhYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwKQEAgLTAs
MCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PHRpdGxlPlNpbXBsZSB3aGVlbCBldmVudHMgc2hvdWxkIHRyaWdnZXIgc2Nyb2xsIHNuYXBwaW5n
PC90aXRsZT4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIC5j
b250YWluZXIgeworICAgICAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICAg
ICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOworICAgICAg
ICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IGJvdGggbWFuZGF0b3J5OworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAuaG9yaXpvbnRhbC1kcmF3ZXIgeworICAgICAgICAgICAgICAgIGhl
aWdodDogMTAwJTsKKyAgICAgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIC5ibG9jayB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwor
ICAgICAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25h
cC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cuZXZlbnRTZW5kZXIgPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lclRleHQgPSAiU2ltcGxlIHdo
ZWVsIGV2ZW50cyBzaG91bGQgdHJpZ2dlciBzY3JvbGwgc25hcHBpbmciOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjAsIDE5MCk7CisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oODAsIDE5MCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgp
OworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSgtMSwgMCk7CisK
KyAgICAgICAgICAgICAgICBsZXQgaG9yaXpvbnRhbENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJob3Jpem9udGFsLWNvbnRhaW5lciIpOworICAgICAgICAgICAgICAgIGF3YWl0
IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmltYXRpb25Ub1NldHRsZShob3Jpem9udGFs
Q29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGhvcml6b250YWxDb250YWlu
ZXIuc2Nyb2xsTGVmdCA9PSAyMDAsICJob3Jpem9udGFsIG1vdXNlIHdoZWVsIGV2ZW50IHNuYXBw
ZWQiKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDE5MCwgMjIw
KTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxOTAsIDI3MCk7CisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeSgwLCAtMSk7CisKKyAgICAgICAgICAgICAgICBsZXQgdmVydGljYWxDb250YWlu
ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVydGljYWwtY29udGFpbmVyIik7CisgICAg
ICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRv
U2V0dGxlKHZlcnRpY2FsQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKHZl
cnRpY2FsQ29udGFpbmVyLnNjcm9sbFRvcCA9PSAxODUsICJ2ZXJ0aWNhbCBtb3VzZSB3aGVlbCBl
dmVudCBzbmFwcGVkIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAg
ICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+CisgICAg
ICAgIDxkaXYgaWQ9Imhvcml6b250YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZHJhd2VyIj4KKyAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImZsb2F0OiBsZWZ0OyBiYWNrZ3JvdW5kOiAjODA0
NzVFIj48L2Rpdj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImZs
b2F0OiBsZWZ0OyBiYWNrZ3JvdW5kOiAjQ0M1QTcxIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0idmVydGljYWwtY29udGFpbmVyIiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0i
YmFja2dyb3VuZDogIzgwNDc1RSI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9j
ayIgc3R5bGU9ImJhY2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPHAgaWQ9ImNvbnNvbGUiPjwvcD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgPC9z
Y3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
LXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDUyMmVjMjJhOGI1ZTJmYjYxOWUwYzNmNmExNjFi
MWQ3NWI4OTU1NGEuLjg0YTA0N2M2ZGE4M2U4ZmRlNjIyZmVjMWQ5NDNjNDdjOTM0ZDVhZTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEz
Nyw3ICsxMzcsNiBAQCBzY3JvbGxiYXJzL3Njcm9sbGluZy1ieS1wYWdlLW9uLWtleWJvYXJkLXNw
YWNlYmFyLmh0bWwgWyBGYWlsdXJlIF0KIHNjcm9sbGJhcnMvc2Nyb2xsYmFycy1vbi1wb3NpdGlv
bmVkLWNvbnRlbnQuaHRtbCBbIEZhaWx1cmUgXQogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtcGFk
ZGluZy1tYWluZnJhbWUtcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KIGNzczMvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXBhZGRpbmctb3ZlcmZsb3ctcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KLWNzczMvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRlci5odG1sIFsgRmFpbHVy
ZSBdCiAKICMgU1ZHIHRlc3RzIHRoYXQgdGltZSBvdXQgKHRoZXNlIHJlcXVpcmUgRXZlbnRTZW5k
ZXIpCiBzdmcvYW5pbWF0aW9ucy9hbmltVmFsLWJhc2ljcy5odG1sCkBAIC05MzMsNiArOTMyLDgg
QEAgZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0LW91dC1vZi1mbG9hdGVkLW5vbi1lZGl0YWJsZS0w
OS5odG1sIFsgU2tpcCBdCiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Qtb3V0LW9mLWZsb2F0ZWQt
bm9uLWVkaXRhYmxlLTEwLmh0bWwgWyBTa2lwIF0KIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1v
dXQtb2YtZmxvYXRlZC1ub24tZWRpdGFibGUtMTEuaHRtbCBbIFNraXAgXQogZWRpdGluZy9zZWxl
Y3Rpb24vc2VsZWN0LW91dC1vZi1mbG9hdGVkLW5vbi1lZGl0YWJsZS0xMi5odG1sIFsgU2tpcCBd
Citjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWNsaWNrLXNjcm9sbGJhci1ndXR0ZXIuaHRt
bCBbIFNraXAgXQorY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1s
IFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xOTIwODggbWVkaWEvbm8tZnVsbHNjcmVlbi13aGVu
LWhpZGRlbi5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422686</attachid>
            <date>2021-03-09 04:35:10 -0800</date>
            <delta_ts>2021-03-09 08:46:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222594-20210309133508.patch</filename>
            <type>text/plain</type>
            <size>18555</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWEzZDg4MjU2YzI1ZTNh
MTcyMmUyNzY0OWUxY2Q4MWM4ZDQ5MDU4My4uYTAzYTIxNmFmNGYyOGNmNTA3OGRiNDZjZDhjY2Fl
MTdlYjFjOTYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTA5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYmFzaWMg
KG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcgZm9yIHNjcm9sbCBzbmFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBjc3MzL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwKKworICAgICAgICBFbmFibGUg
c2Nyb2xsIHNuYXBwaW5nIGZvciBiYXNpYyB3aGVlbCBldmVudHMgb24gR1RLKyBhbmQgV1BFLiBU
aGUgTWFjIHBvcnQKKyAgICAgICAgaGFzIHNwZWNpYWwgd2hlZWwgaGFuZGxpbmcgZHVlIHRvIG1v
bWVudHVtIHNjcm9sbGluZy4gT3RoZXIgc2Nyb2xsLXNuYXAtZW5hYmxlZAorICAgICAgICBwb3J0
cyBjYW4ganVzdCB1c2UgYSBiYXNpYyB2ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9s
bCk6IEFjY2VwdCBhIGJpdG1hc2sgb2Ygb3B0aW9ucyBub3cuIFRoaXMKKyAgICAgICAgd2lsbCBh
bGxvdyB1c2luZyB0aGlzIG1ldGhvZCB3aGVuIGhhbmRsaW5nIHdoZWVsIGV2ZW50cyB0aGF0IGRv
IG5vdCBhbmltYXRlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdo
ZWVsRXZlbnQpOiBUcmlnZ2VyIDo6c2Nyb2xsIHdpdGgKKyAgICAgICAgc2Nyb2xsIHNuYXBwaW5n
IGVuYWJsZWQgYW5kIHBhc3MgdGhlIGFwcHJvcHJpYXRlIG9wdGlvbiB0byBkaXNhYmxlIGFuaW1h
dGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6cHJvY2Vzc1doZWVsRXZl
bnRGb3JTY3JvbGxTbmFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9y
Ojpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOiBNYWRlCisgICAgICAgIHRoaXMgYSBt
ZXRob2QgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOiBBZGRlZCBwcm9jZXNzV2hlZWxFdmVudEZv
clNjcm9sbFNuYXAuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbCk6IFBheSBhdHRl
bnRpb24gdG8gdGhlIE5ldmVyQW5pbWF0ZSBiaXRtYXNrIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOiBBZGRl
ZC4KKwogMjAyMS0wMy0wOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gdW5pbXBsZW1lbnRlZCBhbmQgZGVwcmVj
YXRlZCBzY3JvbGwtc25hcCBwcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5jcHAKaW5kZXggNjRjODQzYjU5NzUyNDY0YWNmN2Y3NDRiNWJiZTU3OGIyN2Q0
OGY4NC4uYTExMzFmMmMzZmY1MWU0YWMzNzdmOTY5N2ZlOTQ5ZDBlMTdiNjk5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtODEsMTggKzgxLDE5IEBA
IFNjcm9sbEFuaW1hdG9yOjp+U2Nyb2xsQW5pbWF0b3IoKQogI2VuZGlmCiB9CiAKLWJvb2wgU2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIs
IFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yKQorYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNj
cm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxh
cml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgT3B0aW9uU2V0PFNjcm9sbEJlaGF2
aW9yPiBiZWhhdmlvcikKIHsKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotICAgIGlmIChi
ZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKSB7CisgICAg
aWYgKGJlaGF2aW9yLmNvbnRhaW5zKFNjcm9sbEJlaGF2aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBp
bmcpKSB7CiAgICAgICAgIGF1dG8gbmV3T2Zmc2V0ID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9m
ZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbkZyb21TdGVwKG9yaWVudGF0aW9uLCBzdGVwLCBtdWx0
aXBsaWVyKSwgdG9GbG9hdFNpemUobV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKSkpOwog
ICAgICAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9mZnNl
dCgpOworICAgICAgICBiZWhhdmlvci5yZW1vdmUoU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9u
YWxTbmFwcGluZyk7CiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xs
YmFyKSB7CiAgICAgICAgICAgICBuZXdPZmZzZXQuc2V0WChtX3Njcm9sbENvbnRyb2xsZXIuYWRq
dXN0U2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBuZXdPZmZz
ZXQueCgpLCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0LngoKSkpOwotICAgICAgICAgICAgcmV0
dXJuIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3T2Zmc2V0Lngo
KSAtIGN1cnJlbnRPZmZzZXQueCgpLCAxLjApOworICAgICAgICAgICAgcmV0dXJuIHNjcm9sbChI
b3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3T2Zmc2V0LngoKSAtIGN1cnJlbnRP
ZmZzZXQueCgpLCAxLjAsIGJlaGF2aW9yKTsKICAgICAgICAgfQogICAgICAgICBuZXdPZmZzZXQu
c2V0WShtX3Njcm9sbENvbnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZl
bnRBeGlzOjpWZXJ0aWNhbCwgbmV3T2Zmc2V0LnkoKSwgbXVsdGlwbGllciwgY3VycmVudE9mZnNl
dC55KCkpKTsKLSAgICAgICAgcmV0dXJuIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVs
YXJpdHksIG5ld09mZnNldC55KCkgLSBjdXJyZW50T2Zmc2V0LnkoKSwgMS4wKTsKKyAgICAgICAg
cmV0dXJuIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIG5ld09mZnNldC55
KCkgLSBjdXJyZW50T2Zmc2V0LnkoKSwgMS4wLCBiZWhhdmlvcik7CiAgICAgfQogI2Vsc2UKICAg
ICBVTlVTRURfUEFSQU0oZ3JhbnVsYXJpdHkpOwpAQCAtMTAwLDcgKzEwMSw3IEBAIGJvb2wgU2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpICYm
ICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFu
aW1hdG9yRW5hYmxlZCgpKSB7CisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0
b3JFbmFibGVkKCkgJiYgIWJlaGF2aW9yLmNvbnRhaW5zKFNjcm9sbEJlaGF2aW9yOjpOZXZlckFu
aW1hdGUpKSB7CiAgICAgICAgIG1fc2Nyb2xsQW5pbWF0aW9uLT5zZXRDdXJyZW50UG9zaXRpb24o
bV9jdXJyZW50UG9zaXRpb24pOwogICAgICAgICByZXR1cm4gbV9zY3JvbGxBbmltYXRpb24tPnNj
cm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOwogICAgIH0K
QEAgLTE2MCwxMCArMTYxLDYgQEAgRmxvYXRQb2ludCBTY3JvbGxBbmltYXRvcjo6cG9zaXRpb25G
cm9tU3RlcChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgZmwKIAogI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCiAjaWYgUExBVEZPUk0oTUFDKQotYm9vbCBTY3JvbGxBbmltYXRv
cjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCkKLXsKLSAgICByZXR1cm4gbV9zY3JvbGxDb250cm9sbGVyLnByb2Nlc3NX
aGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50KTsKLX0KICNlbmRpZgogCiBib29sIFNj
cm9sbEFuaW1hdG9yOjphY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSBjb25zdApAQCAt
MTc5LDEwICsxNzYsMTEgQEAgdW5zaWduZWQgU2Nyb2xsQW5pbWF0b3I6OmFjdGl2ZVNjcm9sbFNu
YXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNvbnMKIAogYm9vbCBTY3JvbGxB
bmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiB7
Ci0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgJiYgUExBVEZPUk0oTUFDKQotICAgIGlmICht
X3Njcm9sbENvbnRyb2xsZXIucHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGUpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7CisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKKyAgICAgICAg
aWYgKHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChlKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRXZlbnRzIGlu
IHRoZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6TWF5QmVnaW4gcGhhc2UgaGF2ZSBubyBkZWx0
YXMsIGFuZCB0aGVyZWZvcmUgbmV2ZXIgcGFzc2VzIHRocm91Z2ggdGhlIHNjcm9sbCBoYW5kbGlu
ZyBsb2dpYyBiZWxvdy4KICAgICAvLyBUaGlzIGNhdXNlcyB1cyB0byByZXR1cm4gd2l0aCBhbiAn
dW5oYW5kbGVkJyByZXR1cm4gc3RhdGUsIGV2ZW4gdGhvdWdoIHRoaXMgZXZlbnQgd2FzIHN1Y2Nl
c3NmdWxseSBwcm9jZXNzZWQuCkBAIC0yMDMsNyArMjAxLDYgQEAgYm9vbCBTY3JvbGxBbmltYXRv
cjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAKICAgICBi
b29sIGhhbmRsZWQgPSBmYWxzZTsKIAotICAgIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
ID0gU2Nyb2xsQnlQaXhlbDsKICAgICBJbnRTaXplIG1heEZvcndhcmRTY3JvbGxEZWx0YSA9IG1f
c2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgLSBtX3Njcm9sbGFibGVBcmVh
LnNjcm9sbFBvc2l0aW9uKCk7CiAgICAgSW50U2l6ZSBtYXhCYWNrd2FyZFNjcm9sbERlbHRhID0g
bV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxQb3NpdGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS5taW5p
bXVtU2Nyb2xsUG9zaXRpb24oKTsKICAgICBpZiAoKGRlbHRhWCA8IDAgJiYgbWF4Rm9yd2FyZFNj
cm9sbERlbHRhLndpZHRoKCkgPiAwKQpAQCAtMjEyLDYgKzIwOSwxMCBAQCBib29sIFNjcm9sbEFu
aW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAg
ICAgICAgfHwgKGRlbHRhWSA+IDAgJiYgbWF4QmFja3dhcmRTY3JvbGxEZWx0YS5oZWlnaHQoKSA+
IDApKSB7CiAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwogCisgICAgICAgIE9wdGlvblNldDxTY3Jv
bGxCZWhhdmlvcj4gYmVoYXZpb3IoU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGlu
Zyk7CisgICAgICAgIGlmIChlLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSkKKyAgICAgICAg
ICAgIGJlaGF2aW9yLmFkZChTY3JvbGxCZWhhdmlvcjo6TmV2ZXJBbmltYXRlKTsKKwogICAgICAg
ICBpZiAoZGVsdGFZKSB7CiAgICAgICAgICAgICBpZiAoZS5ncmFudWxhcml0eSgpID09IFNjcm9s
bEJ5UGFnZVdoZWVsRXZlbnQpIHsKICAgICAgICAgICAgICAgICBib29sIG5lZ2F0aXZlID0gZGVs
dGFZIDwgMDsKQEAgLTIxOSwxMCArMjIwLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAgICAgICAgICAgICAgICAg
aWYgKG5lZ2F0aXZlKQogICAgICAgICAgICAgICAgICAgICBkZWx0YVkgPSAtZGVsdGFZOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygp
KQotICAgICAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKHBvc2l0
aW9uRnJvbVN0ZXAoVmVydGljYWxTY3JvbGxiYXIsIHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0
ZXAoKSwgLWRlbHRhWSkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNjcm9s
bChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhl
bFN0ZXAoKSwgLWRlbHRhWSk7CisgICAgICAgICAgICBzY3JvbGwoVmVydGljYWxTY3JvbGxiYXIs
IFNjcm9sbEJ5UGl4ZWwsIHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSwg
YmVoYXZpb3IpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRlbHRhWCkgewpAQCAtMjMyLDEw
ICsyMzAsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUpCiAgICAg
ICAgICAgICAgICAgICAgIGRlbHRhWCA9IC1kZWx0YVg7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAoZS5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkpCi0gICAgICAgICAgICAgICAg
c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmltYXRpb24ocG9zaXRpb25Gcm9tU3RlcChIb3Jpem9u
dGFsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWCkp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNjcm9sbChIb3Jpem9udGFsU2Ny
b2xsYmFyLCBncmFudWxhcml0eSwgaG9yaXpvbnRhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1k
ZWx0YVgpOworICAgICAgICAgICAgc2Nyb2xsKEhvcml6b250YWxTY3JvbGxiYXIsIFNjcm9sbEJ5
UGl4ZWwsIGhvcml6b250YWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFYLCBiZWhhdmlv
cik7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGhhbmRsZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA2ZWIxNDA2NzdkMTM4YmVkMDU0ZTZlNzBm
MTBiM2YxODY4NWI4OGQ4Li5lOTc3OWQxMWFlMTdjMjA1MjVmYmY1ZGZkNDAwNzk3MWQ5OTBkZTc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTY5LDE1ICs2
OSwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2Nyb2xsQW5pbWF0b3IoKTsKIAogICAgIGVu
dW0gU2Nyb2xsQmVoYXZpb3IgewotICAgICAgICBEZWZhdWx0LAotICAgICAgICBEb0RpcmVjdGlv
bmFsU25hcHBpbmcsCisgICAgICAgIERlZmF1bHQgPSAwLAorICAgICAgICBEb0RpcmVjdGlvbmFs
U25hcHBpbmcgPSAxIDw8IDEsCisgICAgICAgIE5ldmVyQW5pbWF0ZSA9IDEgPDwgMiwKICAgICB9
OwogCiAgICAgLy8gQ29tcHV0ZXMgYSBzY3JvbGwgZGVzdGluYXRpb24gZm9yIHRoZSBnaXZlbiBw
YXJhbWV0ZXJzLiAgUmV0dXJucyBmYWxzZSBpZgogICAgIC8vIGFscmVhZHkgYXQgdGhlIGRlc3Rp
bmF0aW9uLiAgT3RoZXJ3aXNlLCBzdGFydHMgc2Nyb2xsaW5nIHRvd2FyZHMgdGhlCiAgICAgLy8g
ZGVzdGluYXRpb24gYW5kIHJldHVybnMgdHJ1ZS4gIFNjcm9sbGluZyBtYXkgYmUgaW1tZWRpYXRl
IG9yIGFuaW1hdGVkLgogICAgIC8vIFRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5
cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBhbmltYXRlcy4KLSAgICB2aXJ0dWFsIGJvb2wg
c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3Rl
cCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6RGVm
YXVsdCk7CisgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxT
Y3JvbGxCZWhhdmlvcj4pOwogCiAgICAgYm9vbCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRp
b24oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNs
YW1wZWQpOwogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlv
bihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFt
cGluZzo6Q2xhbXBlZCk7CkBAIC0xNDksOSArMTUwLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBib29sIHBy
b2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
LSNlbmRpZgorICAgIHZpcnR1YWwgYm9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHVw
ZGF0ZVNjcm9sbFNuYXBTdGF0ZSgpOwogICAgIGJvb2wgYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlk
Q2hhbmdlKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhp
cyhTY3JvbGxFdmVudEF4aXMpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRleCA2NDliNGNmNTQ0NTA5OGEzMzEyMjgzODUwYjUx
NzJjYTFjZDMyNzhiLi40YTVlM2YyZTJmOTZkNmU1NThjZmEzZmRiMWE3MjllY2VjYjViNDRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApA
QCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fc2VuZENvbnRlbnRBcmVhU2Ny
b2xsZWRUaW1lcjsKICAgICBGbG9hdFNpemUgbV9jb250ZW50QXJlYVNjcm9sbGVkVGltZXJTY3Jv
bGxEZWx0YTsKIAotICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3Ip
IG92ZXJyaWRlOworICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgT3B0aW9uU2V0PFNjcm9s
bEJlaGF2aW9yPikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1h
dGlvbihjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0
aW9uV2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkgb3ZlcnJpZGU7CiAKQEAgLTE0MCw2ICsx
NDAsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBob3Jpem9udGFsU2Nyb2xsYmFyU3RhdGVGb3JU
ZXN0aW5nKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVG
b3JUZXN0aW5nKCkgY29uc3QgZmluYWw7CiAKKyAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9y
U2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKwogICAgIC8v
IFNjcm9sbENvbnRyb2xsZXJDbGllbnQuCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAg
IEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IDhlMDBiZDcxOGJmNTBi
NjM0ZDhiMjk2NjY4Y2NkZWI1YmM4NDI5ZWUuLmMwOTVjZDY2ZjU5NTZmOGI4OWFhY2IzM2Q1Yjdm
ODAyMzBhOWE3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMubW0KQEAgLTc1MSwxNiArNzUxLDE3IEBAIHN0YXRpYyBib29sIHJ1YmJlckJh
bmRpbmdFbmFibGVkRm9yU3lzdGVtKCkKIH0KICNlbmRpZgogCi1ib29sIFNjcm9sbEFuaW1hdG9y
TWFjOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxC
ZWhhdmlvciBiZWhhdmlvcikKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxi
YXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxTY3JvbGxCZWhhdmlvcj4g
YmVoYXZpb3IpCiB7CiAgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKIAog
ICAgIC8vIFRoaXMgbWV0aG9kIGRvZXNuJ3QgZG8gZGlyZWN0aW9uYWwgc25hcHBpbmcsIGJ1dCBv
dXIgYmFzZSBjbGFzcyBkb2VzLiBJdCB3aWxsIGNhbGwgaW50bwogICAgIC8vIFNjcm9sbEFuaW1h
dG9yTWFjOjpzY3JvbGwgYWdhaW4gd2l0aCB0aGUgc25hcHBlZCBwb3NpdGlvbnMgYW5kIFNjcm9s
bEJlaGF2aW9yOjpEZWZhdWx0LgotICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6
RG9EaXJlY3Rpb25hbFNuYXBwaW5nKQorICAgIGlmIChiZWhhdmlvci5jb250YWlucyhTY3JvbGxC
ZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKSkKICAgICAgICAgcmV0dXJuIFNjcm9sbEFu
aW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVy
LCBiZWhhdmlvcik7CiAKLSAgICBib29sIHNob3VsZEFuaW1hdGUgPSBzY3JvbGxBbmltYXRpb25F
bmFibGVkRm9yU3lzdGVtKCkgJiYgbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJs
ZWQoKSAmJiBncmFudWxhcml0eSAhPSBTY3JvbGxCeVBpeGVsOworICAgIGJvb2wgc2hvdWxkQW5p
bWF0ZSA9IHNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSAmJiBtX3Njcm9sbGFibGVB
cmVhLnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpICYmIGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5UGl4
ZWwKKyAgICAgICAgJiYgIWJlaGF2aW9yLmNvbnRhaW5zKFNjcm9sbEJlaGF2aW9yOjpOZXZlckFu
aW1hdGUpOwogICAgIEZsb2F0UG9pbnQgbmV3UG9zaXRpb24gPSBwb3NpdGlvbkZyb21TdGVwKG9y
aWVudGF0aW9uLCBzdGVwLCBtdWx0aXBsaWVyKTsKICAgICBuZXdQb3NpdGlvbiA9IG5ld1Bvc2l0
aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihzY3JvbGxhYmxlQXJlYSgpLm1pbmltdW1TY3JvbGxQb3Np
dGlvbigpLCBzY3JvbGxhYmxlQXJlYSgpLm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsKIApAQCAt
MTUwMCw2ICsxNTAxLDExIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNldFZpc2libGVTY3Jv
bGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0JiBzY3JvbGxlclRodW1iCiAgICAgbV92aXNpYmxl
U2Nyb2xsZXJUaHVtYlJlY3QgPSByZWN0SW5WaWV3Q29vcmRpbmF0ZXM7CiB9CiAKK2Jvb2wgU2Ny
b2xsQW5pbWF0b3JNYWM6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCit7CisgICAgcmV0dXJuIG1fc2Nyb2xsQ29udHJv
bGxlci5wcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAod2hlZWxFdmVudCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5H
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDAzYWNkODk3NjA3Y2ZmNmZhNzc1OWI4NTA2MWM1M2FkYjRiYjViYTcuLmY0NDE5
ZDExMTAwZTVhOGNjMmU3MTJlZGRlMDA0ODJlNzZiZWI0YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAyMS0wMy0wOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgQWRkIGJhc2ljIChub24tbW9tZW50dW0pIHdoZWVsIGV2ZW50IGhhbmRsaW5nIGZv
ciBzY3JvbGwgc25hcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyNTk0CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwt
ZXZlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0
YXRpb25zOiBTa2lwIG5ldyB0ZXN0IGJlY2F1c2UgaXQgdXNlcyBtb3VzZSBldmVudCBzaW11bGF0
aW9uLgorICAgICAgICBNb3ZlIGV4aXN0aW5nIGNsYXNzaWZpY2F0aW9uIHRvIGJldHRlciBzZWN0
aW9uIGFzIHdlbGwuCisKIDIwMjEtMDMtMDggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIGJvcmRlci13aWR0aCBpbnRlcnBv
bGF0aW9uIHRlc3QgYWZ0ZXIgV1BUIFBSICMyNzkzNC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzllNjFjYTIyMDcxNDFlZWUwMTg4YjdiMWM3MmMxYzNjMmZh
OWYwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtd2hlZWwtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBo
b3Jpem9udGFsIG1vdXNlIHdoZWVsIGV2ZW50IHNuYXBwZWQKK1BBU1MgdmVydGljYWwgbW91c2Ug
d2hlZWwgZXZlbnQgc25hcHBlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGUyM2RhYjNkMmVm
Nzk3NWJkMjdkNDkyZjIwNWFmYTYyNTk3YWI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sCkBAIC0wLDAg
KzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0
aXRsZT5TaW1wbGUgd2hlZWwgZXZlbnRzIHNob3VsZCB0cmlnZ2VyIHNjcm9sbCBzbmFwcGluZzwv
dGl0bGU+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICAuY29u
dGFpbmVyIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICAgICAg
ICAgICAgICBzY3JvbGwtc25hcC10eXBlOiBib3RoIG1hbmRhdG9yeTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgLmhvcml6b250YWwtZHJhd2VyIHsKKyAgICAgICAgICAgICAgICBoZWln
aHQ6IDEwMCU7CisgICAgICAgICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAuYmxvY2sgeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAg
ICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAt
YWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgICAgICBhc3luYyBmdW5jdGlvbiBvbkxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyID09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJUZXh0ID0gIlNpbXBsZSB3aGVl
bCBldmVudHMgc2hvdWxkIHRyaWdnZXIgc2Nyb2xsIHNuYXBwaW5nIjsKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwLCAxOTApOworICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKDgwLCAxOTApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
KworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnkoLTEsIDApOworCisg
ICAgICAgICAgICAgICAgbGV0IGhvcml6b250YWxDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiaG9yaXpvbnRhbC1jb250YWluZXIiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBV
SUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9uVG9TZXR0bGUoaG9yaXpvbnRhbENv
bnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShob3Jpem9udGFsQ29udGFpbmVy
LnNjcm9sbExlZnQgPT0gMjAwLCAiaG9yaXpvbnRhbCBtb3VzZSB3aGVlbCBldmVudCBzbmFwcGVk
Iik7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxOTAsIDIyMCk7
CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTkwLCAyNzApOworICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnkoMCwgLTEpOworCisgICAgICAgICAgICAgICAgbGV0IHZlcnRpY2FsQ29udGFpbmVy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZlcnRpY2FsLWNvbnRhaW5lciIpOworICAgICAg
ICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmltYXRpb25Ub1Nl
dHRsZSh2ZXJ0aWNhbENvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZSh2ZXJ0
aWNhbENvbnRhaW5lci5zY3JvbGxUb3AgPT0gMTg1LCAidmVydGljYWwgbW91c2Ugd2hlZWwgZXZl
bnQgc25hcHBlZCIpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAg
IGNvbnNvbGUubG9nKGUpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorICAgICAg
ICA8ZGl2IGlkPSJob3Jpem9udGFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWRyYXdlciI+CisgICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJmbG9hdDogbGVmdDsgYmFja2dyb3VuZDogIzgwNDc1
RSI+PC9kaXY+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJmbG9h
dDogbGVmdDsgYmFja2dyb3VuZDogI0NDNUE3MSI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InZlcnRpY2FsLWNvbnRhaW5lciIgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJh
Y2tncm91bmQ6ICM4MDQ3NUUiPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2si
IHN0eWxlPSJiYWNrZ3JvdW5kOiAjQ0M1QTcxIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxwIGlkPSJjb25zb2xlIj48L3A+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIDwvc2Ny
aXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13
azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlZjI1NmU5MmIwMWJiMTA3YmI2OWUxZDRmNTEyOGVj
Yjk1ODFiMzBmLi5kNTRiNDQ3OTAyYmU1YjA5ODMxNjU3YThiNmE1M2FiYWRhMGI3Mzg4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzcs
NyArMTM3LDYgQEAgc2Nyb2xsYmFycy9zY3JvbGxpbmctYnktcGFnZS1vbi1rZXlib2FyZC1zcGFj
ZWJhci5odG1sIFsgRmFpbHVyZSBdCiBzY3JvbGxiYXJzL3Njcm9sbGJhcnMtb24tcG9zaXRpb25l
ZC1jb250ZW50Lmh0bWwgWyBGYWlsdXJlIF0KIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXBhZGRp
bmctbWFpbmZyYW1lLXBhZ2luZy5odG1sIFsgRmFpbHVyZSBdCiBjc3MzL3Njcm9sbC1zbmFwL3Nj
cm9sbC1wYWRkaW5nLW92ZXJmbG93LXBhZ2luZy5odG1sIFsgRmFpbHVyZSBdCi1jc3MzL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLWNsaWNrLXNjcm9sbGJhci1ndXR0ZXIuaHRtbCBbIEZhaWx1cmUg
XQogCiAjIFNWRyB0ZXN0cyB0aGF0IHRpbWUgb3V0ICh0aGVzZSByZXF1aXJlIEV2ZW50U2VuZGVy
KQogc3ZnL2FuaW1hdGlvbnMvYW5pbVZhbC1iYXNpY3MuaHRtbApAQCAtOTMzLDYgKzkzMiw4IEBA
IGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1vdXQtb2YtZmxvYXRlZC1ub24tZWRpdGFibGUtMDku
aHRtbCBbIFNraXAgXQogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0LW91dC1vZi1mbG9hdGVkLW5v
bi1lZGl0YWJsZS0xMC5odG1sIFsgU2tpcCBdCiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Qtb3V0
LW9mLWZsb2F0ZWQtbm9uLWVkaXRhYmxlLTExLmh0bWwgWyBTa2lwIF0KIGVkaXRpbmcvc2VsZWN0
aW9uL3NlbGVjdC1vdXQtb2YtZmxvYXRlZC1ub24tZWRpdGFibGUtMTIuaHRtbCBbIFNraXAgXQor
Y3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1jbGljay1zY3JvbGxiYXItZ3V0dGVyLmh0bWwg
WyBTa2lwIF0KK2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbCBb
IFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTkyMDg4IG1lZGlhL25vLWZ1bGxzY3JlZW4td2hlbi1o
aWRkZW4uaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAK
</data>
<flag name="commit-queue"
          id="441860"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422701</attachid>
            <date>2021-03-09 08:24:10 -0800</date>
            <delta_ts>2021-03-12 10:49:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222594-20210309172409.patch</filename>
            <type>text/plain</type>
            <size>19442</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWEzZDg4MjU2YzI1ZTNh
MTcyMmUyNzY0OWUxY2Q4MWM4ZDQ5MDU4My4uYTAzYTIxNmFmNGYyOGNmNTA3OGRiNDZjZDhjY2Fl
MTdlYjFjOTYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTA5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYmFzaWMg
KG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcgZm9yIHNjcm9sbCBzbmFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBjc3MzL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwKKworICAgICAgICBFbmFibGUg
c2Nyb2xsIHNuYXBwaW5nIGZvciBiYXNpYyB3aGVlbCBldmVudHMgb24gR1RLKyBhbmQgV1BFLiBU
aGUgTWFjIHBvcnQKKyAgICAgICAgaGFzIHNwZWNpYWwgd2hlZWwgaGFuZGxpbmcgZHVlIHRvIG1v
bWVudHVtIHNjcm9sbGluZy4gT3RoZXIgc2Nyb2xsLXNuYXAtZW5hYmxlZAorICAgICAgICBwb3J0
cyBjYW4ganVzdCB1c2UgYSBiYXNpYyB2ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9s
bCk6IEFjY2VwdCBhIGJpdG1hc2sgb2Ygb3B0aW9ucyBub3cuIFRoaXMKKyAgICAgICAgd2lsbCBh
bGxvdyB1c2luZyB0aGlzIG1ldGhvZCB3aGVuIGhhbmRsaW5nIHdoZWVsIGV2ZW50cyB0aGF0IGRv
IG5vdCBhbmltYXRlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdo
ZWVsRXZlbnQpOiBUcmlnZ2VyIDo6c2Nyb2xsIHdpdGgKKyAgICAgICAgc2Nyb2xsIHNuYXBwaW5n
IGVuYWJsZWQgYW5kIHBhc3MgdGhlIGFwcHJvcHJpYXRlIG9wdGlvbiB0byBkaXNhYmxlIGFuaW1h
dGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6cHJvY2Vzc1doZWVsRXZl
bnRGb3JTY3JvbGxTbmFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9y
Ojpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOiBNYWRlCisgICAgICAgIHRoaXMgYSBt
ZXRob2QgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOiBBZGRlZCBwcm9jZXNzV2hlZWxFdmVudEZv
clNjcm9sbFNuYXAuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbCk6IFBheSBhdHRl
bnRpb24gdG8gdGhlIE5ldmVyQW5pbWF0ZSBiaXRtYXNrIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOiBBZGRl
ZC4KKwogMjAyMS0wMy0wOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gdW5pbXBsZW1lbnRlZCBhbmQgZGVwcmVj
YXRlZCBzY3JvbGwtc25hcCBwcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5jcHAKaW5kZXggNjRjODQzYjU5NzUyNDY0YWNmN2Y3NDRiNWJiZTU3OGIyN2Q0
OGY4NC4uYTExMzFmMmMzZmY1MWU0YWMzNzdmOTY5N2ZlOTQ5ZDBlMTdiNjk5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtODEsMTggKzgxLDE5IEBA
IFNjcm9sbEFuaW1hdG9yOjp+U2Nyb2xsQW5pbWF0b3IoKQogI2VuZGlmCiB9CiAKLWJvb2wgU2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIs
IFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yKQorYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNj
cm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxh
cml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgT3B0aW9uU2V0PFNjcm9sbEJlaGF2
aW9yPiBiZWhhdmlvcikKIHsKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotICAgIGlmIChi
ZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKSB7CisgICAg
aWYgKGJlaGF2aW9yLmNvbnRhaW5zKFNjcm9sbEJlaGF2aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBp
bmcpKSB7CiAgICAgICAgIGF1dG8gbmV3T2Zmc2V0ID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9m
ZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbkZyb21TdGVwKG9yaWVudGF0aW9uLCBzdGVwLCBtdWx0
aXBsaWVyKSwgdG9GbG9hdFNpemUobV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKSkpOwog
ICAgICAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9mZnNl
dCgpOworICAgICAgICBiZWhhdmlvci5yZW1vdmUoU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9u
YWxTbmFwcGluZyk7CiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xs
YmFyKSB7CiAgICAgICAgICAgICBuZXdPZmZzZXQuc2V0WChtX3Njcm9sbENvbnRyb2xsZXIuYWRq
dXN0U2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBuZXdPZmZz
ZXQueCgpLCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0LngoKSkpOwotICAgICAgICAgICAgcmV0
dXJuIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3T2Zmc2V0Lngo
KSAtIGN1cnJlbnRPZmZzZXQueCgpLCAxLjApOworICAgICAgICAgICAgcmV0dXJuIHNjcm9sbChI
b3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3T2Zmc2V0LngoKSAtIGN1cnJlbnRP
ZmZzZXQueCgpLCAxLjAsIGJlaGF2aW9yKTsKICAgICAgICAgfQogICAgICAgICBuZXdPZmZzZXQu
c2V0WShtX3Njcm9sbENvbnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZl
bnRBeGlzOjpWZXJ0aWNhbCwgbmV3T2Zmc2V0LnkoKSwgbXVsdGlwbGllciwgY3VycmVudE9mZnNl
dC55KCkpKTsKLSAgICAgICAgcmV0dXJuIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVs
YXJpdHksIG5ld09mZnNldC55KCkgLSBjdXJyZW50T2Zmc2V0LnkoKSwgMS4wKTsKKyAgICAgICAg
cmV0dXJuIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIG5ld09mZnNldC55
KCkgLSBjdXJyZW50T2Zmc2V0LnkoKSwgMS4wLCBiZWhhdmlvcik7CiAgICAgfQogI2Vsc2UKICAg
ICBVTlVTRURfUEFSQU0oZ3JhbnVsYXJpdHkpOwpAQCAtMTAwLDcgKzEwMSw3IEBAIGJvb2wgU2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpICYm
ICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFu
aW1hdG9yRW5hYmxlZCgpKSB7CisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0
b3JFbmFibGVkKCkgJiYgIWJlaGF2aW9yLmNvbnRhaW5zKFNjcm9sbEJlaGF2aW9yOjpOZXZlckFu
aW1hdGUpKSB7CiAgICAgICAgIG1fc2Nyb2xsQW5pbWF0aW9uLT5zZXRDdXJyZW50UG9zaXRpb24o
bV9jdXJyZW50UG9zaXRpb24pOwogICAgICAgICByZXR1cm4gbV9zY3JvbGxBbmltYXRpb24tPnNj
cm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOwogICAgIH0K
QEAgLTE2MCwxMCArMTYxLDYgQEAgRmxvYXRQb2ludCBTY3JvbGxBbmltYXRvcjo6cG9zaXRpb25G
cm9tU3RlcChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgZmwKIAogI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCiAjaWYgUExBVEZPUk0oTUFDKQotYm9vbCBTY3JvbGxBbmltYXRv
cjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCkKLXsKLSAgICByZXR1cm4gbV9zY3JvbGxDb250cm9sbGVyLnByb2Nlc3NX
aGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50KTsKLX0KICNlbmRpZgogCiBib29sIFNj
cm9sbEFuaW1hdG9yOjphY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSBjb25zdApAQCAt
MTc5LDEwICsxNzYsMTEgQEAgdW5zaWduZWQgU2Nyb2xsQW5pbWF0b3I6OmFjdGl2ZVNjcm9sbFNu
YXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNvbnMKIAogYm9vbCBTY3JvbGxB
bmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiB7
Ci0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgJiYgUExBVEZPUk0oTUFDKQotICAgIGlmICht
X3Njcm9sbENvbnRyb2xsZXIucHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGUpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7CisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKKyAgICAgICAg
aWYgKHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChlKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRXZlbnRzIGlu
IHRoZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6TWF5QmVnaW4gcGhhc2UgaGF2ZSBubyBkZWx0
YXMsIGFuZCB0aGVyZWZvcmUgbmV2ZXIgcGFzc2VzIHRocm91Z2ggdGhlIHNjcm9sbCBoYW5kbGlu
ZyBsb2dpYyBiZWxvdy4KICAgICAvLyBUaGlzIGNhdXNlcyB1cyB0byByZXR1cm4gd2l0aCBhbiAn
dW5oYW5kbGVkJyByZXR1cm4gc3RhdGUsIGV2ZW4gdGhvdWdoIHRoaXMgZXZlbnQgd2FzIHN1Y2Nl
c3NmdWxseSBwcm9jZXNzZWQuCkBAIC0yMDMsNyArMjAxLDYgQEAgYm9vbCBTY3JvbGxBbmltYXRv
cjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAKICAgICBi
b29sIGhhbmRsZWQgPSBmYWxzZTsKIAotICAgIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
ID0gU2Nyb2xsQnlQaXhlbDsKICAgICBJbnRTaXplIG1heEZvcndhcmRTY3JvbGxEZWx0YSA9IG1f
c2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgLSBtX3Njcm9sbGFibGVBcmVh
LnNjcm9sbFBvc2l0aW9uKCk7CiAgICAgSW50U2l6ZSBtYXhCYWNrd2FyZFNjcm9sbERlbHRhID0g
bV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxQb3NpdGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS5taW5p
bXVtU2Nyb2xsUG9zaXRpb24oKTsKICAgICBpZiAoKGRlbHRhWCA8IDAgJiYgbWF4Rm9yd2FyZFNj
cm9sbERlbHRhLndpZHRoKCkgPiAwKQpAQCAtMjEyLDYgKzIwOSwxMCBAQCBib29sIFNjcm9sbEFu
aW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAg
ICAgICAgfHwgKGRlbHRhWSA+IDAgJiYgbWF4QmFja3dhcmRTY3JvbGxEZWx0YS5oZWlnaHQoKSA+
IDApKSB7CiAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwogCisgICAgICAgIE9wdGlvblNldDxTY3Jv
bGxCZWhhdmlvcj4gYmVoYXZpb3IoU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGlu
Zyk7CisgICAgICAgIGlmIChlLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSkKKyAgICAgICAg
ICAgIGJlaGF2aW9yLmFkZChTY3JvbGxCZWhhdmlvcjo6TmV2ZXJBbmltYXRlKTsKKwogICAgICAg
ICBpZiAoZGVsdGFZKSB7CiAgICAgICAgICAgICBpZiAoZS5ncmFudWxhcml0eSgpID09IFNjcm9s
bEJ5UGFnZVdoZWVsRXZlbnQpIHsKICAgICAgICAgICAgICAgICBib29sIG5lZ2F0aXZlID0gZGVs
dGFZIDwgMDsKQEAgLTIxOSwxMCArMjIwLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAgICAgICAgICAgICAgICAg
aWYgKG5lZ2F0aXZlKQogICAgICAgICAgICAgICAgICAgICBkZWx0YVkgPSAtZGVsdGFZOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygp
KQotICAgICAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKHBvc2l0
aW9uRnJvbVN0ZXAoVmVydGljYWxTY3JvbGxiYXIsIHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0
ZXAoKSwgLWRlbHRhWSkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNjcm9s
bChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhl
bFN0ZXAoKSwgLWRlbHRhWSk7CisgICAgICAgICAgICBzY3JvbGwoVmVydGljYWxTY3JvbGxiYXIs
IFNjcm9sbEJ5UGl4ZWwsIHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSwg
YmVoYXZpb3IpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRlbHRhWCkgewpAQCAtMjMyLDEw
ICsyMzAsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUpCiAgICAg
ICAgICAgICAgICAgICAgIGRlbHRhWCA9IC1kZWx0YVg7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAoZS5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkpCi0gICAgICAgICAgICAgICAg
c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmltYXRpb24ocG9zaXRpb25Gcm9tU3RlcChIb3Jpem9u
dGFsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWCkp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNjcm9sbChIb3Jpem9udGFsU2Ny
b2xsYmFyLCBncmFudWxhcml0eSwgaG9yaXpvbnRhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1k
ZWx0YVgpOworICAgICAgICAgICAgc2Nyb2xsKEhvcml6b250YWxTY3JvbGxiYXIsIFNjcm9sbEJ5
UGl4ZWwsIGhvcml6b250YWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFYLCBiZWhhdmlv
cik7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGhhbmRsZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA2ZWIxNDA2NzdkMTM4YmVkMDU0ZTZlNzBm
MTBiM2YxODY4NWI4OGQ4Li5lOTc3OWQxMWFlMTdjMjA1MjVmYmY1ZGZkNDAwNzk3MWQ5OTBkZTc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTY5LDE1ICs2
OSwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2Nyb2xsQW5pbWF0b3IoKTsKIAogICAgIGVu
dW0gU2Nyb2xsQmVoYXZpb3IgewotICAgICAgICBEZWZhdWx0LAotICAgICAgICBEb0RpcmVjdGlv
bmFsU25hcHBpbmcsCisgICAgICAgIERlZmF1bHQgPSAwLAorICAgICAgICBEb0RpcmVjdGlvbmFs
U25hcHBpbmcgPSAxIDw8IDEsCisgICAgICAgIE5ldmVyQW5pbWF0ZSA9IDEgPDwgMiwKICAgICB9
OwogCiAgICAgLy8gQ29tcHV0ZXMgYSBzY3JvbGwgZGVzdGluYXRpb24gZm9yIHRoZSBnaXZlbiBw
YXJhbWV0ZXJzLiAgUmV0dXJucyBmYWxzZSBpZgogICAgIC8vIGFscmVhZHkgYXQgdGhlIGRlc3Rp
bmF0aW9uLiAgT3RoZXJ3aXNlLCBzdGFydHMgc2Nyb2xsaW5nIHRvd2FyZHMgdGhlCiAgICAgLy8g
ZGVzdGluYXRpb24gYW5kIHJldHVybnMgdHJ1ZS4gIFNjcm9sbGluZyBtYXkgYmUgaW1tZWRpYXRl
IG9yIGFuaW1hdGVkLgogICAgIC8vIFRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5
cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBhbmltYXRlcy4KLSAgICB2aXJ0dWFsIGJvb2wg
c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3Rl
cCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6RGVm
YXVsdCk7CisgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxT
Y3JvbGxCZWhhdmlvcj4pOwogCiAgICAgYm9vbCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRp
b24oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNs
YW1wZWQpOwogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlv
bihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFt
cGluZzo6Q2xhbXBlZCk7CkBAIC0xNDksOSArMTUwLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBib29sIHBy
b2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
LSNlbmRpZgorICAgIHZpcnR1YWwgYm9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHVw
ZGF0ZVNjcm9sbFNuYXBTdGF0ZSgpOwogICAgIGJvb2wgYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlk
Q2hhbmdlKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhp
cyhTY3JvbGxFdmVudEF4aXMpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRleCA2NDliNGNmNTQ0NTA5OGEzMzEyMjgzODUwYjUx
NzJjYTFjZDMyNzhiLi40YTVlM2YyZTJmOTZkNmU1NThjZmEzZmRiMWE3MjllY2VjYjViNDRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApA
QCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fc2VuZENvbnRlbnRBcmVhU2Ny
b2xsZWRUaW1lcjsKICAgICBGbG9hdFNpemUgbV9jb250ZW50QXJlYVNjcm9sbGVkVGltZXJTY3Jv
bGxEZWx0YTsKIAotICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3Ip
IG92ZXJyaWRlOworICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgT3B0aW9uU2V0PFNjcm9s
bEJlaGF2aW9yPikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1h
dGlvbihjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0
aW9uV2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkgb3ZlcnJpZGU7CiAKQEAgLTE0MCw2ICsx
NDAsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBob3Jpem9udGFsU2Nyb2xsYmFyU3RhdGVGb3JU
ZXN0aW5nKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVG
b3JUZXN0aW5nKCkgY29uc3QgZmluYWw7CiAKKyAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9y
U2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKwogICAgIC8v
IFNjcm9sbENvbnRyb2xsZXJDbGllbnQuCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAg
IEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IDhlMDBiZDcxOGJmNTBi
NjM0ZDhiMjk2NjY4Y2NkZWI1YmM4NDI5ZWUuLmMwOTVjZDY2ZjU5NTZmOGI4OWFhY2IzM2Q1Yjdm
ODAyMzBhOWE3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMubW0KQEAgLTc1MSwxNiArNzUxLDE3IEBAIHN0YXRpYyBib29sIHJ1YmJlckJh
bmRpbmdFbmFibGVkRm9yU3lzdGVtKCkKIH0KICNlbmRpZgogCi1ib29sIFNjcm9sbEFuaW1hdG9y
TWFjOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxC
ZWhhdmlvciBiZWhhdmlvcikKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxi
YXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxTY3JvbGxCZWhhdmlvcj4g
YmVoYXZpb3IpCiB7CiAgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKIAog
ICAgIC8vIFRoaXMgbWV0aG9kIGRvZXNuJ3QgZG8gZGlyZWN0aW9uYWwgc25hcHBpbmcsIGJ1dCBv
dXIgYmFzZSBjbGFzcyBkb2VzLiBJdCB3aWxsIGNhbGwgaW50bwogICAgIC8vIFNjcm9sbEFuaW1h
dG9yTWFjOjpzY3JvbGwgYWdhaW4gd2l0aCB0aGUgc25hcHBlZCBwb3NpdGlvbnMgYW5kIFNjcm9s
bEJlaGF2aW9yOjpEZWZhdWx0LgotICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6
RG9EaXJlY3Rpb25hbFNuYXBwaW5nKQorICAgIGlmIChiZWhhdmlvci5jb250YWlucyhTY3JvbGxC
ZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKSkKICAgICAgICAgcmV0dXJuIFNjcm9sbEFu
aW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVy
LCBiZWhhdmlvcik7CiAKLSAgICBib29sIHNob3VsZEFuaW1hdGUgPSBzY3JvbGxBbmltYXRpb25F
bmFibGVkRm9yU3lzdGVtKCkgJiYgbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJs
ZWQoKSAmJiBncmFudWxhcml0eSAhPSBTY3JvbGxCeVBpeGVsOworICAgIGJvb2wgc2hvdWxkQW5p
bWF0ZSA9IHNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSAmJiBtX3Njcm9sbGFibGVB
cmVhLnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpICYmIGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5UGl4
ZWwKKyAgICAgICAgJiYgIWJlaGF2aW9yLmNvbnRhaW5zKFNjcm9sbEJlaGF2aW9yOjpOZXZlckFu
aW1hdGUpOwogICAgIEZsb2F0UG9pbnQgbmV3UG9zaXRpb24gPSBwb3NpdGlvbkZyb21TdGVwKG9y
aWVudGF0aW9uLCBzdGVwLCBtdWx0aXBsaWVyKTsKICAgICBuZXdQb3NpdGlvbiA9IG5ld1Bvc2l0
aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihzY3JvbGxhYmxlQXJlYSgpLm1pbmltdW1TY3JvbGxQb3Np
dGlvbigpLCBzY3JvbGxhYmxlQXJlYSgpLm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsKIApAQCAt
MTUwMCw2ICsxNTAxLDExIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNldFZpc2libGVTY3Jv
bGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0JiBzY3JvbGxlclRodW1iCiAgICAgbV92aXNpYmxl
U2Nyb2xsZXJUaHVtYlJlY3QgPSByZWN0SW5WaWV3Q29vcmRpbmF0ZXM7CiB9CiAKK2Jvb2wgU2Ny
b2xsQW5pbWF0b3JNYWM6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCit7CisgICAgcmV0dXJuIG1fc2Nyb2xsQ29udHJv
bGxlci5wcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAod2hlZWxFdmVudCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5H
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDAzYWNkODk3NjA3Y2ZmNmZhNzc1OWI4NTA2MWM1M2FkYjRiYjViYTcuLjk2ZTU2
ZGY1YTEyMWYyMDMyOTVmYmIwZTY4MWM1NjI2NDE2YzE4YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMS0wMy0wOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgQWRkIGJhc2ljIChub24tbW9tZW50dW0pIHdoZWVsIGV2ZW50IGhhbmRsaW5nIGZv
ciBzY3JvbGwgc25hcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyNTk0CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwt
ZXZlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0
YXRpb25zOiBTa2lwIG5ldyB0ZXN0IGJlY2F1c2UgaXQgdXNlcyBtb3VzZSBldmVudCBzaW11bGF0
aW9uLgorICAgICAgICBNb3ZlIGV4aXN0aW5nIGNsYXNzaWZpY2F0aW9uIHRvIGJldHRlciBzZWN0
aW9uIGFzIHdlbGwuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtc25hcC1sYXRjaGluZy1leHBlY3RlZC50eHQ6IFJlYmFzZWQgdGhpcyBw
cmV2aW91cyBmYWlsaW5nIHRlc3QuCisKIDIwMjEtMDMtMDggIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIGJvcmRlci13aWR0
aCBpbnRlcnBvbGF0aW9uIHRlc3QgYWZ0ZXIgV1BUIFBSICMyNzkzNC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1l
dmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzllNjFjYTIyMDcxNDFlZWUwMTg4YjdiMWM3
MmMxYzNjMmZhOWYwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorUEFTUyBob3Jpem9udGFsIG1vdXNlIHdoZWVsIGV2ZW50IHNuYXBwZWQKK1BBU1MgdmVydGlj
YWwgbW91c2Ugd2hlZWwgZXZlbnQgc25hcHBlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMv
c2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGUy
M2RhYjNkMmVmNzk3NWJkMjdkNDkyZjIwNWFmYTYyNTk3YWI2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1s
CkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDx0aXRsZT5TaW1wbGUgd2hlZWwgZXZlbnRzIHNob3VsZCB0cmlnZ2VyIHNjcm9sbCBz
bmFwcGluZzwvdGl0bGU+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAg
ICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAg
ICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdzogYXV0bzsK
KyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiBib3RoIG1hbmRhdG9yeTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgLmhvcml6b250YWwtZHJhd2VyIHsKKyAgICAgICAgICAg
ICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAuYmxvY2sgeworICAgICAgICAgICAgICAgIGhlaWdodDog
MTAwJTsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICAgICAgc2Ny
b2xsLXNuYXAtYWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBvbkxvYWQoKQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyID09IHVuZGVmaW5lZCkgeworICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJUZXh0ID0gIlNp
bXBsZSB3aGVlbCBldmVudHMgc2hvdWxkIHRyaWdnZXIgc2Nyb2xsIHNuYXBwaW5nIjsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAg
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwLCAxOTApOworICAgICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKDgwLCAxOTApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnkoLTEs
IDApOworCisgICAgICAgICAgICAgICAgbGV0IGhvcml6b250YWxDb250YWluZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaG9yaXpvbnRhbC1jb250YWluZXIiKTsKKyAgICAgICAgICAgICAg
ICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9uVG9TZXR0bGUoaG9y
aXpvbnRhbENvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShob3Jpem9udGFs
Q29udGFpbmVyLnNjcm9sbExlZnQgPT0gMjAwLCAiaG9yaXpvbnRhbCBtb3VzZSB3aGVlbCBldmVu
dCBzbmFwcGVkIik7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygx
OTAsIDIyMCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTkwLCAyNzApOworICAgICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnkoMCwgLTEpOworCisgICAgICAgICAgICAgICAgbGV0IHZlcnRpY2Fs
Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZlcnRpY2FsLWNvbnRhaW5lciIp
OworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmlt
YXRpb25Ub1NldHRsZSh2ZXJ0aWNhbENvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0
VHJ1ZSh2ZXJ0aWNhbENvbnRhaW5lci5zY3JvbGxUb3AgPT0gMTg1LCAidmVydGljYWwgbW91c2Ug
d2hlZWwgZXZlbnQgc25hcHBlZCIpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICAgICAgICAgIGNvbnNvbGUubG9nKGUpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsi
PgorICAgICAgICA8ZGl2IGlkPSJob3Jpem9udGFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWRyYXdlciI+CisgICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJmbG9hdDogbGVmdDsgYmFja2dyb3Vu
ZDogIzgwNDc1RSI+PC9kaXY+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0
eWxlPSJmbG9hdDogbGVmdDsgYmFja2dyb3VuZDogI0NDNUE3MSI+PC9kaXY+CisgICAgICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InZlcnRpY2FsLWNvbnRh
aW5lciIgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIg
c3R5bGU9ImJhY2tncm91bmQ6ICM4MDQ3NUUiPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFz
cz0iYmxvY2siIHN0eWxlPSJiYWNrZ3JvdW5kOiAjQ0M1QTcxIj48L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxwIGlkPSJjb25zb2xlIj48L3A+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlZjI1NmU5MmIwMWJiMTA3YmI2OWUx
ZDRmNTEyOGVjYjk1ODFiMzBmLi5kNTRiNDQ3OTAyYmU1YjA5ODMxNjU3YThiNmE1M2FiYWRhMGI3
Mzg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25z
CkBAIC0xMzcsNyArMTM3LDYgQEAgc2Nyb2xsYmFycy9zY3JvbGxpbmctYnktcGFnZS1vbi1rZXli
b2FyZC1zcGFjZWJhci5odG1sIFsgRmFpbHVyZSBdCiBzY3JvbGxiYXJzL3Njcm9sbGJhcnMtb24t
cG9zaXRpb25lZC1jb250ZW50Lmh0bWwgWyBGYWlsdXJlIF0KIGNzczMvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXBhZGRpbmctbWFpbmZyYW1lLXBhZ2luZy5odG1sIFsgRmFpbHVyZSBdCiBjc3MzL3Njcm9s
bC1zbmFwL3Njcm9sbC1wYWRkaW5nLW92ZXJmbG93LXBhZ2luZy5odG1sIFsgRmFpbHVyZSBdCi1j
c3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWNsaWNrLXNjcm9sbGJhci1ndXR0ZXIuaHRtbCBb
IEZhaWx1cmUgXQogCiAjIFNWRyB0ZXN0cyB0aGF0IHRpbWUgb3V0ICh0aGVzZSByZXF1aXJlIEV2
ZW50U2VuZGVyKQogc3ZnL2FuaW1hdGlvbnMvYW5pbVZhbC1iYXNpY3MuaHRtbApAQCAtOTMzLDYg
KzkzMiw4IEBAIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1vdXQtb2YtZmxvYXRlZC1ub24tZWRp
dGFibGUtMDkuaHRtbCBbIFNraXAgXQogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0LW91dC1vZi1m
bG9hdGVkLW5vbi1lZGl0YWJsZS0xMC5odG1sIFsgU2tpcCBdCiBlZGl0aW5nL3NlbGVjdGlvbi9z
ZWxlY3Qtb3V0LW9mLWZsb2F0ZWQtbm9uLWVkaXRhYmxlLTExLmh0bWwgWyBTa2lwIF0KIGVkaXRp
bmcvc2VsZWN0aW9uL3NlbGVjdC1vdXQtb2YtZmxvYXRlZC1ub24tZWRpdGFibGUtMTIuaHRtbCBb
IFNraXAgXQorY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1jbGljay1zY3JvbGxiYXItZ3V0
dGVyLmh0bWwgWyBTa2lwIF0KK2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZl
bnQuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTkyMDg4IG1lZGlhL25vLWZ1bGxzY3Jl
ZW4td2hlbi1oaWRkZW4uaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNu
YXAtbGF0Y2hpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc25hcC1sYXRjaGluZy1leHBlY3RlZC50eHQK
aW5kZXggOTBkOGQ2MDRmN2IzMTAwZjdiMDA5NjI3NGY4MjcxNTYwNDRmN2RiNi4uMWU2NGY3OWRh
MTc3NGY0NGQ5YzBhM2FmYWYzZTdiYTJlZjA3NDE1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc25hcC1sYXRj
aGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc25hcC1sYXRjaGluZy1leHBlY3RlZC50eHQKQEAg
LTQsNyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAogUEFTUyBvdmVyZmxvd1Nj
cm9sbEV2ZW50Q291bnQgPiAwIGlzIHRydWUKLUZBSUwgd2luZG93U2Nyb2xsRXZlbnRDb3VudCBz
aG91bGQgYmUgMC4gV2FzIDcuCitGQUlMIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgc2hvdWxkIGJl
IDAuIFdhcyAxMS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423064</attachid>
            <date>2021-03-12 10:49:11 -0800</date>
            <delta_ts>2021-03-13 00:53:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222594-20210312194910.patch</filename>
            <type>text/plain</type>
            <size>19423</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiMTI5ZjI0YjI0NDkx
M2E1NjA3NmU0NTg5NGMwNmMxMGE0NjA2Ny4uNmZiM2ExOTM0YTM1OWRkYTRiMzcyYzI5NzQ1OGNl
MzRjODI2OGE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTEyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYmFzaWMg
KG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcgZm9yIHNjcm9sbCBzbmFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgVGVzdDogY3NzMy9zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sCisKKyAgICAgICAgRW5hYmxlIHNj
cm9sbCBzbmFwcGluZyBmb3IgYmFzaWMgd2hlZWwgZXZlbnRzIG9uIEdUSysgYW5kIFdQRS4gVGhl
IE1hYyBwb3J0CisgICAgICAgIGhhcyBzcGVjaWFsIHdoZWVsIGhhbmRsaW5nIGR1ZSB0byBtb21l
bnR1bSBzY3JvbGxpbmcuIE90aGVyIHNjcm9sbC1zbmFwLWVuYWJsZWQKKyAgICAgICAgcG9ydHMg
Y2FuIGp1c3QgdXNlIGEgYmFzaWMgdmVyc2lvbi4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGwp
OiBBY2NlcHQgYSBiaXRtYXNrIG9mIG9wdGlvbnMgbm93LiBUaGlzCisgICAgICAgIHdpbGwgYWxs
b3cgdXNpbmcgdGhpcyBtZXRob2Qgd2hlbiBoYW5kbGluZyB3aGVlbCBldmVudHMgdGhhdCBkbyBu
b3QgYW5pbWF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVl
bEV2ZW50KTogVHJpZ2dlciA6OnNjcm9sbCB3aXRoCisgICAgICAgIHNjcm9sbCBzbmFwcGluZyBl
bmFibGVkIGFuZCBwYXNzIHRoZSBhcHByb3ByaWF0ZSBvcHRpb24gdG8gZGlzYWJsZSBhbmltYXRp
b25zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnByb2Nlc3NXaGVlbEV2ZW50
Rm9yU2Nyb2xsU25hcCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6
cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKTogTWFkZQorICAgICAgICB0aGlzIGEgbWV0
aG9kIHRoYXQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogQWRkZWQgcHJvY2Vzc1doZWVsRXZlbnRGb3JT
Y3JvbGxTbmFwLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwpOiBQYXkgYXR0ZW50
aW9uIHRvIHRoZSBOZXZlckFuaW1hdGUgYml0bWFzayBub3cuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck1hYzo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKTogQWRkZWQu
CisKIDIwMjEtMDMtMTIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZWR1Y2UgbWF4aW11bSBIYXNoVGFibGUgZW50cnkgc2l6ZSB0byA0MDAg
Ynl0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAppbmRleCA2
NGM4NDNiNTk3NTI0NjRhY2Y3Zjc0NGI1YmJlNTc4YjI3ZDQ4Zjg0Li5hYzJjMjI5OGZiMzQ3MGQ3
YzI0OTMzYWU5YWU2NTEwMGJmMmY4YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuY3BwCkBAIC04MSwxOCArODEsMTkgQEAgU2Nyb2xsQW5pbWF0b3I6On5TY3Jv
bGxBbmltYXRvcigpCiAjZW5kaWYKIH0KIAotYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNj
cm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxh
cml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IgYmVoYXZp
b3IpCitib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3Jp
ZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9h
dCBtdWx0aXBsaWVyLCBPcHRpb25TZXQ8U2Nyb2xsQmVoYXZpb3I+IGJlaGF2aW9yKQogewogI2lm
IEVOQUJMRShDU1NfU0NST0xMX1NOQVApCi0gICAgaWYgKGJlaGF2aW9yID09IFNjcm9sbEJlaGF2
aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBpbmcpIHsKKyAgICBpZiAoYmVoYXZpb3IuY29udGFpbnMo
U2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykpIHsKICAgICAgICAgYXV0byBu
ZXdPZmZzZXQgPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0
aW9uRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpLCB0b0Zsb2F0U2l6ZSht
X3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKSk7CiAgICAgICAgIGF1dG8gY3VycmVudE9m
ZnNldCA9IG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsT2Zmc2V0KCk7CisgICAgICAgIGJlaGF2aW9y
LnJlbW92ZShTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKTsKICAgICAgICAg
aWYgKG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpIHsKICAgICAgICAgICAgIG5l
d09mZnNldC5zZXRYKG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1c3RTY3JvbGxEZXN0aW5hdGlvbihT
Y3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIG5ld09mZnNldC54KCksIG11bHRpcGxpZXIsIGN1
cnJlbnRPZmZzZXQueCgpKSk7Ci0gICAgICAgICAgICByZXR1cm4gc2Nyb2xsKEhvcml6b250YWxT
Y3JvbGxiYXIsIGdyYW51bGFyaXR5LCBuZXdPZmZzZXQueCgpIC0gY3VycmVudE9mZnNldC54KCks
IDEuMCk7CisgICAgICAgICAgICByZXR1cm4gc2Nyb2xsKEhvcml6b250YWxTY3JvbGxiYXIsIGdy
YW51bGFyaXR5LCBuZXdPZmZzZXQueCgpIC0gY3VycmVudE9mZnNldC54KCksIDEuMCwgYmVoYXZp
b3IpOwogICAgICAgICB9CiAgICAgICAgIG5ld09mZnNldC5zZXRZKG1fc2Nyb2xsQ29udHJvbGxl
ci5hZGp1c3RTY3JvbGxEZXN0aW5hdGlvbihTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBuZXdP
ZmZzZXQueSgpLCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0LnkoKSkpOwotICAgICAgICByZXR1
cm4gc2Nyb2xsKFZlcnRpY2FsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3T2Zmc2V0LnkoKSAt
IGN1cnJlbnRPZmZzZXQueSgpLCAxLjApOworICAgICAgICByZXR1cm4gc2Nyb2xsKFZlcnRpY2Fs
U2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3T2Zmc2V0LnkoKSAtIGN1cnJlbnRPZmZzZXQueSgp
LCAxLjAsIGJlaGF2aW9yKTsKICAgICB9CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShncmFudWxh
cml0eSk7CkBAIC0xMDAsNyArMTAxLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNj
cm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eQogI2VuZGlm
CiAKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkpIHsKKyAg
ICBpZiAobV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSAmJiAhYmVoYXZp
b3IuY29udGFpbnMoU2Nyb2xsQmVoYXZpb3I6Ok5ldmVyQW5pbWF0ZSkpIHsKICAgICAgICAgbV9z
Y3JvbGxBbmltYXRpb24tPnNldEN1cnJlbnRQb3NpdGlvbihtX2N1cnJlbnRQb3NpdGlvbik7CiAg
ICAgICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbi0+c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFu
dWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7CiAgICAgfQpAQCAtMTYwLDEwICsxNjEsNiBAQCBG
bG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yOjpwb3NpdGlvbkZyb21TdGVwKFNjcm9sbGJhck9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uLCBmbAogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICNp
ZiBQTEFURk9STShNQUMpCi1ib29sIFNjcm9sbEFuaW1hdG9yOjpwcm9jZXNzV2hlZWxFdmVudEZv
clNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQotewotICAg
IHJldHVybiBtX3Njcm9sbENvbnRyb2xsZXIucHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFw
KHdoZWVsRXZlbnQpOwotfQogI2VuZGlmCiAKIGJvb2wgU2Nyb2xsQW5pbWF0b3I6OmFjdGl2ZVNj
cm9sbFNuYXBJbmRleERpZENoYW5nZSgpIGNvbnN0CkBAIC0xNzksMTAgKzE3NiwxMSBAQCB1bnNp
Z25lZCBTY3JvbGxBbmltYXRvcjo6YWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhpcyhTY3JvbGxF
dmVudEF4aXMgYXhpcykgY29ucwogCiBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKIHsKLSNpZiBFTkFCTEUoQ1NTX1NDUk9M
TF9TTkFQKSAmJiBQTEFURk9STShNQUMpCi0gICAgaWYgKG1fc2Nyb2xsQ29udHJvbGxlci5wcm9j
ZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoZSkpCisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05B
UCkKKyAgICBpZiAocHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIC8vIEV2ZW50
cyBpbiB0aGUgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6Ok1heUJlZ2luIHBoYXNlIGhhdmUgbm8g
ZGVsdGFzLCBhbmQgdGhlcmVmb3JlIG5ldmVyIHBhc3NlcyB0aHJvdWdoIHRoZSBzY3JvbGwgaGFu
ZGxpbmcgbG9naWMgYmVsb3cuCiAgICAgLy8gVGhpcyBjYXVzZXMgdXMgdG8gcmV0dXJuIHdpdGgg
YW4gJ3VuaGFuZGxlZCcgcmV0dXJuIHN0YXRlLCBldmVuIHRob3VnaCB0aGlzIGV2ZW50IHdhcyBz
dWNjZXNzZnVsbHkgcHJvY2Vzc2VkLgpAQCAtMjAzLDcgKzIwMSw2IEBAIGJvb2wgU2Nyb2xsQW5p
bWF0b3I6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogCiAg
ICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CiAKLSAgICBTY3JvbGxHcmFudWxhcml0eSBncmFudWxh
cml0eSA9IFNjcm9sbEJ5UGl4ZWw7CiAgICAgSW50U2l6ZSBtYXhGb3J3YXJkU2Nyb2xsRGVsdGEg
PSBtX3Njcm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxQb3NpdGlvbigpIC0gbV9zY3JvbGxhYmxl
QXJlYS5zY3JvbGxQb3NpdGlvbigpOwogICAgIEludFNpemUgbWF4QmFja3dhcmRTY3JvbGxEZWx0
YSA9IG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsUG9zaXRpb24oKSAtIG1fc2Nyb2xsYWJsZUFyZWEu
bWluaW11bVNjcm9sbFBvc2l0aW9uKCk7CiAgICAgaWYgKChkZWx0YVggPCAwICYmIG1heEZvcndh
cmRTY3JvbGxEZWx0YS53aWR0aCgpID4gMCkKQEAgLTIxMiw2ICsyMDksMTAgQEAgYm9vbCBTY3Jv
bGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUp
CiAgICAgICAgIHx8IChkZWx0YVkgPiAwICYmIG1heEJhY2t3YXJkU2Nyb2xsRGVsdGEuaGVpZ2h0
KCkgPiAwKSkgewogICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKIAorICAgICAgICBPcHRpb25TZXQ8
U2Nyb2xsQmVoYXZpb3I+IGJlaGF2aW9yKFNjcm9sbEJlaGF2aW9yOjpEb0RpcmVjdGlvbmFsU25h
cHBpbmcpOworICAgICAgICBpZiAoZS5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkpCisgICAg
ICAgICAgICBiZWhhdmlvci5hZGQoU2Nyb2xsQmVoYXZpb3I6Ok5ldmVyQW5pbWF0ZSk7CisKICAg
ICAgICAgaWYgKGRlbHRhWSkgewogICAgICAgICAgICAgaWYgKGUuZ3JhbnVsYXJpdHkoKSA9PSBT
Y3JvbGxCeVBhZ2VXaGVlbEV2ZW50KSB7CiAgICAgICAgICAgICAgICAgYm9vbCBuZWdhdGl2ZSA9
IGRlbHRhWSA8IDA7CkBAIC0yMTksMTAgKzIyMCw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3I6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogICAgICAgICAgICAg
ICAgIGlmIChuZWdhdGl2ZSkKICAgICAgICAgICAgICAgICAgICAgZGVsdGFZID0gLWRlbHRhWTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChlLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0
YXMoKSkKLSAgICAgICAgICAgICAgICBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihw
b3NpdGlvbkZyb21TdGVwKFZlcnRpY2FsU2Nyb2xsYmFyLCB2ZXJ0aWNhbFNjcm9sbGJhci0+cGl4
ZWxTdGVwKCksIC1kZWx0YVkpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBz
Y3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCB2ZXJ0aWNhbFNjcm9sbGJhci0+
cGl4ZWxTdGVwKCksIC1kZWx0YVkpOworICAgICAgICAgICAgc2Nyb2xsKFZlcnRpY2FsU2Nyb2xs
YmFyLCBTY3JvbGxCeVBpeGVsLCB2ZXJ0aWNhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0
YVksIGJlaGF2aW9yKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChkZWx0YVgpIHsKQEAgLTIz
MiwxMCArMjMwLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAgICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlKQog
ICAgICAgICAgICAgICAgICAgICBkZWx0YVggPSAtZGVsdGFYOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQotICAgICAgICAgICAg
ICAgIHNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKHBvc2l0aW9uRnJvbVN0ZXAoSG9y
aXpvbnRhbFNjcm9sbGJhciwgaG9yaXpvbnRhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0
YVgpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzY3JvbGwoSG9yaXpvbnRh
bFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIGhvcml6b250YWxTY3JvbGxiYXItPnBpeGVsU3RlcCgp
LCAtZGVsdGFYKTsKKyAgICAgICAgICAgIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBTY3Jv
bGxCeVBpeGVsLCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWCwgYmVo
YXZpb3IpOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBoYW5kbGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKaW5kZXggNmViMTQwNjc3ZDEzOGJlZDA1NGU2
ZTcwZjEwYjNmMTg2ODViODhkOC4uZTk3NzlkMTFhZTE3YzIwNTI1ZmJmNWRmZDQwMDc5NzFkOTkw
ZGU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCkBAIC02OSwx
NSArNjksMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNjcm9sbEFuaW1hdG9yKCk7CiAKICAg
ICBlbnVtIFNjcm9sbEJlaGF2aW9yIHsKLSAgICAgICAgRGVmYXVsdCwKLSAgICAgICAgRG9EaXJl
Y3Rpb25hbFNuYXBwaW5nLAorICAgICAgICBEZWZhdWx0ID0gMCwKKyAgICAgICAgRG9EaXJlY3Rp
b25hbFNuYXBwaW5nID0gMSA8PCAxLAorICAgICAgICBOZXZlckFuaW1hdGUgPSAxIDw8IDIsCiAg
ICAgfTsKIAogICAgIC8vIENvbXB1dGVzIGEgc2Nyb2xsIGRlc3RpbmF0aW9uIGZvciB0aGUgZ2l2
ZW4gcGFyYW1ldGVycy4gIFJldHVybnMgZmFsc2UgaWYKICAgICAvLyBhbHJlYWR5IGF0IHRoZSBk
ZXN0aW5hdGlvbi4gIE90aGVyd2lzZSwgc3RhcnRzIHNjcm9sbGluZyB0b3dhcmRzIHRoZQogICAg
IC8vIGRlc3RpbmF0aW9uIGFuZCByZXR1cm5zIHRydWUuICBTY3JvbGxpbmcgbWF5IGJlIGltbWVk
aWF0ZSBvciBhbmltYXRlZC4KICAgICAvLyBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBh
bHdheXMgc2Nyb2xscyBpbW1lZGlhdGVseSwgbmV2ZXIgYW5pbWF0ZXMuCi0gICAgdmlydHVhbCBi
b29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0
IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6
OkRlZmF1bHQpOworICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24s
IFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBPcHRpb25T
ZXQ8U2Nyb2xsQmVoYXZpb3I+KTsKIAogICAgIGJvb2wgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5p
bWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5n
OjpDbGFtcGVkKTsKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmlt
YXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbENsYW1waW5nID0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQpOwpAQCAtMTQ5LDkgKzE1MCw3IEBAIHB1YmxpYzoKICNlbmRpZgog
CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKLSNpZiBQTEFURk9STShNQUMpCi0gICAgYm9v
bCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
Jik7Ci0jZW5kaWYKKyAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxT
bmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9p
ZCB1cGRhdGVTY3JvbGxTbmFwU3RhdGUoKTsKICAgICBib29sIGFjdGl2ZVNjcm9sbFNuYXBJbmRl
eERpZENoYW5nZSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGFjdGl2ZVNjcm9sbFNuYXBJbmRleEZv
ckF4aXMoU2Nyb2xsRXZlbnRBeGlzKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggNjQ5YjRjZjU0NDUwOThhMzMxMjI4Mzg1
MGI1MTcyY2ExY2QzMjc4Yi4uNGE1ZTNmMmUyZjk2ZDZlNTU4Y2ZhM2ZkYjFhNzI5ZWNlY2I1YjQ0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
LmgKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX3NlbmRDb250ZW50QXJl
YVNjcm9sbGVkVGltZXI7CiAgICAgRmxvYXRTaXplIG1fY29udGVudEFyZWFTY3JvbGxlZFRpbWVy
U2Nyb2xsRGVsdGE7CiAKLSAgICBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJlaGF2
aW9yKSBvdmVycmlkZTsKKyAgICBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxT
Y3JvbGxCZWhhdmlvcj4pIG92ZXJyaWRlOwogICAgIGJvb2wgc2Nyb2xsVG9Qb3NpdGlvbldpdGhB
bmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwogICAgIGJvb2wgc2Nyb2xsVG9Q
b3NpdGlvbldpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpIG92ZXJyaWRlOwogCkBAIC0xNDAs
NiArMTQwLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgaG9yaXpvbnRhbFNjcm9sbGJhclN0YXRl
Rm9yVGVzdGluZygpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0
YXRlRm9yVGVzdGluZygpIGNvbnN0IGZpbmFsOwogCisgICAgYm9vbCBwcm9jZXNzV2hlZWxFdmVu
dEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisKICAg
ICAvLyBTY3JvbGxDb250cm9sbGVyQ2xpZW50LgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykK
ICAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCA4ZTAwYmQ3MThi
ZjUwYjYzNGQ4YjI5NjY2OGNjZGViNWJjODQyOWVlLi5jMDk1Y2Q2NmY1OTU2ZjhiODlhYWNiMzNk
NWI3ZjgwMjMwYTlhN2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCkBAIC03NTEsMTYgKzc1MSwxNyBAQCBzdGF0aWMgYm9vbCBydWJi
ZXJCYW5kaW5nRW5hYmxlZEZvclN5c3RlbSgpCiB9CiAjZW5kaWYKIAotYm9vbCBTY3JvbGxBbmlt
YXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSBncmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Ny
b2xsQmVoYXZpb3IgYmVoYXZpb3IpCitib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwoU2Ny
b2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBPcHRpb25TZXQ8U2Nyb2xsQmVoYXZp
b3I+IGJlaGF2aW9yKQogewogICAgIG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9IHRydWU7
CiAKICAgICAvLyBUaGlzIG1ldGhvZCBkb2Vzbid0IGRvIGRpcmVjdGlvbmFsIHNuYXBwaW5nLCBi
dXQgb3VyIGJhc2UgY2xhc3MgZG9lcy4gSXQgd2lsbCBjYWxsIGludG8KICAgICAvLyBTY3JvbGxB
bmltYXRvck1hYzo6c2Nyb2xsIGFnYWluIHdpdGggdGhlIHNuYXBwZWQgcG9zaXRpb25zIGFuZCBT
Y3JvbGxCZWhhdmlvcjo6RGVmYXVsdC4KLSAgICBpZiAoYmVoYXZpb3IgPT0gU2Nyb2xsQmVoYXZp
b3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykKKyAgICBpZiAoYmVoYXZpb3IuY29udGFpbnMoU2Ny
b2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykpCiAgICAgICAgIHJldHVybiBTY3Jv
bGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlw
bGllciwgYmVoYXZpb3IpOwogCi0gICAgYm9vbCBzaG91bGRBbmltYXRlID0gc2Nyb2xsQW5pbWF0
aW9uRW5hYmxlZEZvclN5c3RlbSgpICYmIG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JF
bmFibGVkKCkgJiYgZ3JhbnVsYXJpdHkgIT0gU2Nyb2xsQnlQaXhlbDsKKyAgICBib29sIHNob3Vs
ZEFuaW1hdGUgPSBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkgJiYgbV9zY3JvbGxh
YmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSAmJiBncmFudWxhcml0eSAhPSBTY3JvbGxC
eVBpeGVsCisgICAgICAgICYmICFiZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlvcjo6TmV2
ZXJBbmltYXRlKTsKICAgICBGbG9hdFBvaW50IG5ld1Bvc2l0aW9uID0gcG9zaXRpb25Gcm9tU3Rl
cChvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlwbGllcik7CiAgICAgbmV3UG9zaXRpb24gPSBuZXdQ
b3NpdGlvbi5jb25zdHJhaW5lZEJldHdlZW4oc2Nyb2xsYWJsZUFyZWEoKS5taW5pbXVtU2Nyb2xs
UG9zaXRpb24oKSwgc2Nyb2xsYWJsZUFyZWEoKS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7CiAK
QEAgLTE1MDAsNiArMTUwMSwxMSBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzZXRWaXNpYmxl
U2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYgc2Nyb2xsZXJUaHVtYgogICAgIG1fdmlz
aWJsZVNjcm9sbGVyVGh1bWJSZWN0ID0gcmVjdEluVmlld0Nvb3JkaW5hdGVzOwogfQogCitib29s
IFNjcm9sbEFuaW1hdG9yTWFjOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQoreworICAgIHJldHVybiBtX3Njcm9sbENv
bnRyb2xsZXIucHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKHdoZWVsRXZlbnQpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9M
TElORykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBjZDNhZDQyZWFiNWEwZGEzNWEwODg3MTk4NDg0ZWRlZmFlNGVkNzAyLi5m
NDRhOTQ5Yzk2ODE1YTEwODQyZjA1NWVmMDAwZDIwMTQ4ZWRiNjQwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjEtMDMtMTIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIEFkZCBiYXNpYyAobm9uLW1vbWVudHVtKSB3aGVlbCBldmVudCBoYW5kbGlu
ZyBmb3Igc2Nyb2xsIHNuYXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMjU5NAorICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgKiBjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVl
bC1ldmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBl
Y3RhdGlvbnM6IFNraXAgbmV3IHRlc3QgYmVjYXVzZSBpdCB1c2VzIG1vdXNlIGV2ZW50IHNpbXVs
YXRpb24uCisgICAgICAgIE1vdmUgZXhpc3RpbmcgY2xhc3NpZmljYXRpb24gdG8gYmV0dGVyIHNl
Y3Rpb24gYXMgd2VsbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2Zhc3Qvc2Nyb2xsaW5n
L2xhdGNoaW5nL3Njcm9sbC1zbmFwLWxhdGNoaW5nLWV4cGVjdGVkLnR4dDogUmViYXNlZCB0aGlz
IHByZXZpb3VzIGZhaWxpbmcgdGVzdC4KKwogMjAyMS0wMy0xMiAgUm9iZXJ0IEplbm5lciAgPGpl
bm5lckBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY09TIHdrMl0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvU291cmNlQnVmZmVyLWFib3J0LXVwZGF0aW5nLmh0
bWwgaXMgYSBmbGFrZXkgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jOWU2MWNhMjIwNzE0MWVlZTAxODhiN2IxYzcyYzFjM2MyZmE5ZjBjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13
aGVlbC1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitQQVNTIGhvcml6b250YWwg
bW91c2Ugd2hlZWwgZXZlbnQgc25hcHBlZAorUEFTUyB2ZXJ0aWNhbCBtb3VzZSB3aGVlbCBldmVu
dCBzbmFwcGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25h
cC13aGVlbC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC13aGVlbC1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZTIzZGFiM2QyZWY3OTc1YmQyN2Q0
OTJmMjA1YWZhNjI1OTdhYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwKQEAgLTAsMCArMSw4MCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlNpbXBs
ZSB3aGVlbCBldmVudHMgc2hvdWxkIHRyaWdnZXIgc2Nyb2xsIHNuYXBwaW5nPC90aXRsZT4KKyAg
ICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIC5jb250YWluZXIgewor
ICAgICAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDIw
MHB4OworICAgICAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOworICAgICAgICAgICAgICAgIHNj
cm9sbC1zbmFwLXR5cGU6IGJvdGggbWFuZGF0b3J5OworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAuaG9yaXpvbnRhbC1kcmF3ZXIgeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTsK
KyAgICAgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIC5ibG9jayB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAgICAg
ICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3Rh
cnQ7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFz
eW5jIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
ZXZlbnRTZW5kZXIgPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lclRleHQgPSAiU2ltcGxlIHdoZWVsIGV2ZW50cyBz
aG91bGQgdHJpZ2dlciBzY3JvbGwgc25hcHBpbmciOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oMjAsIDE5MCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oODAs
IDE5MCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworCisgICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSgtMSwgMCk7CisKKyAgICAgICAgICAg
ICAgICBsZXQgaG9yaXpvbnRhbENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJo
b3Jpem9udGFsLWNvbnRhaW5lciIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndh
aXRGb3JUYXJnZXRTY3JvbGxBbmltYXRpb25Ub1NldHRsZShob3Jpem9udGFsQ29udGFpbmVyKTsK
KyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGhvcml6b250YWxDb250YWluZXIuc2Nyb2xsTGVm
dCA9PSAyMDAsICJob3Jpem9udGFsIG1vdXNlIHdoZWVsIGV2ZW50IHNuYXBwZWQiKTsKKworICAg
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDE5MCwgMjIwKTsKKyAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbygxOTAsIDI3MCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSgw
LCAtMSk7CisKKyAgICAgICAgICAgICAgICBsZXQgdmVydGljYWxDb250YWluZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidmVydGljYWwtY29udGFpbmVyIik7CisgICAgICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0dGxlKHZlcnRp
Y2FsQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKHZlcnRpY2FsQ29udGFp
bmVyLnNjcm9sbFRvcCA9PSAxODUsICJ2ZXJ0aWNhbCBtb3VzZSB3aGVlbCBldmVudCBzbmFwcGVk
Iik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5s
b2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAg
IDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+CisgICAgICAgIDxkaXYgaWQ9
Imhvcml6b250YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9Imhvcml6b250YWwtZHJhd2VyIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJibG9jayIgc3R5bGU9ImZsb2F0OiBsZWZ0OyBiYWNrZ3JvdW5kOiAjODA0NzVFIj48L2Rpdj4K
KyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImZsb2F0OiBsZWZ0OyBi
YWNrZ3JvdW5kOiAjQ0M1QTcxIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0idmVydGljYWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iYmFja2dyb3VuZDog
IzgwNDc1RSI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJh
Y2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHAgaWQ9
ImNvbnNvbGUiPjwvcD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdr
Mi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IGVmMjU2ZTkyYjAxYmIxMDdiYjY5ZTFkNGY1MTI4ZWNiOTU4MWIzMGYu
LmQ1NGI0NDc5MDJiZTViMDk4MzE2NTdhOGI2YTUzYWJhZGEwYjczODggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzNyw3ICsxMzcsNiBA
QCBzY3JvbGxiYXJzL3Njcm9sbGluZy1ieS1wYWdlLW9uLWtleWJvYXJkLXNwYWNlYmFyLmh0bWwg
WyBGYWlsdXJlIF0KIHNjcm9sbGJhcnMvc2Nyb2xsYmFycy1vbi1wb3NpdGlvbmVkLWNvbnRlbnQu
aHRtbCBbIEZhaWx1cmUgXQogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtcGFkZGluZy1tYWluZnJh
bWUtcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXBhZGRp
bmctb3ZlcmZsb3ctcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KLWNzczMvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRlci5odG1sIFsgRmFpbHVyZSBdCiAKICMgU1ZH
IHRlc3RzIHRoYXQgdGltZSBvdXQgKHRoZXNlIHJlcXVpcmUgRXZlbnRTZW5kZXIpCiBzdmcvYW5p
bWF0aW9ucy9hbmltVmFsLWJhc2ljcy5odG1sCkBAIC05MzMsNiArOTMyLDggQEAgZWRpdGluZy9z
ZWxlY3Rpb24vc2VsZWN0LW91dC1vZi1mbG9hdGVkLW5vbi1lZGl0YWJsZS0wOS5odG1sIFsgU2tp
cCBdCiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Qtb3V0LW9mLWZsb2F0ZWQtbm9uLWVkaXRhYmxl
LTEwLmh0bWwgWyBTa2lwIF0KIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1vdXQtb2YtZmxvYXRl
ZC1ub24tZWRpdGFibGUtMTEuaHRtbCBbIFNraXAgXQogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0
LW91dC1vZi1mbG9hdGVkLW5vbi1lZGl0YWJsZS0xMi5odG1sIFsgU2tpcCBdCitjc3MzL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLWNsaWNrLXNjcm9sbGJhci1ndXR0ZXIuaHRtbCBbIFNraXAgXQor
Y3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sIFsgU2tpcCBdCiAK
IHdlYmtpdC5vcmcvYi8xOTIwODggbWVkaWEvbm8tZnVsbHNjcmVlbi13aGVuLWhpZGRlbi5odG1s
IFsgRmFpbHVyZSBQYXNzIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc25hcC1sYXRjaGluZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNo
aW5nL3Njcm9sbC1zbmFwLWxhdGNoaW5nLWV4cGVjdGVkLnR4dAppbmRleCA5MGQ4ZDYwNGY3YjMx
MDBmN2IwMDk2Mjc0ZjgyNzE1NjA0NGY3ZGI2Li4xZTY0Zjc5ZGExNzc0ZjQ0ZDljMGEzYWZhZjNl
N2JhMmVmMDc0MTUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zbmFwLWxhdGNoaW5nLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5n
L3Njcm9sbC1zbmFwLWxhdGNoaW5nLWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcgQEAgT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUKIAogCiBQQVNTIG92ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA+IDAg
aXMgdHJ1ZQotRkFJTCB3aW5kb3dTY3JvbGxFdmVudENvdW50IHNob3VsZCBiZSAwLiBXYXMgNy4K
K0ZBSUwgd2luZG93U2Nyb2xsRXZlbnRDb3VudCBzaG91bGQgYmUgMC4gV2FzIDExLgogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423099</attachid>
            <date>2021-03-13 00:53:58 -0800</date>
            <delta_ts>2021-04-05 07:05:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222594-20210313095356.patch</filename>
            <type>text/plain</type>
            <size>19383</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Mzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q2OWVkZDYyOTFjNzJh
ZmIwNjZiZGFhZmVlY2IwY2YyNTc2NzQ3YS4uNmI2ZDc4OTIzNjlkZTU0ZjAwM2Q0NmJlODc5OGQ5
MTg4ZmM5YWVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTEyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYmFzaWMg
KG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcgZm9yIHNjcm9sbCBzbmFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgVGVzdDogY3NzMy9zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sCisKKyAgICAgICAgRW5hYmxlIHNj
cm9sbCBzbmFwcGluZyBmb3IgYmFzaWMgd2hlZWwgZXZlbnRzIG9uIEdUSysgYW5kIFdQRS4gVGhl
IE1hYyBwb3J0CisgICAgICAgIGhhcyBzcGVjaWFsIHdoZWVsIGhhbmRsaW5nIGR1ZSB0byBtb21l
bnR1bSBzY3JvbGxpbmcuIE90aGVyIHNjcm9sbC1zbmFwLWVuYWJsZWQKKyAgICAgICAgcG9ydHMg
Y2FuIGp1c3QgdXNlIGEgYmFzaWMgdmVyc2lvbi4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGwp
OiBBY2NlcHQgYSBiaXRtYXNrIG9mIG9wdGlvbnMgbm93LiBUaGlzCisgICAgICAgIHdpbGwgYWxs
b3cgdXNpbmcgdGhpcyBtZXRob2Qgd2hlbiBoYW5kbGluZyB3aGVlbCBldmVudHMgdGhhdCBkbyBu
b3QgYW5pbWF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVl
bEV2ZW50KTogVHJpZ2dlciA6OnNjcm9sbCB3aXRoCisgICAgICAgIHNjcm9sbCBzbmFwcGluZyBl
bmFibGVkIGFuZCBwYXNzIHRoZSBhcHByb3ByaWF0ZSBvcHRpb24gdG8gZGlzYWJsZSBhbmltYXRp
b25zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnByb2Nlc3NXaGVlbEV2ZW50
Rm9yU2Nyb2xsU25hcCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6
cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKTogTWFkZQorICAgICAgICB0aGlzIGEgbWV0
aG9kIHRoYXQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogQWRkZWQgcHJvY2Vzc1doZWVsRXZlbnRGb3JT
Y3JvbGxTbmFwLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwpOiBQYXkgYXR0ZW50
aW9uIHRvIHRoZSBOZXZlckFuaW1hdGUgYml0bWFzayBub3cuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck1hYzo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKTogQWRkZWQu
CisKIDIwMjEtMDMtMTIgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIG1vcmUgTWVkaWFTdHJlYW0gbG9nZ2luZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IDY0Yzg0M2I1OTc1MjQ2NGFjZjdmNzQ0YjVi
YmU1NzhiMjdkNDhmODQuLmFjMmMyMjk4ZmIzNDcwZDdjMjQ5MzNhZTlhZTY1MTAwYmYyZjhiM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTgxLDE4
ICs4MSwxOSBAQCBTY3JvbGxBbmltYXRvcjo6flNjcm9sbEFuaW1hdG9yKCkKICNlbmRpZgogfQog
Ci1ib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50
YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBt
dWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKK2Jvb2wgU2Nyb2xsQW5pbWF0b3I6
OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxT
Y3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IpCiB7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkK
LSAgICBpZiAoYmVoYXZpb3IgPT0gU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGlu
ZykgeworICAgIGlmIChiZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rp
b25hbFNuYXBwaW5nKSkgewogICAgICAgICBhdXRvIG5ld09mZnNldCA9IFNjcm9sbGFibGVBcmVh
OjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb25Gcm9tU3RlcChvcmllbnRhdGlvbiwg
c3RlcCwgbXVsdGlwbGllciksIHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsT3Jp
Z2luKCkpKTsKICAgICAgICAgYXV0byBjdXJyZW50T2Zmc2V0ID0gbV9zY3JvbGxhYmxlQXJlYS5z
Y3JvbGxPZmZzZXQoKTsKKyAgICAgICAgYmVoYXZpb3IucmVtb3ZlKFNjcm9sbEJlaGF2aW9yOjpE
b0RpcmVjdGlvbmFsU25hcHBpbmcpOwogICAgICAgICBpZiAob3JpZW50YXRpb24gPT0gSG9yaXpv
bnRhbFNjcm9sbGJhcikgewogICAgICAgICAgICAgbmV3T2Zmc2V0LnNldFgobV9zY3JvbGxDb250
cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9uKFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRh
bCwgbmV3T2Zmc2V0LngoKSwgbXVsdGlwbGllciwgY3VycmVudE9mZnNldC54KCkpKTsKLSAgICAg
ICAgICAgIHJldHVybiBzY3JvbGwoSG9yaXpvbnRhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIG5l
d09mZnNldC54KCkgLSBjdXJyZW50T2Zmc2V0LngoKSwgMS4wKTsKKyAgICAgICAgICAgIHJldHVy
biBzY3JvbGwoSG9yaXpvbnRhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIG5ld09mZnNldC54KCkg
LSBjdXJyZW50T2Zmc2V0LngoKSwgMS4wLCBiZWhhdmlvcik7CiAgICAgICAgIH0KICAgICAgICAg
bmV3T2Zmc2V0LnNldFkobV9zY3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9u
KFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwsIG5ld09mZnNldC55KCksIG11bHRpcGxpZXIsIGN1
cnJlbnRPZmZzZXQueSgpKSk7Ci0gICAgICAgIHJldHVybiBzY3JvbGwoVmVydGljYWxTY3JvbGxi
YXIsIGdyYW51bGFyaXR5LCBuZXdPZmZzZXQueSgpIC0gY3VycmVudE9mZnNldC55KCksIDEuMCk7
CisgICAgICAgIHJldHVybiBzY3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCBu
ZXdPZmZzZXQueSgpIC0gY3VycmVudE9mZnNldC55KCksIDEuMCwgYmVoYXZpb3IpOwogICAgIH0K
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGdyYW51bGFyaXR5KTsKQEAgLTEwMCw3ICsxMDEsNyBA
QCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50
YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTTU9PVEhfU0NS
T0xMSU5HKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJl
YS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSkgeworICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLnNj
cm9sbEFuaW1hdG9yRW5hYmxlZCgpICYmICFiZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlv
cjo6TmV2ZXJBbmltYXRlKSkgewogICAgICAgICBtX3Njcm9sbEFuaW1hdGlvbi0+c2V0Q3VycmVu
dFBvc2l0aW9uKG1fY3VycmVudFBvc2l0aW9uKTsKICAgICAgICAgcmV0dXJuIG1fc2Nyb2xsQW5p
bWF0aW9uLT5zY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVy
KTsKICAgICB9CkBAIC0xNjAsMTAgKzE2MSw2IEBAIEZsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3I6
OnBvc2l0aW9uRnJvbVN0ZXAoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIGZsCiAK
ICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogI2lmIFBMQVRGT1JNKE1BQykKLWJvb2wgU2Ny
b2xsQW5pbWF0b3I6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCi17Ci0gICAgcmV0dXJuIG1fc2Nyb2xsQ29udHJvbGxl
ci5wcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAod2hlZWxFdmVudCk7Ci19CiAjZW5kaWYK
IAogYm9vbCBTY3JvbGxBbmltYXRvcjo6YWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlKCkg
Y29uc3QKQEAgLTE3OSwxMCArMTc2LDExIEBAIHVuc2lnbmVkIFNjcm9sbEFuaW1hdG9yOjphY3Rp
dmVTY3JvbGxTbmFwSW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhpcyBheGlzKSBjb25zCiAKIGJv
b2wgU2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiBlKQogewotI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApICYmIFBMQVRGT1JNKE1BQykK
LSAgICBpZiAobV9zY3JvbGxDb250cm9sbGVyLnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25h
cChlKSkKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQorICAgIGlmIChwcm9jZXNzV2hlZWxF
dmVudEZvclNjcm9sbFNuYXAoZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgorCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRXZlbnRzIGluIHRoZSBQbGF0Zm9ybVdoZWVsRXZl
bnRQaGFzZTo6TWF5QmVnaW4gcGhhc2UgaGF2ZSBubyBkZWx0YXMsIGFuZCB0aGVyZWZvcmUgbmV2
ZXIgcGFzc2VzIHRocm91Z2ggdGhlIHNjcm9sbCBoYW5kbGluZyBsb2dpYyBiZWxvdy4KICAgICAv
LyBUaGlzIGNhdXNlcyB1cyB0byByZXR1cm4gd2l0aCBhbiAndW5oYW5kbGVkJyByZXR1cm4gc3Rh
dGUsIGV2ZW4gdGhvdWdoIHRoaXMgZXZlbnQgd2FzIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQuCkBA
IC0yMDMsNyArMjAxLDYgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsK
IAotICAgIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0gU2Nyb2xsQnlQaXhlbDsKICAg
ICBJbnRTaXplIG1heEZvcndhcmRTY3JvbGxEZWx0YSA9IG1fc2Nyb2xsYWJsZUFyZWEubWF4aW11
bVNjcm9sbFBvc2l0aW9uKCkgLSBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbFBvc2l0aW9uKCk7CiAg
ICAgSW50U2l6ZSBtYXhCYWNrd2FyZFNjcm9sbERlbHRhID0gbV9zY3JvbGxhYmxlQXJlYS5zY3Jv
bGxQb3NpdGlvbigpIC0gbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKTsK
ICAgICBpZiAoKGRlbHRhWCA8IDAgJiYgbWF4Rm9yd2FyZFNjcm9sbERlbHRhLndpZHRoKCkgPiAw
KQpAQCAtMjEyLDYgKzIwOSwxMCBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAgICAgfHwgKGRlbHRhWSA+IDAg
JiYgbWF4QmFja3dhcmRTY3JvbGxEZWx0YS5oZWlnaHQoKSA+IDApKSB7CiAgICAgICAgIGhhbmRs
ZWQgPSB0cnVlOwogCisgICAgICAgIE9wdGlvblNldDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3Io
U2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZyk7CisgICAgICAgIGlmIChlLmhh
c1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSkKKyAgICAgICAgICAgIGJlaGF2aW9yLmFkZChTY3Jv
bGxCZWhhdmlvcjo6TmV2ZXJBbmltYXRlKTsKKwogICAgICAgICBpZiAoZGVsdGFZKSB7CiAgICAg
ICAgICAgICBpZiAoZS5ncmFudWxhcml0eSgpID09IFNjcm9sbEJ5UGFnZVdoZWVsRXZlbnQpIHsK
ICAgICAgICAgICAgICAgICBib29sIG5lZ2F0aXZlID0gZGVsdGFZIDwgMDsKQEAgLTIxOSwxMCAr
MjIwLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIGUpCiAgICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlKQogICAgICAg
ICAgICAgICAgICAgICBkZWx0YVkgPSAtZGVsdGFZOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQotICAgICAgICAgICAgICAgIHNj
cm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKHBvc2l0aW9uRnJvbVN0ZXAoVmVydGljYWxT
Y3JvbGxiYXIsIHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSkpOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwg
Z3JhbnVsYXJpdHksIHZlcnRpY2FsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSk7Cisg
ICAgICAgICAgICBzY3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIFNjcm9sbEJ5UGl4ZWwsIHZlcnRp
Y2FsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWSwgYmVoYXZpb3IpOwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKGRlbHRhWCkgewpAQCAtMjMyLDEwICsyMzAsNyBAQCBib29sIFNjcm9s
bEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkK
ICAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUpCiAgICAgICAgICAgICAgICAgICAgIGRlbHRh
WCA9IC1kZWx0YVg7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZS5oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzKCkpCi0gICAgICAgICAgICAgICAgc2Nyb2xsVG9Qb3NpdGlvbldpdGhv
dXRBbmltYXRpb24ocG9zaXRpb25Gcm9tU3RlcChIb3Jpem9udGFsU2Nyb2xsYmFyLCBob3Jpem9u
dGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWCkpOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwg
aG9yaXpvbnRhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVgpOworICAgICAgICAgICAg
c2Nyb2xsKEhvcml6b250YWxTY3JvbGxiYXIsIFNjcm9sbEJ5UGl4ZWwsIGhvcml6b250YWxTY3Jv
bGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFYLCBiZWhhdmlvcik7CiAgICAgICAgIH0KICAgICB9
CiAgICAgcmV0dXJuIGhhbmRsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaAppbmRleCA2ZWIxNDA2NzdkMTM4YmVkMDU0ZTZlNzBmMTBiM2YxODY4NWI4OGQ4Li5lOTc3
OWQxMWFlMTdjMjA1MjVmYmY1ZGZkNDAwNzk3MWQ5OTBkZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTY5LDE1ICs2OSwxNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+U2Nyb2xsQW5pbWF0b3IoKTsKIAogICAgIGVudW0gU2Nyb2xsQmVoYXZpb3Igewot
ICAgICAgICBEZWZhdWx0LAotICAgICAgICBEb0RpcmVjdGlvbmFsU25hcHBpbmcsCisgICAgICAg
IERlZmF1bHQgPSAwLAorICAgICAgICBEb0RpcmVjdGlvbmFsU25hcHBpbmcgPSAxIDw8IDEsCisg
ICAgICAgIE5ldmVyQW5pbWF0ZSA9IDEgPDwgMiwKICAgICB9OwogCiAgICAgLy8gQ29tcHV0ZXMg
YSBzY3JvbGwgZGVzdGluYXRpb24gZm9yIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLiAgUmV0dXJucyBm
YWxzZSBpZgogICAgIC8vIGFscmVhZHkgYXQgdGhlIGRlc3RpbmF0aW9uLiAgT3RoZXJ3aXNlLCBz
dGFydHMgc2Nyb2xsaW5nIHRvd2FyZHMgdGhlCiAgICAgLy8gZGVzdGluYXRpb24gYW5kIHJldHVy
bnMgdHJ1ZS4gIFNjcm9sbGluZyBtYXkgYmUgaW1tZWRpYXRlIG9yIGFuaW1hdGVkLgogICAgIC8v
IFRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0ZWx5
LCBuZXZlciBhbmltYXRlcy4KLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVu
dGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwg
U2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6RGVmYXVsdCk7CisgICAgdmlydHVhbCBi
b29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0
IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxTY3JvbGxCZWhhdmlvcj4pOwogCiAg
ICAgYm9vbCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYs
IFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIHZpcnR1YWwg
Ym9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBw
b3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CkBAIC0x
NDksOSArMTUwLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9T
TkFQKQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Ny
b2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKLSNlbmRpZgorICAgIHZpcnR1YWwg
Ym9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHVwZGF0ZVNjcm9sbFNuYXBTdGF0ZSgp
OwogICAgIGJvb2wgYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlKCkgY29uc3Q7CiAgICAg
dW5zaWduZWQgYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhpcyhTY3JvbGxFdmVudEF4aXMpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aAppbmRleCA2NDliNGNmNTQ0NTA5OGEzMzEyMjgzODUwYjUxNzJjYTFjZDMyNzhiLi40YTVlM2Yy
ZTJmOTZkNmU1NThjZmEzZmRiMWE3MjllY2VjYjViNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtNzksNyArNzksNyBAQCBwcml2
YXRlOgogICAgIFRpbWVyIG1fc2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRUaW1lcjsKICAgICBGbG9h
dFNpemUgbV9jb250ZW50QXJlYVNjcm9sbGVkVGltZXJTY3JvbGxEZWx0YTsKIAotICAgIGJvb2wg
c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3Rl
cCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IpIG92ZXJyaWRlOworICAgIGJvb2wg
c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3Rl
cCwgZmxvYXQgbXVsdGlwbGllciwgT3B0aW9uU2V0PFNjcm9sbEJlaGF2aW9yPikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50
Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGlu
Zzo6Q2xhbXBlZCkgb3ZlcnJpZGU7CiAKQEAgLTE0MCw2ICsxNDAsOCBAQCBwcml2YXRlOgogICAg
IFN0cmluZyBob3Jpem9udGFsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmluYWw7
CiAgICAgU3RyaW5nIHZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmlu
YWw7CiAKKyAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKwogICAgIC8vIFNjcm9sbENvbnRyb2xsZXJDbGll
bnQuCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIEludFNpemUgc3RyZXRjaEFtb3Vu
dCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tCmluZGV4IDhlMDBiZDcxOGJmNTBiNjM0ZDhiMjk2NjY4Y2NkZWI1YmM4
NDI5ZWUuLmMwOTVjZDY2ZjU5NTZmOGI4OWFhY2IzM2Q1YjdmODAyMzBhOWE3YjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAgLTc1
MSwxNiArNzUxLDE3IEBAIHN0YXRpYyBib29sIHJ1YmJlckJhbmRpbmdFbmFibGVkRm9yU3lzdGVt
KCkKIH0KICNlbmRpZgogCi1ib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwoU2Nyb2xsYmFy
T3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBm
bG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKK2Jv
b2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRh
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11
bHRpcGxpZXIsIE9wdGlvblNldDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IpCiB7CiAgICAgbV9o
YXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKIAogICAgIC8vIFRoaXMgbWV0aG9kIGRv
ZXNuJ3QgZG8gZGlyZWN0aW9uYWwgc25hcHBpbmcsIGJ1dCBvdXIgYmFzZSBjbGFzcyBkb2VzLiBJ
dCB3aWxsIGNhbGwgaW50bwogICAgIC8vIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwgYWdhaW4g
d2l0aCB0aGUgc25hcHBlZCBwb3NpdGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yOjpEZWZhdWx0Lgot
ICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5n
KQorICAgIGlmIChiZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25h
bFNuYXBwaW5nKSkKICAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50
YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7CiAKLSAgICBi
b29sIHNob3VsZEFuaW1hdGUgPSBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkgJiYg
bV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSAmJiBncmFudWxhcml0eSAh
PSBTY3JvbGxCeVBpeGVsOworICAgIGJvb2wgc2hvdWxkQW5pbWF0ZSA9IHNjcm9sbEFuaW1hdGlv
bkVuYWJsZWRGb3JTeXN0ZW0oKSAmJiBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFuaW1hdG9yRW5h
YmxlZCgpICYmIGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5UGl4ZWwKKyAgICAgICAgJiYgIWJlaGF2
aW9yLmNvbnRhaW5zKFNjcm9sbEJlaGF2aW9yOjpOZXZlckFuaW1hdGUpOwogICAgIEZsb2F0UG9p
bnQgbmV3UG9zaXRpb24gPSBwb3NpdGlvbkZyb21TdGVwKG9yaWVudGF0aW9uLCBzdGVwLCBtdWx0
aXBsaWVyKTsKICAgICBuZXdQb3NpdGlvbiA9IG5ld1Bvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2Vl
bihzY3JvbGxhYmxlQXJlYSgpLm1pbmltdW1TY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxhYmxlQXJl
YSgpLm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsKIApAQCAtMTUwMCw2ICsxNTAxLDExIEBAIHZv
aWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJ
bnRSZWN0JiBzY3JvbGxlclRodW1iCiAgICAgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QgPSBy
ZWN0SW5WaWV3Q29vcmRpbmF0ZXM7CiB9CiAKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnByb2Nl
c3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQpCit7CisgICAgcmV0dXJuIG1fc2Nyb2xsQ29udHJvbGxlci5wcm9jZXNzV2hlZWxFdmVu
dEZvclNjcm9sbFNuYXAod2hlZWxFdmVudCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhmYmUwMGM4ZjA1
ZWZiZGFmNmZkNTQ5MDM1ZmYyYzM1NTkyMzIwMjAuLmI5NDQxY2UxYzliYmUxY2FkZWMwNjhjMDg1
ZmNjYzNjYjc1MjhhYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMy0xMiAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGJhc2ljIChu
b24tbW9tZW50dW0pIHdoZWVsIGV2ZW50IGhhbmRsaW5nIGZvciBzY3JvbGwgc25hcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNTk0CisgICAgICAg
IFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBj
c3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczogU2tpcCBuZXcgdGVzdCBi
ZWNhdXNlIGl0IHVzZXMgbW91c2UgZXZlbnQgc2ltdWxhdGlvbi4KKyAgICAgICAgTW92ZSBleGlz
dGluZyBjbGFzc2lmaWNhdGlvbiB0byBiZXR0ZXIgc2VjdGlvbiBhcyB3ZWxsLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy13azEvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNuYXAtbGF0
Y2hpbmctZXhwZWN0ZWQudHh0OiBSZWJhc2VkIHRoaXMgcHJldmlvdXMgZmFpbGluZyB0ZXN0Lgor
CiAyMDIxLTAzLTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtHUFUgUHJvY2Vzc10gaW5zcGVjdG9yL2NhbnZhcy9tZW1vcnkuaHRtbCBmYWlscyB3aGVu
IEdQVSByZW5kZXJpbmcgaXMgZW5hYmxlZCBmb3IgMkQgQ2FudmFzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZl
bnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5ZTYxY2EyMjA3MTQxZWVlMDE4OGI3YjFjNzJj
MWMzYzJmYTlmMGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1z
bmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
K1BBU1MgaG9yaXpvbnRhbCBtb3VzZSB3aGVlbCBldmVudCBzbmFwcGVkCitQQVNTIHZlcnRpY2Fs
IG1vdXNlIHdoZWVsIGV2ZW50IHNuYXBwZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBlMjNk
YWIzZDJlZjc5NzViZDI3ZDQ5MmYyMDVhZmE2MjU5N2FiNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbApA
QCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8dGl0bGU+U2ltcGxlIHdoZWVsIGV2ZW50cyBzaG91bGQgdHJpZ2dlciBzY3JvbGwgc25h
cHBpbmc8L3RpdGxlPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAg
ICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAg
ICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87Cisg
ICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogYm90aCBtYW5kYXRvcnk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIC5ob3Jpem9udGFsLWRyYXdlciB7CisgICAgICAgICAgICAg
ICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgICAgIHdpZHRoOiA1MDBweDsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgLmJsb2NrIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEw
MCU7CisgICAgICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgICAgIHNjcm9s
bC1zbmFwLWFsaWduOiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlciA9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVyVGV4dCA9ICJTaW1w
bGUgd2hlZWwgZXZlbnRzIHNob3VsZCB0cmlnZ2VyIHNjcm9sbCBzbmFwcGluZyI7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygyMCwgMTkwKTsKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyg4MCwgMTkwKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5KC0xLCAw
KTsKKworICAgICAgICAgICAgICAgIGxldCBob3Jpem9udGFsQ29udGFpbmVyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImhvcml6b250YWwtY29udGFpbmVyIik7CisgICAgICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0dGxlKGhvcml6
b250YWxDb250YWluZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoaG9yaXpvbnRhbENv
bnRhaW5lci5zY3JvbGxMZWZ0ID09IDIwMCwgImhvcml6b250YWwgbW91c2Ugd2hlZWwgZXZlbnQg
c25hcHBlZCIpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTkw
LCAyMjApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDE5MCwgMjcwKTsKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5KDAsIC0xKTsKKworICAgICAgICAgICAgICAgIGxldCB2ZXJ0aWNhbENv
bnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJ0aWNhbC1jb250YWluZXIiKTsK
KyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0
aW9uVG9TZXR0bGUodmVydGljYWxDb250YWluZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRy
dWUodmVydGljYWxDb250YWluZXIuc2Nyb2xsVG9wID09IDE4NSwgInZlcnRpY2FsIG1vdXNlIHdo
ZWVsIGV2ZW50IHNuYXBwZWQiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ICAgICAgICBjb25zb2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4K
KyAgICAgICAgPGRpdiBpZD0iaG9yaXpvbnRhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1kcmF3ZXIiPgorICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IGJhY2tncm91bmQ6
ICM4MDQ3NUUiPjwvZGl2PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHls
ZT0iZmxvYXQ6IGxlZnQ7IGJhY2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICAgICAg
PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJ2ZXJ0aWNhbC1jb250YWlu
ZXIiIGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0
eWxlPSJiYWNrZ3JvdW5kOiAjODA0NzVFIj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImJsb2NrIiBzdHlsZT0iYmFja2dyb3VuZDogI0NDNUE3MSI+PC9kaXY+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8cCBpZD0iY29uc29sZSI+PC9wPgorICAgICAgICA8c2NyaXB0PgorICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWYyNTZlOTJiMDFiYjEwN2JiNjllMWQ0
ZjUxMjhlY2I5NTgxYjMwZi4uZDU0YjQ0NzkwMmJlNWIwOTgzMTY1N2E4YjZhNTNhYmFkYTBiNzM4
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTM3LDcgKzEzNyw2IEBAIHNjcm9sbGJhcnMvc2Nyb2xsaW5nLWJ5LXBhZ2Utb24ta2V5Ym9h
cmQtc3BhY2ViYXIuaHRtbCBbIEZhaWx1cmUgXQogc2Nyb2xsYmFycy9zY3JvbGxiYXJzLW9uLXBv
c2l0aW9uZWQtY29udGVudC5odG1sIFsgRmFpbHVyZSBdCiBjc3MzL3Njcm9sbC1zbmFwL3Njcm9s
bC1wYWRkaW5nLW1haW5mcmFtZS1wYWdpbmcuaHRtbCBbIEZhaWx1cmUgXQogY3NzMy9zY3JvbGwt
c25hcC9zY3JvbGwtcGFkZGluZy1vdmVyZmxvdy1wYWdpbmcuaHRtbCBbIEZhaWx1cmUgXQotY3Nz
My9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1jbGljay1zY3JvbGxiYXItZ3V0dGVyLmh0bWwgWyBG
YWlsdXJlIF0KIAogIyBTVkcgdGVzdHMgdGhhdCB0aW1lIG91dCAodGhlc2UgcmVxdWlyZSBFdmVu
dFNlbmRlcikKIHN2Zy9hbmltYXRpb25zL2FuaW1WYWwtYmFzaWNzLmh0bWwKQEAgLTkzMyw2ICs5
MzIsOCBAQCBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Qtb3V0LW9mLWZsb2F0ZWQtbm9uLWVkaXRh
YmxlLTA5Lmh0bWwgWyBTa2lwIF0KIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1vdXQtb2YtZmxv
YXRlZC1ub24tZWRpdGFibGUtMTAuaHRtbCBbIFNraXAgXQogZWRpdGluZy9zZWxlY3Rpb24vc2Vs
ZWN0LW91dC1vZi1mbG9hdGVkLW5vbi1lZGl0YWJsZS0xMS5odG1sIFsgU2tpcCBdCiBlZGl0aW5n
L3NlbGVjdGlvbi9zZWxlY3Qtb3V0LW9mLWZsb2F0ZWQtbm9uLWVkaXRhYmxlLTEyLmh0bWwgWyBT
a2lwIF0KK2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRl
ci5odG1sIFsgU2tpcCBdCitjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50
Lmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzE5MjA4OCBtZWRpYS9uby1mdWxsc2NyZWVu
LXdoZW4taGlkZGVuLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zbmFw
LWxhdGNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFz
dC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNuYXAtbGF0Y2hpbmctZXhwZWN0ZWQudHh0Cmlu
ZGV4IDkwZDhkNjA0ZjdiMzEwMGY3YjAwOTYyNzRmODI3MTU2MDQ0ZjdkYjYuLjFlNjRmNzlkYTE3
NzRmNDRkOWMwYTNhZmFmM2U3YmEyZWYwNzQxNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNuYXAtbGF0Y2hp
bmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9z
Y3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNuYXAtbGF0Y2hpbmctZXhwZWN0ZWQudHh0CkBAIC00
LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1Mgb3ZlcmZsb3dTY3Jv
bGxFdmVudENvdW50ID4gMCBpcyB0cnVlCi1GQUlMIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgc2hv
dWxkIGJlIDAuIFdhcyA3LgorRkFJTCB3aW5kb3dTY3JvbGxFdmVudENvdW50IHNob3VsZCBiZSAw
LiBXYXMgMTEuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425148</attachid>
            <date>2021-04-05 07:05:06 -0700</date>
            <delta_ts>2021-04-20 05:09:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222594-20210405160505.patch</filename>
            <type>text/plain</type>
            <size>19485</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWU4YjBiNzQ5ZWM2YWE0
MTEzNjA0ZjA5ZWYwNzM3MTc2OWFlZDJjNS4uODg1ZDE2YTY5NjAzZDNiZTRhOTIyNTQ3OGRjZTJk
NmNkODQ2OTJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTEzICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYmFzaWMg
KG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcgZm9yIHNjcm9sbCBzbmFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgVGVzdDogY3NzMy9zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sCisKKyAgICAgICAgRW5hYmxlIHNj
cm9sbCBzbmFwcGluZyBmb3IgYmFzaWMgd2hlZWwgZXZlbnRzIG9uIEdUSysgYW5kIFdQRS4gVGhl
IE1hYyBwb3J0CisgICAgICAgIGhhcyBzcGVjaWFsIHdoZWVsIGhhbmRsaW5nIGR1ZSB0byBtb21l
bnR1bSBzY3JvbGxpbmcuIE90aGVyIHNjcm9sbC1zbmFwLWVuYWJsZWQKKyAgICAgICAgcG9ydHMg
Y2FuIGp1c3QgdXNlIGEgYmFzaWMgdmVyc2lvbi4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGwp
OiBBY2NlcHQgYSBiaXRtYXNrIG9mIG9wdGlvbnMgbm93LiBUaGlzCisgICAgICAgIHdpbGwgYWxs
b3cgdXNpbmcgdGhpcyBtZXRob2Qgd2hlbiBoYW5kbGluZyB3aGVlbCBldmVudHMgdGhhdCBkbyBu
b3QgYW5pbWF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVl
bEV2ZW50KTogVHJpZ2dlciA6OnNjcm9sbCB3aXRoCisgICAgICAgIHNjcm9sbCBzbmFwcGluZyBl
bmFibGVkIGFuZCBwYXNzIHRoZSBhcHByb3ByaWF0ZSBvcHRpb24gdG8gZGlzYWJsZSBhbmltYXRp
b25zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnByb2Nlc3NXaGVlbEV2ZW50
Rm9yU2Nyb2xsU25hcCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6
cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKTogTWFkZQorICAgICAgICB0aGlzIGEgbWV0
aG9kIHRoYXQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogQWRkZWQgcHJvY2Vzc1doZWVsRXZlbnRGb3JT
Y3JvbGxTbmFwLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwpOiBQYXkgYXR0ZW50
aW9uIHRvIHRoZSBOZXZlckFuaW1hdGUgYml0bWFzayBub3cuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck1hYzo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKTogQWRkZWQu
CisKIDIwMjEtMDQtMDUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFtjc3Mtc2Nyb2xsLXNuYXBdIFByb3Blcmx5IHN1cHBvcnQgZnJhY3Rpb25hbCBz
Y3JvbGwgc3RlcHMgaW4gV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IDZiZGUwYmNiOWYyZGFlYmI4
ZDgzNzRhM2E4MjBjOWE5NjcyNGJlZDguLjdjYmU3OGQzYjQ5OWJiNGNmODM3YWM3NGU0ZjU0YTk5
YjBhMDExNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAK
QEAgLTgxLDEzICs4MSwxNCBAQCBTY3JvbGxBbmltYXRvcjo6flNjcm9sbEFuaW1hdG9yKCkKICNl
bmRpZgogfQogCi1ib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRp
b24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVw
LCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKK2Jvb2wgU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9w
dGlvblNldDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IpCiB7CiAgICAgYXV0byBkZWx0YSA9IGRl
bHRhRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpOwogI2lmIEVOQUJMRShD
U1NfU0NST0xMX1NOQVApCi0gICAgaWYgKGJlaGF2aW9yID09IFNjcm9sbEJlaGF2aW9yOjpEb0Rp
cmVjdGlvbmFsU25hcHBpbmcpIHsKKyAgICBpZiAoYmVoYXZpb3IuY29udGFpbnMoU2Nyb2xsQmVo
YXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykpIHsKKyAgICAgICAgYmVoYXZpb3IucmVtb3Zl
KFNjcm9sbEJlaGF2aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBpbmcpOwogICAgICAgICBpZiAoIW1f
c2Nyb2xsQ29udHJvbGxlci51c2VzU2Nyb2xsU25hcCgpKQotICAgICAgICAgICAgcmV0dXJuIHNj
cm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOworICAgICAg
ICAgICAgcmV0dXJuIHNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRp
cGxpZXIsIGJlaGF2aW9yKTsKIAogICAgICAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBvZmZzZXRG
cm9tUG9zaXRpb24oY3VycmVudFBvc2l0aW9uKCkpOwogICAgICAgICBhdXRvIG5ld09mZnNldCA9
IGN1cnJlbnRPZmZzZXQgKyBkZWx0YTsKQEAgLTk4LDggKzk5LDggQEAgYm9vbCBTY3JvbGxBbmlt
YXRvcjo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFu
dWxhcml0eQogICAgICAgICBhdXRvIG5ld0RlbHRhID0gbmV3T2Zmc2V0IC0gY3VycmVudE9mZnNl
dDsKIAogICAgICAgICBpZiAob3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKLSAg
ICAgICAgICAgIHJldHVybiBzY3JvbGwoSG9yaXpvbnRhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHks
IG5ld0RlbHRhLndpZHRoKCksIDEuMCk7Ci0gICAgICAgIHJldHVybiBzY3JvbGwoVmVydGljYWxT
Y3JvbGxiYXIsIGdyYW51bGFyaXR5LCBuZXdEZWx0YS5oZWlnaHQoKSwgMS4wKTsKKyAgICAgICAg
ICAgIHJldHVybiBzY3JvbGwoSG9yaXpvbnRhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIG5ld0Rl
bHRhLndpZHRoKCksIDEuMCwgYmVoYXZpb3IpOworICAgICAgICByZXR1cm4gc2Nyb2xsKFZlcnRp
Y2FsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3RGVsdGEuaGVpZ2h0KCksIDEuMCwgYmVoYXZp
b3IpOwogICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGdyYW51bGFyaXR5KTsKQEAgLTEw
Nyw3ICsxMDgsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShTTU9PVEhfU0NST0xMSU5HKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAobV9z
Y3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSkgeworICAgIGlmIChtX3Njcm9s
bGFibGVBcmVhLnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpICYmICFiZWhhdmlvci5jb250YWlucyhT
Y3JvbGxCZWhhdmlvcjo6TmV2ZXJBbmltYXRlKSkgewogICAgICAgICBtX3Njcm9sbEFuaW1hdGlv
bi0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3VycmVudFBvc2l0aW9uKTsKICAgICAgICAgcmV0dXJu
IG1fc2Nyb2xsQW5pbWF0aW9uLT5zY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVw
LCBtdWx0aXBsaWVyKTsKICAgICB9CkBAIC0xNzcsMTAgKzE3OCw2IEBAIEZsb2F0U2l6ZSBTY3Jv
bGxBbmltYXRvcjo6ZGVsdGFGcm9tU3RlcChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgZmxvYXQKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAjaWYgUExBVEZPUk0oTUFD
KQotYm9vbCBTY3JvbGxBbmltYXRvcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKLXsKLSAgICByZXR1cm4gbV9zY3Jv
bGxDb250cm9sbGVyLnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50KTsK
LX0KICNlbmRpZgogCiBib29sIFNjcm9sbEFuaW1hdG9yOjphY3RpdmVTY3JvbGxTbmFwSW5kZXhE
aWRDaGFuZ2UoKSBjb25zdApAQCAtMTk2LDEwICsxOTMsMTEgQEAgdW5zaWduZWQgU2Nyb2xsQW5p
bWF0b3I6OmFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMp
IGNvbnMKIAogYm9vbCBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIGUpCiB7Ci0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgJiYgUExB
VEZPUk0oTUFDKQotICAgIGlmIChtX3Njcm9sbENvbnRyb2xsZXIucHJvY2Vzc1doZWVsRXZlbnRG
b3JTY3JvbGxTbmFwKGUpKQorI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCisgICAgaWYgKHBy
b2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
I2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBFdmVudHMgaW4gdGhlIFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbiBwaGFzZSBoYXZlIG5vIGRlbHRhcywgYW5kIHRo
ZXJlZm9yZSBuZXZlciBwYXNzZXMgdGhyb3VnaCB0aGUgc2Nyb2xsIGhhbmRsaW5nIGxvZ2ljIGJl
bG93LgogICAgIC8vIFRoaXMgY2F1c2VzIHVzIHRvIHJldHVybiB3aXRoIGFuICd1bmhhbmRsZWQn
IHJldHVybiBzdGF0ZSwgZXZlbiB0aG91Z2ggdGhpcyBldmVudCB3YXMgc3VjY2Vzc2Z1bGx5IHBy
b2Nlc3NlZC4KQEAgLTIyMCw3ICsyMTgsNiBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKIAogICAgIGJvb2wgaGFuZGxl
ZCA9IGZhbHNlOwogCi0gICAgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBTY3JvbGxC
eVBpeGVsOwogICAgIEludFNpemUgbWF4Rm9yd2FyZFNjcm9sbERlbHRhID0gbV9zY3JvbGxhYmxl
QXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSAtIG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsUG9z
aXRpb24oKTsKICAgICBJbnRTaXplIG1heEJhY2t3YXJkU2Nyb2xsRGVsdGEgPSBtX3Njcm9sbGFi
bGVBcmVhLnNjcm9sbFBvc2l0aW9uKCkgLSBtX3Njcm9sbGFibGVBcmVhLm1pbmltdW1TY3JvbGxQ
b3NpdGlvbigpOwogICAgIGlmICgoZGVsdGFYIDwgMCAmJiBtYXhGb3J3YXJkU2Nyb2xsRGVsdGEu
d2lkdGgoKSA+IDApCkBAIC0yMjksNiArMjI2LDEwIEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3I6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogICAgICAgICB8fCAo
ZGVsdGFZID4gMCAmJiBtYXhCYWNrd2FyZFNjcm9sbERlbHRhLmhlaWdodCgpID4gMCkpIHsKICAg
ICAgICAgaGFuZGxlZCA9IHRydWU7CiAKKyAgICAgICAgT3B0aW9uU2V0PFNjcm9sbEJlaGF2aW9y
PiBiZWhhdmlvcihTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKTsKKyAgICAg
ICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQorICAgICAgICAgICAgYmVoYXZp
b3IuYWRkKFNjcm9sbEJlaGF2aW9yOjpOZXZlckFuaW1hdGUpOworCiAgICAgICAgIGlmIChkZWx0
YVkpIHsKICAgICAgICAgICAgIGlmIChlLmdyYW51bGFyaXR5KCkgPT0gU2Nyb2xsQnlQYWdlV2hl
ZWxFdmVudCkgewogICAgICAgICAgICAgICAgIGJvb2wgbmVnYXRpdmUgPSBkZWx0YVkgPCAwOwpA
QCAtMjM2LDEwICsyMzcsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAgICAgICAgICAgICBpZiAobmVnYXRp
dmUpCiAgICAgICAgICAgICAgICAgICAgIGRlbHRhWSA9IC1kZWx0YVk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAoZS5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkpCi0gICAgICAg
ICAgICAgICAgc2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmltYXRpb24oY3VycmVudFBvc2l0aW9u
KCkgKyBkZWx0YUZyb21TdGVwKFZlcnRpY2FsU2Nyb2xsYmFyLCB2ZXJ0aWNhbFNjcm9sbGJhci0+
cGl4ZWxTdGVwKCksIC1kZWx0YVkpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBzY3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCB2ZXJ0aWNhbFNjcm9sbGJh
ci0+cGl4ZWxTdGVwKCksIC1kZWx0YVkpOworICAgICAgICAgICAgc2Nyb2xsKFZlcnRpY2FsU2Ny
b2xsYmFyLCBTY3JvbGxCeVBpeGVsLCB2ZXJ0aWNhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1k
ZWx0YVksIGJlaGF2aW9yKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChkZWx0YVgpIHsKQEAg
LTI0OSwxMCArMjQ3LDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAgICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZl
KQogICAgICAgICAgICAgICAgICAgICBkZWx0YVggPSAtZGVsdGFYOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQotICAgICAgICAg
ICAgICAgIHNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKGN1cnJlbnRQb3NpdGlvbigp
ICsgZGVsdGFGcm9tU3RlcChIb3Jpem9udGFsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFy
LT5waXhlbFN0ZXAoKSwgLWRlbHRhWCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgaG9yaXpvbnRhbFNj
cm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVgpOworICAgICAgICAgICAgc2Nyb2xsKEhvcml6
b250YWxTY3JvbGxiYXIsIFNjcm9sbEJ5UGl4ZWwsIGhvcml6b250YWxTY3JvbGxiYXItPnBpeGVs
U3RlcCgpLCAtZGVsdGFYLCBiZWhhdmlvcik7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJu
IGhhbmRsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA4
NTIwMzM2Yjg0ZWRkYjI5MzNjZjc2MjMzNzNiMTEwYWNiNWMzZTYxLi5lYmYzMTdkOTQ2MGU3NGRj
ZDA0OTU0MDZjZmEyMzI0MzZiNWQxODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmgKQEAgLTY5LDE1ICs2OSwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2Ny
b2xsQW5pbWF0b3IoKTsKIAogICAgIGVudW0gU2Nyb2xsQmVoYXZpb3IgewotICAgICAgICBEZWZh
dWx0LAotICAgICAgICBEb0RpcmVjdGlvbmFsU25hcHBpbmcsCisgICAgICAgIERlZmF1bHQgPSAw
LAorICAgICAgICBEb0RpcmVjdGlvbmFsU25hcHBpbmcgPSAxIDw8IDEsCisgICAgICAgIE5ldmVy
QW5pbWF0ZSA9IDEgPDwgMiwKICAgICB9OwogCiAgICAgLy8gQ29tcHV0ZXMgYSBzY3JvbGwgZGVz
dGluYXRpb24gZm9yIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLiAgUmV0dXJucyBmYWxzZSBpZgogICAg
IC8vIGFscmVhZHkgYXQgdGhlIGRlc3RpbmF0aW9uLiAgT3RoZXJ3aXNlLCBzdGFydHMgc2Nyb2xs
aW5nIHRvd2FyZHMgdGhlCiAgICAgLy8gZGVzdGluYXRpb24gYW5kIHJldHVybnMgdHJ1ZS4gIFNj
cm9sbGluZyBtYXkgYmUgaW1tZWRpYXRlIG9yIGFuaW1hdGVkLgogICAgIC8vIFRoZSBiYXNlIGNs
YXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0ZWx5LCBuZXZlciBhbmlt
YXRlcy4KLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3Jv
bGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZp
b3IgPSBTY3JvbGxCZWhhdmlvcjo6RGVmYXVsdCk7CisgICAgdmlydHVhbCBib29sIHNjcm9sbChT
Y3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0
IG11bHRpcGxpZXIsIE9wdGlvblNldDxTY3JvbGxCZWhhdmlvcj4pOwogCiAgICAgYm9vbCBzY3Jv
bGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYsIFNjcm9sbENsYW1w
aW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxU
b1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Ny
b2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CkBAIC0xNDksOSArMTUwLDcg
QEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotI2lmIFBM
QVRGT1JNKE1BQykKLSAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKLSNlbmRpZgorICAgIHZpcnR1YWwgYm9vbCBwcm9jZXNz
V2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2b2lkIHVwZGF0ZVNjcm9sbFNuYXBTdGF0ZSgpOwogICAgIGJvb2wg
YWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgYWN0
aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhpcyhTY3JvbGxFdmVudEF4aXMpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRleCA2NDli
NGNmNTQ0NTA5OGEzMzEyMjgzODUwYjUxNzJjYTFjZDMyNzhiLi40YTVlM2YyZTJmOTZkNmU1NThj
ZmEzZmRiMWE3MjllY2VjYjViNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAgIFRp
bWVyIG1fc2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRUaW1lcjsKICAgICBGbG9hdFNpemUgbV9jb250
ZW50QXJlYVNjcm9sbGVkVGltZXJTY3JvbGxEZWx0YTsKIAotICAgIGJvb2wgc2Nyb2xsKFNjcm9s
bGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVs
dGlwbGllciwgU2Nyb2xsQmVoYXZpb3IpIG92ZXJyaWRlOworICAgIGJvb2wgc2Nyb2xsKFNjcm9s
bGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVs
dGlwbGllciwgT3B0aW9uU2V0PFNjcm9sbEJlaGF2aW9yPikgb3ZlcnJpZGU7CiAgICAgYm9vbCBz
Y3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBv
aW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkg
b3ZlcnJpZGU7CiAKQEAgLTE0MCw2ICsxNDAsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBob3Jp
em9udGFsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5n
IHZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmluYWw7CiAKKyAgICBi
b29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSBvdmVycmlkZTsKKwogICAgIC8vIFNjcm9sbENvbnRyb2xsZXJDbGllbnQuCiAjaWYgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tCmluZGV4IDU1ZDhmYjA5NGI1ZDEzMTZjY2I4MTIyZGFiYmQwNDFiMGZlMzQ4ZGMuLmIxZjM3
NWJmYTU3YmRhMTUwOTNkYTJiYWZhNTM1NWIxZGFmZjRhYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAgLTc1MSwxNiArNzUxLDE3
IEBAIHN0YXRpYyBib29sIHJ1YmJlckJhbmRpbmdFbmFibGVkRm9yU3lzdGVtKCkKIH0KICNlbmRp
ZgogCi1ib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24g
b3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBm
bG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKK2Jvb2wgU2Nyb2xsQW5p
bWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9w
dGlvblNldDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IpCiB7CiAgICAgbV9oYXZlU2Nyb2xsZWRT
aW5jZVBhZ2VMb2FkID0gdHJ1ZTsKIAogICAgIC8vIFRoaXMgbWV0aG9kIGRvZXNuJ3QgZG8gZGly
ZWN0aW9uYWwgc25hcHBpbmcsIGJ1dCBvdXIgYmFzZSBjbGFzcyBkb2VzLiBJdCB3aWxsIGNhbGwg
aW50bwogICAgIC8vIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwgYWdhaW4gd2l0aCB0aGUgc25h
cHBlZCBwb3NpdGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yOjpEZWZhdWx0LgotICAgIGlmIChiZWhh
dmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKQorICAgIGlmIChi
ZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5nKSkK
ICAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51
bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7CiAKLSAgICBib29sIHNob3VsZEFu
aW1hdGUgPSBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkgJiYgbV9zY3JvbGxhYmxl
QXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSAmJiBncmFudWxhcml0eSAhPSBTY3JvbGxCeVBp
eGVsOworICAgIGJvb2wgc2hvdWxkQW5pbWF0ZSA9IHNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JT
eXN0ZW0oKSAmJiBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpICYmIGdy
YW51bGFyaXR5ICE9IFNjcm9sbEJ5UGl4ZWwKKyAgICAgICAgJiYgIWJlaGF2aW9yLmNvbnRhaW5z
KFNjcm9sbEJlaGF2aW9yOjpOZXZlckFuaW1hdGUpOwogICAgIEZsb2F0UG9pbnQgbmV3UG9zaXRp
b24gPSB0aGlzLT5jdXJyZW50UG9zaXRpb24oKSArIGRlbHRhRnJvbVN0ZXAob3JpZW50YXRpb24s
IHN0ZXAsIG11bHRpcGxpZXIpOwogICAgIG5ld1Bvc2l0aW9uID0gbmV3UG9zaXRpb24uY29uc3Ry
YWluZWRCZXR3ZWVuKHNjcm9sbGFibGVBcmVhKCkubWluaW11bVNjcm9sbFBvc2l0aW9uKCksIHNj
cm9sbGFibGVBcmVhKCkubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkpOwogCkBAIC0xNTAwLDYgKzE1
MDEsMTEgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJS
ZWN0KGNvbnN0IEludFJlY3QmIHNjcm9sbGVyVGh1bWIKICAgICBtX3Zpc2libGVTY3JvbGxlclRo
dW1iUmVjdCA9IHJlY3RJblZpZXdDb29yZGluYXRlczsKIH0KIAorYm9vbCBTY3JvbGxBbmltYXRv
ck1hYzo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCkKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxDb250cm9sbGVyLnByb2Nl
c3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50KTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZDIyMDQyOTBlZTdiZmJhNzFlMWIyM2ZhYjc5NjkyY2M4MDYxZjRiYi4uN2FkZTYyZDI4MzRlYWI1
NWZiNDdiZDk2YjIwY2JjNjBmMDNiZDJkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAz
LTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgYmFzaWMgKG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcgZm9yIHNjcm9sbCBz
bmFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1
OTQKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogY3NzMy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOiBTa2lw
IG5ldyB0ZXN0IGJlY2F1c2UgaXQgdXNlcyBtb3VzZSBldmVudCBzaW11bGF0aW9uLgorICAgICAg
ICBNb3ZlIGV4aXN0aW5nIGNsYXNzaWZpY2F0aW9uIHRvIGJldHRlciBzZWN0aW9uIGFzIHdlbGwu
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3Jv
bGwtc25hcC1sYXRjaGluZy1leHBlY3RlZC50eHQ6IFJlYmFzZWQgdGhpcyBwcmV2aW91cyBmYWls
aW5nIHRlc3QuCisKIDIwMjEtMDQtMDIgIEFtaXIgTWFyayBKciAgPGFtaXJfbWFya0BhcHBsZS5j
b20+CiAKICAgICAgICAgWyBNYWNPUyBdIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNv
cy1pbmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWRyb3BwaW5nLWNvbnRy
b2xzLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM5ZTYxY2EyMjA3MTQxZWVlMDE4OGI3YjFjNzJjMWMzYzJmYTlmMGMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLXdoZWVsLWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgaG9yaXpv
bnRhbCBtb3VzZSB3aGVlbCBldmVudCBzbmFwcGVkCitQQVNTIHZlcnRpY2FsIG1vdXNlIHdoZWVs
IGV2ZW50IHNuYXBwZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9s
bC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Nj
cm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBlMjNkYWIzZDJlZjc5NzVi
ZDI3ZDQ5MmYyMDVhZmE2MjU5N2FiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nz
czMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbApAQCAtMCwwICsxLDgw
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+
U2ltcGxlIHdoZWVsIGV2ZW50cyBzaG91bGQgdHJpZ2dlciBzY3JvbGwgc25hcHBpbmc8L3RpdGxl
PgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgLmNvbnRhaW5l
ciB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgICAgICB3aWR0
aDogMjAwcHg7CisgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgICAgICAgICAg
ICAgc2Nyb2xsLXNuYXAtdHlwZTogYm90aCBtYW5kYXRvcnk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIC5ob3Jpem9udGFsLWRyYXdlciB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAx
MDAlOworICAgICAgICAgICAgICAgIHdpZHRoOiA1MDBweDsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLmJsb2NrIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAg
ICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWdu
OiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAg
ICAgYXN5bmMgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlciA9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVyVGV4dCA9ICJTaW1wbGUgd2hlZWwgZXZl
bnRzIHNob3VsZCB0cmlnZ2VyIHNjcm9sbCBzbmFwcGluZyI7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbygyMCwgMTkwKTsKKyAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byg4MCwgMTkwKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAg
ICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5KC0xLCAwKTsKKworICAgICAg
ICAgICAgICAgIGxldCBob3Jpem9udGFsQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImhvcml6b250YWwtY29udGFpbmVyIik7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0dGxlKGhvcml6b250YWxDb250YWlu
ZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoaG9yaXpvbnRhbENvbnRhaW5lci5zY3Jv
bGxMZWZ0ID09IDIwMCwgImhvcml6b250YWwgbW91c2Ugd2hlZWwgZXZlbnQgc25hcHBlZCIpOwor
CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTkwLCAyMjApOworICAg
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDE5MCwgMjcwKTsKKyAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5KDAsIC0xKTsKKworICAgICAgICAgICAgICAgIGxldCB2ZXJ0aWNhbENvbnRhaW5lciA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJ0aWNhbC1jb250YWluZXIiKTsKKyAgICAgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9uVG9TZXR0bGUo
dmVydGljYWxDb250YWluZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUodmVydGljYWxD
b250YWluZXIuc2Nyb2xsVG9wID09IDE4NSwgInZlcnRpY2FsIG1vdXNlIHdoZWVsIGV2ZW50IHNu
YXBwZWQiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBjb25z
b2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKyAgICAgICAgPGRp
diBpZD0iaG9yaXpvbnRhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1kcmF3ZXIiPgorICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImJsb2NrIiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IGJhY2tncm91bmQ6ICM4MDQ3NUUiPjwv
ZGl2PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iZmxvYXQ6IGxl
ZnQ7IGJhY2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJ2ZXJ0aWNhbC1jb250YWluZXIiIGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJiYWNrZ3Jv
dW5kOiAjODA0NzVFIj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHls
ZT0iYmFja2dyb3VuZDogI0NDNUE3MSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
cCBpZD0iY29uc29sZSI+PC9wPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggY2I3MDA4OWIzZjQ5MGJjNGY1YjIxN2JlYTlmZGVhNTNlZTM4
NjUzNC4uZTk1NGVmMGUwMDljMjRkMDY1YjM0ZDdjYTUxODU2MGNlN2MxMTc0NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM3LDcgKzEz
Nyw2IEBAIHNjcm9sbGJhcnMvc2Nyb2xsaW5nLWJ5LXBhZ2Utb24ta2V5Ym9hcmQtc3BhY2ViYXIu
aHRtbCBbIEZhaWx1cmUgXQogc2Nyb2xsYmFycy9zY3JvbGxiYXJzLW9uLXBvc2l0aW9uZWQtY29u
dGVudC5odG1sIFsgRmFpbHVyZSBdCiBjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1wYWRkaW5nLW1h
aW5mcmFtZS1wYWdpbmcuaHRtbCBbIEZhaWx1cmUgXQogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwt
cGFkZGluZy1vdmVyZmxvdy1wYWdpbmcuaHRtbCBbIEZhaWx1cmUgXQotY3NzMy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1jbGljay1zY3JvbGxiYXItZ3V0dGVyLmh0bWwgWyBGYWlsdXJlIF0KIAog
IyBTVkcgdGVzdHMgdGhhdCB0aW1lIG91dCAodGhlc2UgcmVxdWlyZSBFdmVudFNlbmRlcikKIHN2
Zy9hbmltYXRpb25zL2FuaW1WYWwtYmFzaWNzLmh0bWwKQEAgLTkzMyw2ICs5MzIsOCBAQCBlZGl0
aW5nL3NlbGVjdGlvbi9zZWxlY3Qtb3V0LW9mLWZsb2F0ZWQtbm9uLWVkaXRhYmxlLTA5Lmh0bWwg
WyBTa2lwIF0KIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1vdXQtb2YtZmxvYXRlZC1ub24tZWRp
dGFibGUtMTAuaHRtbCBbIFNraXAgXQogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0LW91dC1vZi1m
bG9hdGVkLW5vbi1lZGl0YWJsZS0xMS5odG1sIFsgU2tpcCBdCiBlZGl0aW5nL3NlbGVjdGlvbi9z
ZWxlY3Qtb3V0LW9mLWZsb2F0ZWQtbm9uLWVkaXRhYmxlLTEyLmh0bWwgWyBTa2lwIF0KK2NzczMv
c2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRlci5odG1sIFsgU2tp
cCBdCitjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwgWyBTa2lw
IF0KIAogd2Via2l0Lm9yZy9iLzE5MjA4OCBtZWRpYS9uby1mdWxsc2NyZWVuLXdoZW4taGlkZGVu
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zbmFwLWxhdGNoaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvc2Nyb2xsLXNuYXAtbGF0Y2hpbmctZXhwZWN0ZWQudHh0CmluZGV4IDkwZDhkNjA0
ZjdiMzEwMGY3YjAwOTYyNzRmODI3MTU2MDQ0ZjdkYjYuLjFlNjRmNzlkYTE3NzRmNDRkOWMwYTNh
ZmFmM2U3YmEyZWYwNzQxNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNuYXAtbGF0Y2hpbmctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9zY3JvbGxpbmcvbGF0
Y2hpbmcvc2Nyb2xsLXNuYXAtbGF0Y2hpbmctZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1Mgb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50
ID4gMCBpcyB0cnVlCi1GQUlMIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgc2hvdWxkIGJlIDAuIFdh
cyA3LgorRkFJTCB3aW5kb3dTY3JvbGxFdmVudENvdW50IHNob3VsZCBiZSAwLiBXYXMgMTEuCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426538</attachid>
            <date>2021-04-20 05:09:20 -0700</date>
            <delta_ts>2021-04-21 01:03:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222594-20210420140918.patch</filename>
            <type>text/plain</type>
            <size>19438</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFlNTNiNDBjYjRkYjQw
YTk2MWJlY2U0OWU5Y2ViNzdkMzQ4Mzc2Yy4uOWNlZmMxMjAwZDdmMzBmZTE5NGZkMjBjYmY2NzMz
MWQzNmY5ZmJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTEzICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYmFzaWMg
KG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcgZm9yIHNjcm9sbCBzbmFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgVGVzdDogY3NzMy9zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sCisKKyAgICAgICAgRW5hYmxlIHNj
cm9sbCBzbmFwcGluZyBmb3IgYmFzaWMgd2hlZWwgZXZlbnRzIG9uIEdUSysgYW5kIFdQRS4gVGhl
IE1hYyBwb3J0CisgICAgICAgIGhhcyBzcGVjaWFsIHdoZWVsIGhhbmRsaW5nIGR1ZSB0byBtb21l
bnR1bSBzY3JvbGxpbmcuIE90aGVyIHNjcm9sbC1zbmFwLWVuYWJsZWQKKyAgICAgICAgcG9ydHMg
Y2FuIGp1c3QgdXNlIGEgYmFzaWMgdmVyc2lvbi4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGwp
OiBBY2NlcHQgYSBiaXRtYXNrIG9mIG9wdGlvbnMgbm93LiBUaGlzCisgICAgICAgIHdpbGwgYWxs
b3cgdXNpbmcgdGhpcyBtZXRob2Qgd2hlbiBoYW5kbGluZyB3aGVlbCBldmVudHMgdGhhdCBkbyBu
b3QgYW5pbWF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVl
bEV2ZW50KTogVHJpZ2dlciA6OnNjcm9sbCB3aXRoCisgICAgICAgIHNjcm9sbCBzbmFwcGluZyBl
bmFibGVkIGFuZCBwYXNzIHRoZSBhcHByb3ByaWF0ZSBvcHRpb24gdG8gZGlzYWJsZSBhbmltYXRp
b25zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnByb2Nlc3NXaGVlbEV2ZW50
Rm9yU2Nyb2xsU25hcCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6
cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKTogTWFkZQorICAgICAgICB0aGlzIGEgbWV0
aG9kIHRoYXQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogQWRkZWQgcHJvY2Vzc1doZWVsRXZlbnRGb3JT
Y3JvbGxTbmFwLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwpOiBQYXkgYXR0ZW50
aW9uIHRvIHRoZSBOZXZlckFuaW1hdGUgYml0bWFzayBub3cuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck1hYzo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKTogQWRkZWQu
CisKIDIwMjEtMDQtMjAgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyB1c2VzIGF0b21pYyB2YXJpYWJsZXMg
YnV0IGFsc28gbG9ja3Mgd2l0aCBtdXRleApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuY3BwCmluZGV4IGIwODMxMTViYWZiZWIyNjY0MzUzYzk5NTY0MDVhYTc0Y2IwZDVi
MjEuLmMyNDQ5MGVhMjZkMTJmNGQzMzMxODkzNGU4YzY3MTA0YjcyNTdjZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTgxLDEzICs4MSwxNCBAQCBT
Y3JvbGxBbmltYXRvcjo6flNjcm9sbEFuaW1hdG9yKCkKICNlbmRpZgogfQogCi1ib29sIFNjcm9s
bEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9s
bEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBT
Y3JvbGxCZWhhdmlvciBiZWhhdmlvcikKK2Jvb2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChTY3Jv
bGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxTY3JvbGxCZWhhdmlv
cj4gYmVoYXZpb3IpCiB7CiAgICAgYXV0byBkZWx0YSA9IGRlbHRhRnJvbVN0ZXAob3JpZW50YXRp
b24sIHN0ZXAsIG11bHRpcGxpZXIpOwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCi0gICAg
aWYgKGJlaGF2aW9yID09IFNjcm9sbEJlaGF2aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBpbmcpIHsK
KyAgICBpZiAoYmVoYXZpb3IuY29udGFpbnMoU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxT
bmFwcGluZykpIHsKKyAgICAgICAgYmVoYXZpb3IucmVtb3ZlKFNjcm9sbEJlaGF2aW9yOjpEb0Rp
cmVjdGlvbmFsU25hcHBpbmcpOwogICAgICAgICBpZiAoIW1fc2Nyb2xsQ29udHJvbGxlci51c2Vz
U2Nyb2xsU25hcCgpKQotICAgICAgICAgICAgcmV0dXJuIHNjcm9sbChvcmllbnRhdGlvbiwgZ3Jh
bnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOworICAgICAgICAgICAgcmV0dXJuIHNjcm9sbChv
cmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIsIGJlaGF2aW9yKTsKIAog
ICAgICAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBvZmZzZXRGcm9tUG9zaXRpb24oY3VycmVudFBv
c2l0aW9uKCkpOwogICAgICAgICBhdXRvIG5ld09mZnNldCA9IGN1cnJlbnRPZmZzZXQgKyBkZWx0
YTsKQEAgLTk4LDggKzk5LDggQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNjcm9sbGJh
ck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eQogICAgICAgICBhdXRv
IG5ld0RlbHRhID0gbmV3T2Zmc2V0IC0gY3VycmVudE9mZnNldDsKIAogICAgICAgICBpZiAob3Jp
ZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKLSAgICAgICAgICAgIHJldHVybiBzY3Jv
bGwoSG9yaXpvbnRhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIG5ld0RlbHRhLndpZHRoKCksIDEu
MCk7Ci0gICAgICAgIHJldHVybiBzY3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5
LCBuZXdEZWx0YS5oZWlnaHQoKSwgMS4wKTsKKyAgICAgICAgICAgIHJldHVybiBzY3JvbGwoSG9y
aXpvbnRhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIG5ld0RlbHRhLndpZHRoKCksIDEuMCwgYmVo
YXZpb3IpOworICAgICAgICByZXR1cm4gc2Nyb2xsKFZlcnRpY2FsU2Nyb2xsYmFyLCBncmFudWxh
cml0eSwgbmV3RGVsdGEuaGVpZ2h0KCksIDEuMCwgYmVoYXZpb3IpOwogICAgIH0KICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGdyYW51bGFyaXR5KTsKQEAgLTEwNyw3ICsxMDgsNyBAQCBib29sIFNj
cm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNj
cm9sbEdyYW51bGFyaXR5CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKSAm
JiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxB
bmltYXRvckVuYWJsZWQoKSkgeworICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFuaW1h
dG9yRW5hYmxlZCgpICYmICFiZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlvcjo6TmV2ZXJB
bmltYXRlKSkgewogICAgICAgICBpZiAoIW1fc2Nyb2xsQW5pbWF0aW9uLT5pc0FjdGl2ZSgpKQog
ICAgICAgICAgICAgbV9zY3JvbGxBbmltYXRpb24tPnNldEN1cnJlbnRQb3NpdGlvbihtX2N1cnJl
bnRQb3NpdGlvbik7CiAgICAgICAgIHJldHVybiBtX3Njcm9sbEFuaW1hdGlvbi0+c2Nyb2xsKG9y
aWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7CkBAIC0xNzgsMTAgKzE3
OSw2IEBAIEZsb2F0U2l6ZSBTY3JvbGxBbmltYXRvcjo6ZGVsdGFGcm9tU3RlcChTY3JvbGxiYXJP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiwgZmxvYXQKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NO
QVApCiAjaWYgUExBVEZPUk0oTUFDKQotYm9vbCBTY3JvbGxBbmltYXRvcjo6cHJvY2Vzc1doZWVs
RXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkK
LXsKLSAgICByZXR1cm4gbV9zY3JvbGxDb250cm9sbGVyLnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Ny
b2xsU25hcCh3aGVlbEV2ZW50KTsKLX0KICNlbmRpZgogCiBib29sIFNjcm9sbEFuaW1hdG9yOjph
Y3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSBjb25zdApAQCAtMTk3LDEwICsxOTQsMTEg
QEAgdW5zaWduZWQgU2Nyb2xsQW5pbWF0b3I6OmFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvckF4aXMo
U2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNvbnMKIAogYm9vbCBTY3JvbGxBbmltYXRvcjo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiB7Ci0jaWYgRU5BQkxFKENT
U19TQ1JPTExfU05BUCkgJiYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtX3Njcm9sbENvbnRyb2xs
ZXIucHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGUpKQorI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApCisgICAgaWYgKHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChlKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAv
LyBFdmVudHMgaW4gdGhlIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpNYXlCZWdpbiBwaGFzZSBo
YXZlIG5vIGRlbHRhcywgYW5kIHRoZXJlZm9yZSBuZXZlciBwYXNzZXMgdGhyb3VnaCB0aGUgc2Ny
b2xsIGhhbmRsaW5nIGxvZ2ljIGJlbG93LgogICAgIC8vIFRoaXMgY2F1c2VzIHVzIHRvIHJldHVy
biB3aXRoIGFuICd1bmhhbmRsZWQnIHJldHVybiBzdGF0ZSwgZXZlbiB0aG91Z2ggdGhpcyBldmVu
dCB3YXMgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZC4KQEAgLTIyMSw3ICsyMTksNiBAQCBib29sIFNj
cm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZSkKIAogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogCi0gICAgU2Nyb2xsR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBpeGVsOwogICAgIEludFNpemUgbWF4Rm9yd2FyZFNjcm9s
bERlbHRhID0gbV9zY3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSAtIG1fc2Ny
b2xsYWJsZUFyZWEuc2Nyb2xsUG9zaXRpb24oKTsKICAgICBJbnRTaXplIG1heEJhY2t3YXJkU2Ny
b2xsRGVsdGEgPSBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbFBvc2l0aW9uKCkgLSBtX3Njcm9sbGFi
bGVBcmVhLm1pbmltdW1TY3JvbGxQb3NpdGlvbigpOwogICAgIGlmICgoZGVsdGFYIDwgMCAmJiBt
YXhGb3J3YXJkU2Nyb2xsRGVsdGEud2lkdGgoKSA+IDApCkBAIC0yMzAsNiArMjI3LDEwIEBAIGJv
b2wgU2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiBlKQogICAgICAgICB8fCAoZGVsdGFZID4gMCAmJiBtYXhCYWNrd2FyZFNjcm9sbERlbHRh
LmhlaWdodCgpID4gMCkpIHsKICAgICAgICAgaGFuZGxlZCA9IHRydWU7CiAKKyAgICAgICAgT3B0
aW9uU2V0PFNjcm9sbEJlaGF2aW9yPiBiZWhhdmlvcihTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rp
b25hbFNuYXBwaW5nKTsKKyAgICAgICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygp
KQorICAgICAgICAgICAgYmVoYXZpb3IuYWRkKFNjcm9sbEJlaGF2aW9yOjpOZXZlckFuaW1hdGUp
OworCiAgICAgICAgIGlmIChkZWx0YVkpIHsKICAgICAgICAgICAgIGlmIChlLmdyYW51bGFyaXR5
KCkgPT0gU2Nyb2xsQnlQYWdlV2hlZWxFdmVudCkgewogICAgICAgICAgICAgICAgIGJvb2wgbmVn
YXRpdmUgPSBkZWx0YVkgPCAwOwpAQCAtMjM3LDEwICsyMzgsNyBAQCBib29sIFNjcm9sbEFuaW1h
dG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAg
ICAgICAgICAgICBpZiAobmVnYXRpdmUpCiAgICAgICAgICAgICAgICAgICAgIGRlbHRhWSA9IC1k
ZWx0YVk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZS5oYXNQcmVjaXNlU2Nyb2xs
aW5nRGVsdGFzKCkpCi0gICAgICAgICAgICAgICAgc2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmlt
YXRpb24oY3VycmVudFBvc2l0aW9uKCkgKyBkZWx0YUZyb21TdGVwKFZlcnRpY2FsU2Nyb2xsYmFy
LCB2ZXJ0aWNhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVkpKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBzY3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIGdyYW51bGFy
aXR5LCB2ZXJ0aWNhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVkpOworICAgICAgICAg
ICAgc2Nyb2xsKFZlcnRpY2FsU2Nyb2xsYmFyLCBTY3JvbGxCeVBpeGVsLCB2ZXJ0aWNhbFNjcm9s
bGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVksIGJlaGF2aW9yKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChkZWx0YVgpIHsKQEAgLTI1MCwxMCArMjQ4LDcgQEAgYm9vbCBTY3JvbGxBbmltYXRv
cjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAgICAgICAg
ICAgICAgICAgaWYgKG5lZ2F0aXZlKQogICAgICAgICAgICAgICAgICAgICBkZWx0YVggPSAtZGVs
dGFYOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGUuaGFzUHJlY2lzZVNjcm9sbGlu
Z0RlbHRhcygpKQotICAgICAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0
aW9uKGN1cnJlbnRQb3NpdGlvbigpICsgZGVsdGFGcm9tU3RlcChIb3Jpem9udGFsU2Nyb2xsYmFy
LCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWCkpOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFu
dWxhcml0eSwgaG9yaXpvbnRhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVgpOworICAg
ICAgICAgICAgc2Nyb2xsKEhvcml6b250YWxTY3JvbGxiYXIsIFNjcm9sbEJ5UGl4ZWwsIGhvcml6
b250YWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFYLCBiZWhhdmlvcik7CiAgICAgICAg
IH0KICAgICB9CiAgICAgcmV0dXJuIGhhbmRsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuaAppbmRleCA4NTIwMzM2Yjg0ZWRkYjI5MzNjZjc2MjMzNzNiMTEwYWNiNWMz
ZTYxLi5lYmYzMTdkOTQ2MGU3NGRjZDA0OTU0MDZjZmEyMzI0MzZiNWQxODRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTY5LDE1ICs2OSwxNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+U2Nyb2xsQW5pbWF0b3IoKTsKIAogICAgIGVudW0gU2Nyb2xsQmVo
YXZpb3IgewotICAgICAgICBEZWZhdWx0LAotICAgICAgICBEb0RpcmVjdGlvbmFsU25hcHBpbmcs
CisgICAgICAgIERlZmF1bHQgPSAwLAorICAgICAgICBEb0RpcmVjdGlvbmFsU25hcHBpbmcgPSAx
IDw8IDEsCisgICAgICAgIE5ldmVyQW5pbWF0ZSA9IDEgPDwgMiwKICAgICB9OwogCiAgICAgLy8g
Q29tcHV0ZXMgYSBzY3JvbGwgZGVzdGluYXRpb24gZm9yIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLiAg
UmV0dXJucyBmYWxzZSBpZgogICAgIC8vIGFscmVhZHkgYXQgdGhlIGRlc3RpbmF0aW9uLiAgT3Ro
ZXJ3aXNlLCBzdGFydHMgc2Nyb2xsaW5nIHRvd2FyZHMgdGhlCiAgICAgLy8gZGVzdGluYXRpb24g
YW5kIHJldHVybnMgdHJ1ZS4gIFNjcm9sbGluZyBtYXkgYmUgaW1tZWRpYXRlIG9yIGFuaW1hdGVk
LgogICAgIC8vIFRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGlt
bWVkaWF0ZWx5LCBuZXZlciBhbmltYXRlcy4KLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9s
bGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVs
dGlwbGllciwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6RGVmYXVsdCk7CisgICAg
dmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxTY3JvbGxCZWhhdmlv
cj4pOwogCiAgICAgYm9vbCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxv
YXRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAg
IHZpcnR1YWwgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9h
dFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCk7CkBAIC0xNDksOSArMTUwLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NT
X1NDUk9MTF9TTkFQKQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBib29sIHByb2Nlc3NXaGVlbEV2
ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKLSNlbmRpZgorICAg
IHZpcnR1YWwgYm9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHVwZGF0ZVNjcm9sbFNu
YXBTdGF0ZSgpOwogICAgIGJvb2wgYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlKCkgY29u
c3Q7CiAgICAgdW5zaWduZWQgYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhpcyhTY3JvbGxFdmVu
dEF4aXMpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMuaAppbmRleCA2NDliNGNmNTQ0NTA5OGEzMzEyMjgzODUwYjUxNzJjYTFjZDMyNzhi
Li40YTVlM2YyZTJmOTZkNmU1NThjZmEzZmRiMWE3MjllY2VjYjViNDRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtNzksNyArNzks
NyBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fc2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRUaW1lcjsK
ICAgICBGbG9hdFNpemUgbV9jb250ZW50QXJlYVNjcm9sbGVkVGltZXJTY3JvbGxEZWx0YTsKIAot
ICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwg
ZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IpIG92ZXJyaWRlOwor
ICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwg
ZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgT3B0aW9uU2V0PFNjcm9sbEJlaGF2aW9yPikg
b3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBG
bG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFu
aW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3Jv
bGxDbGFtcGluZzo6Q2xhbXBlZCkgb3ZlcnJpZGU7CiAKQEAgLTE0MCw2ICsxNDAsOCBAQCBwcml2
YXRlOgogICAgIFN0cmluZyBob3Jpem9udGFsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29u
c3QgZmluYWw7CiAgICAgU3RyaW5nIHZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkg
Y29uc3QgZmluYWw7CiAKKyAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKwogICAgIC8vIFNjcm9sbENvbnRy
b2xsZXJDbGllbnQuCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIEludFNpemUgc3Ry
ZXRjaEFtb3VudCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IDU1ZDhmYjA5NGI1ZDEzMTZjY2I4MTIyZGFi
YmQwNDFiMGZlMzQ4ZGMuLmIxZjM3NWJmYTU3YmRhMTUwOTNkYTJiYWZhNTM1NWIxZGFmZjRhYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW0KQEAgLTc1MSwxNiArNzUxLDE3IEBAIHN0YXRpYyBib29sIHJ1YmJlckJhbmRpbmdFbmFibGVk
Rm9yU3lzdGVtKCkKIH0KICNlbmRpZgogCi1ib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlvciBiZWhh
dmlvcikKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlv
biBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAs
IGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IpCiB7
CiAgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKIAogICAgIC8vIFRoaXMg
bWV0aG9kIGRvZXNuJ3QgZG8gZGlyZWN0aW9uYWwgc25hcHBpbmcsIGJ1dCBvdXIgYmFzZSBjbGFz
cyBkb2VzLiBJdCB3aWxsIGNhbGwgaW50bwogICAgIC8vIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3Jv
bGwgYWdhaW4gd2l0aCB0aGUgc25hcHBlZCBwb3NpdGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yOjpE
ZWZhdWx0LgotICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25h
bFNuYXBwaW5nKQorICAgIGlmIChiZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlvcjo6RG9E
aXJlY3Rpb25hbFNuYXBwaW5nKSkKICAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3Jv
bGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7
CiAKLSAgICBib29sIHNob3VsZEFuaW1hdGUgPSBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lz
dGVtKCkgJiYgbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSAmJiBncmFu
dWxhcml0eSAhPSBTY3JvbGxCeVBpeGVsOworICAgIGJvb2wgc2hvdWxkQW5pbWF0ZSA9IHNjcm9s
bEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSAmJiBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFu
aW1hdG9yRW5hYmxlZCgpICYmIGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5UGl4ZWwKKyAgICAgICAg
JiYgIWJlaGF2aW9yLmNvbnRhaW5zKFNjcm9sbEJlaGF2aW9yOjpOZXZlckFuaW1hdGUpOwogICAg
IEZsb2F0UG9pbnQgbmV3UG9zaXRpb24gPSB0aGlzLT5jdXJyZW50UG9zaXRpb24oKSArIGRlbHRh
RnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpOwogICAgIG5ld1Bvc2l0aW9u
ID0gbmV3UG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKHNjcm9sbGFibGVBcmVhKCkubWluaW11
bVNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbGFibGVBcmVhKCkubWF4aW11bVNjcm9sbFBvc2l0aW9u
KCkpOwogCkBAIC0xNTAwLDYgKzE1MDEsMTEgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c2V0
VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmIHNjcm9sbGVyVGh1bWIKICAg
ICBtX3Zpc2libGVTY3JvbGxlclRodW1iUmVjdCA9IHJlY3RJblZpZXdDb29yZGluYXRlczsKIH0K
IAorYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFw
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK3sKKyAgICByZXR1cm4gbV9z
Y3JvbGxDb250cm9sbGVyLnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNNT09U
SF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjNmOWExZDlmNDdlOTczYWNmMjY5YzBjMzRmOTJkNGJmYjg2
MDc3My4uOTQ5YzE0MmJjZTZjMDM2N2JiNGNmZWVlZjYyMTJlYjE1MTIyZWVlOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIxLTAzLTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBBZGQgYmFzaWMgKG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQg
aGFuZGxpbmcgZm9yIHNjcm9sbCBzbmFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjI1OTQKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2Vy
LgorCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNu
YXAtd2hlZWwtZXZlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9U
ZXN0RXhwZWN0YXRpb25zOiBTa2lwIG5ldyB0ZXN0IGJlY2F1c2UgaXQgdXNlcyBtb3VzZSBldmVu
dCBzaW11bGF0aW9uLgorICAgICAgICBNb3ZlIGV4aXN0aW5nIGNsYXNzaWZpY2F0aW9uIHRvIGJl
dHRlciBzZWN0aW9uIGFzIHdlbGwuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Nj
cm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc25hcC1sYXRjaGluZy1leHBlY3RlZC50eHQ6IFJlYmFz
ZWQgdGhpcyBwcmV2aW91cyBmYWlsaW5nIHRlc3QuCisKIDIwMjEtMDQtMjAgIE1hbnVlbCBSZWdv
IENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gVXBkYXRlIGV4
cGVjdGF0aW9ucyBmb3IgMiA6Zm9jdXMtdmlzaWJsZSB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWU2MWNhMjIwNzE0MWVlZTAxODhiN2IxYzcyYzFj
M2MyZmE5ZjBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitQ
QVNTIGhvcml6b250YWwgbW91c2Ugd2hlZWwgZXZlbnQgc25hcHBlZAorUEFTUyB2ZXJ0aWNhbCBt
b3VzZSB3aGVlbCBldmVudCBzbmFwcGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwt
c25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZTIzZGFi
M2QyZWY3OTc1YmQyN2Q0OTJmMjA1YWZhNjI1OTdhYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwKQEAg
LTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPHRpdGxlPlNpbXBsZSB3aGVlbCBldmVudHMgc2hvdWxkIHRyaWdnZXIgc2Nyb2xsIHNuYXBw
aW5nPC90aXRsZT4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAg
IC5jb250YWluZXIgeworICAgICAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAg
ICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOworICAg
ICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IGJvdGggbWFuZGF0b3J5OworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAuaG9yaXpvbnRhbC1kcmF3ZXIgeworICAgICAgICAgICAgICAg
IGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIC5ibG9jayB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAl
OworICAgICAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBzY3JvbGwt
c25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIgPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lclRleHQgPSAiU2ltcGxl
IHdoZWVsIGV2ZW50cyBzaG91bGQgdHJpZ2dlciBzY3JvbGwgc25hcHBpbmciOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjAsIDE5MCk7CisgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oODAsIDE5MCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSgtMSwgMCk7
CisKKyAgICAgICAgICAgICAgICBsZXQgaG9yaXpvbnRhbENvbnRhaW5lciA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJob3Jpem9udGFsLWNvbnRhaW5lciIpOworICAgICAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmltYXRpb25Ub1NldHRsZShob3Jpem9u
dGFsQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGhvcml6b250YWxDb250
YWluZXIuc2Nyb2xsTGVmdCA9PSAyMDAsICJob3Jpem9udGFsIG1vdXNlIHdoZWVsIGV2ZW50IHNu
YXBwZWQiKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDE5MCwg
MjIwKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxOTAsIDI3MCk7CisgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeSgwLCAtMSk7CisKKyAgICAgICAgICAgICAgICBsZXQgdmVydGljYWxDb250
YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVydGljYWwtY29udGFpbmVyIik7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlv
blRvU2V0dGxlKHZlcnRpY2FsQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVl
KHZlcnRpY2FsQ29udGFpbmVyLnNjcm9sbFRvcCA9PSAxODUsICJ2ZXJ0aWNhbCBtb3VzZSB3aGVl
bCBldmVudCBzbmFwcGVkIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAg
ICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cisg
ICAgICAgIDxkaXYgaWQ9Imhvcml6b250YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZHJhd2VyIj4KKyAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImZsb2F0OiBsZWZ0OyBiYWNrZ3JvdW5kOiAj
ODA0NzVFIj48L2Rpdj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9
ImZsb2F0OiBsZWZ0OyBiYWNrZ3JvdW5kOiAjQ0M1QTcxIj48L2Rpdj4KKyAgICAgICAgICAgIDwv
ZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0idmVydGljYWwtY29udGFpbmVy
IiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHls
ZT0iYmFja2dyb3VuZDogIzgwNDc1RSI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJi
bG9jayIgc3R5bGU9ImJhY2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPHAgaWQ9ImNvbnNvbGUiPjwvcD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDk2NTg1ZTZiZjA5MWQ4YjU3NjgzYjMwN2M0
ZmMxN2M2YTEwOTc4M2IuLjQzMTAyMWUyZmFkODA1OTdiNjUzNDJiM2NhYzg2Y2U1ZWMzMWM3YTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTEzNyw3ICsxMzcsNiBAQCBzY3JvbGxiYXJzL3Njcm9sbGluZy1ieS1wYWdlLW9uLWtleWJvYXJk
LXNwYWNlYmFyLmh0bWwgWyBGYWlsdXJlIF0KIHNjcm9sbGJhcnMvc2Nyb2xsYmFycy1vbi1wb3Np
dGlvbmVkLWNvbnRlbnQuaHRtbCBbIEZhaWx1cmUgXQogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwt
cGFkZGluZy1tYWluZnJhbWUtcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KIGNzczMvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXBhZGRpbmctb3ZlcmZsb3ctcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KLWNzczMv
c2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRlci5odG1sIFsgRmFp
bHVyZSBdCiAKICMgU1ZHIHRlc3RzIHRoYXQgdGltZSBvdXQgKHRoZXNlIHJlcXVpcmUgRXZlbnRT
ZW5kZXIpCiBzdmcvYW5pbWF0aW9ucy9hbmltVmFsLWJhc2ljcy5odG1sCkBAIC05MzMsNiArOTMy
LDggQEAgZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0LW91dC1vZi1mbG9hdGVkLW5vbi1lZGl0YWJs
ZS0wOS5odG1sIFsgU2tpcCBdCiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Qtb3V0LW9mLWZsb2F0
ZWQtbm9uLWVkaXRhYmxlLTEwLmh0bWwgWyBTa2lwIF0KIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dC1vdXQtb2YtZmxvYXRlZC1ub24tZWRpdGFibGUtMTEuaHRtbCBbIFNraXAgXQogZWRpdGluZy9z
ZWxlY3Rpb24vc2VsZWN0LW91dC1vZi1mbG9hdGVkLW5vbi1lZGl0YWJsZS0xMi5odG1sIFsgU2tp
cCBdCitjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWNsaWNrLXNjcm9sbGJhci1ndXR0ZXIu
aHRtbCBbIFNraXAgXQorY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5o
dG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xOTIwODggbWVkaWEvbm8tZnVsbHNjcmVlbi13
aGVuLWhpZGRlbi5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc25hcC1s
YXRjaGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3Qv
c2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zbmFwLWxhdGNoaW5nLWV4cGVjdGVkLnR4dAppbmRl
eCA5MGQ4ZDYwNGY3YjMxMDBmN2IwMDk2Mjc0ZjgyNzE1NjA0NGY3ZGI2Li4xZTY0Zjc5ZGExNzc0
ZjQ0ZDljMGEzYWZhZjNlN2JhMmVmMDc0MTUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zbmFwLWxhdGNoaW5n
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3Qvc2Ny
b2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zbmFwLWxhdGNoaW5nLWV4cGVjdGVkLnR4dApAQCAtNCw3
ICs0LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQQVNTIG92ZXJmbG93U2Nyb2xs
RXZlbnRDb3VudCA+IDAgaXMgdHJ1ZQotRkFJTCB3aW5kb3dTY3JvbGxFdmVudENvdW50IHNob3Vs
ZCBiZSAwLiBXYXMgNy4KK0ZBSUwgd2luZG93U2Nyb2xsRXZlbnRDb3VudCBzaG91bGQgYmUgMC4g
V2FzIDExLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426659</attachid>
            <date>2021-04-21 01:03:35 -0700</date>
            <delta_ts>2021-04-21 05:16:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222594-20210421100333.patch</filename>
            <type>text/plain</type>
            <size>19487</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFlNTNiNDBjYjRkYjQw
YTk2MWJlY2U0OWU5Y2ViNzdkMzQ4Mzc2Yy4uMTU1M2VlZmZkZTgyZDgyODZlNDkwYTE2OTQyNjMy
ZDRhNzI0NGYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTEzICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgYmFzaWMg
KG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcgZm9yIHNjcm9sbCBzbmFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBUZXN0OiBjc3MzL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVsLWV2ZW50Lmh0bWwKKworICAgICAgICBFbmFibGUgc2Ny
b2xsIHNuYXBwaW5nIGZvciBiYXNpYyB3aGVlbCBldmVudHMgb24gR1RLKyBhbmQgV1BFLiBUaGUg
TWFjIHBvcnQKKyAgICAgICAgaGFzIHNwZWNpYWwgd2hlZWwgaGFuZGxpbmcgZHVlIHRvIG1vbWVu
dHVtIHNjcm9sbGluZy4gT3RoZXIgc2Nyb2xsLXNuYXAtZW5hYmxlZAorICAgICAgICBwb3J0cyBj
YW4ganVzdCB1c2UgYSBiYXNpYyB2ZXJzaW9uLgorCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbCk6
IEFjY2VwdCBhIGJpdG1hc2sgb2Ygb3B0aW9ucyBub3cuIFRoaXMKKyAgICAgICAgd2lsbCBhbGxv
dyB1c2luZyB0aGlzIG1ldGhvZCB3aGVuIGhhbmRsaW5nIHdoZWVsIGV2ZW50cyB0aGF0IGRvIG5v
dCBhbmltYXRlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdoZWVs
RXZlbnQpOiBUcmlnZ2VyIDo6c2Nyb2xsIHdpdGgKKyAgICAgICAgc2Nyb2xsIHNuYXBwaW5nIGVu
YWJsZWQgYW5kIHBhc3MgdGhlIGFwcHJvcHJpYXRlIG9wdGlvbiB0byBkaXNhYmxlIGFuaW1hdGlv
bnMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6cHJvY2Vzc1doZWVsRXZlbnRG
b3JTY3JvbGxTbmFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjpw
cm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOiBNYWRlCisgICAgICAgIHRoaXMgYSBtZXRo
b2QgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOiBBZGRlZCBwcm9jZXNzV2hlZWxFdmVudEZvclNj
cm9sbFNuYXAuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbCk6IFBheSBhdHRlbnRp
b24gdG8gdGhlIE5ldmVyQW5pbWF0ZSBiaXRtYXNrIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yTWFjOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXApOiBBZGRlZC4K
KwogMjAyMS0wNC0yMCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDIHVzZXMgYXRvbWljIHZhcmlhYmxlcyBi
dXQgYWxzbyBsb2NrcyB3aXRoIG11dGV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRvci5jcHAKaW5kZXggYjA4MzExNWJhZmJlYjI2NjQzNTNjOTk1NjQwNWFhNzRjYjBkNWIy
MS4uNzZkZTcyOWEwOWU3NmJjZjEwNTA2M2VlMzczMjUyOWI3YTdhYTM3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtODEsMTMgKzgxLDE0IEBAIFNj
cm9sbEFuaW1hdG9yOjp+U2Nyb2xsQW5pbWF0b3IoKQogI2VuZGlmCiB9CiAKLWJvb2wgU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNj
cm9sbEJlaGF2aW9yIGJlaGF2aW9yKQorYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKFNjcm9s
bGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0
eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgT3B0aW9uU2V0PFNjcm9sbEJlaGF2aW9y
PiBiZWhhdmlvcikKIHsKICAgICBhdXRvIGRlbHRhID0gZGVsdGFGcm9tU3RlcChvcmllbnRhdGlv
biwgc3RlcCwgbXVsdGlwbGllcik7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKLSAgICBp
ZiAoYmVoYXZpb3IgPT0gU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZykgewor
ICAgIGlmIChiZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNu
YXBwaW5nKSkgeworICAgICAgICBiZWhhdmlvci5yZW1vdmUoU2Nyb2xsQmVoYXZpb3I6OkRvRGly
ZWN0aW9uYWxTbmFwcGluZyk7CiAgICAgICAgIGlmICghbV9zY3JvbGxDb250cm9sbGVyLnVzZXNT
Y3JvbGxTbmFwKCkpCi0gICAgICAgICAgICByZXR1cm4gc2Nyb2xsKG9yaWVudGF0aW9uLCBncmFu
dWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7CisgICAgICAgICAgICByZXR1cm4gc2Nyb2xsKG9y
aWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllciwgYmVoYXZpb3IpOwogCiAg
ICAgICAgIGF1dG8gY3VycmVudE9mZnNldCA9IG9mZnNldEZyb21Qb3NpdGlvbihjdXJyZW50UG9z
aXRpb24oKSk7CiAgICAgICAgIGF1dG8gbmV3T2Zmc2V0ID0gY3VycmVudE9mZnNldCArIGRlbHRh
OwpAQCAtOTgsOCArOTksOCBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwoU2Nyb2xsYmFy
T3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5CiAgICAgICAgIGF1dG8g
bmV3RGVsdGEgPSBuZXdPZmZzZXQgLSBjdXJyZW50T2Zmc2V0OwogCiAgICAgICAgIGlmIChvcmll
bnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICAgICAgcmV0dXJuIHNjcm9s
bChIb3Jpem9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3RGVsdGEud2lkdGgoKSwgMS4w
KTsKLSAgICAgICAgcmV0dXJuIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHks
IG5ld0RlbHRhLmhlaWdodCgpLCAxLjApOworICAgICAgICAgICAgcmV0dXJuIHNjcm9sbChIb3Jp
em9udGFsU2Nyb2xsYmFyLCBncmFudWxhcml0eSwgbmV3RGVsdGEud2lkdGgoKSwgMS4wLCBiZWhh
dmlvcik7CisgICAgICAgIHJldHVybiBzY3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIGdyYW51bGFy
aXR5LCBuZXdEZWx0YS5oZWlnaHQoKSwgMS4wLCBiZWhhdmlvcik7CiAgICAgfQogI2Vsc2UKICAg
ICBVTlVTRURfUEFSQU0oZ3JhbnVsYXJpdHkpOwpAQCAtMTA3LDcgKzEwOCw3IEBAIGJvb2wgU2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Ny
b2xsR3JhbnVsYXJpdHkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpICYm
ICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFu
aW1hdG9yRW5hYmxlZCgpKSB7CisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0
b3JFbmFibGVkKCkgJiYgIWJlaGF2aW9yLmNvbnRhaW5zKFNjcm9sbEJlaGF2aW9yOjpOZXZlckFu
aW1hdGUpKSB7CiAgICAgICAgIGlmICghbV9zY3JvbGxBbmltYXRpb24tPmlzQWN0aXZlKCkpCiAg
ICAgICAgICAgICBtX3Njcm9sbEFuaW1hdGlvbi0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3VycmVu
dFBvc2l0aW9uKTsKICAgICAgICAgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0aW9uLT5zY3JvbGwob3Jp
ZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKTsKQEAgLTE3NywxMyArMTc4
LDYgQEAgRmxvYXRTaXplIFNjcm9sbEFuaW1hdG9yOjpkZWx0YUZyb21TdGVwKFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uLCBmbG9hdAogfQogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExf
U05BUCkKLSNpZiBQTEFURk9STShNQUMpCi1ib29sIFNjcm9sbEFuaW1hdG9yOjpwcm9jZXNzV2hl
ZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
KQotewotICAgIHJldHVybiBtX3Njcm9sbENvbnRyb2xsZXIucHJvY2Vzc1doZWVsRXZlbnRGb3JT
Y3JvbGxTbmFwKHdoZWVsRXZlbnQpOwotfQotI2VuZGlmCi0KIGJvb2wgU2Nyb2xsQW5pbWF0b3I6
OmFjdGl2ZVNjcm9sbFNuYXBJbmRleERpZENoYW5nZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
c2Nyb2xsQ29udHJvbGxlci5hY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKTsKQEAgLTE5
NywxMCArMTkxLDExIEBAIHVuc2lnbmVkIFNjcm9sbEFuaW1hdG9yOjphY3RpdmVTY3JvbGxTbmFw
SW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhpcyBheGlzKSBjb25zCiAKIGJvb2wgU2Nyb2xsQW5p
bWF0b3I6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogewot
I2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApICYmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAobV9z
Y3JvbGxDb250cm9sbGVyLnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChlKSkKKyNpZiBF
TkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQorICAgIGlmIChwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9s
bFNuYXAoZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgLy8gRXZlbnRzIGluIHRoZSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6TWF5
QmVnaW4gcGhhc2UgaGF2ZSBubyBkZWx0YXMsIGFuZCB0aGVyZWZvcmUgbmV2ZXIgcGFzc2VzIHRo
cm91Z2ggdGhlIHNjcm9sbCBoYW5kbGluZyBsb2dpYyBiZWxvdy4KICAgICAvLyBUaGlzIGNhdXNl
cyB1cyB0byByZXR1cm4gd2l0aCBhbiAndW5oYW5kbGVkJyByZXR1cm4gc3RhdGUsIGV2ZW4gdGhv
dWdoIHRoaXMgZXZlbnQgd2FzIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQuCkBAIC0yMjEsNyArMjE2
LDYgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGUpCiAKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKIAotICAgIFNjcm9s
bEdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0gU2Nyb2xsQnlQaXhlbDsKICAgICBJbnRTaXplIG1h
eEZvcndhcmRTY3JvbGxEZWx0YSA9IG1fc2Nyb2xsYWJsZUFyZWEubWF4aW11bVNjcm9sbFBvc2l0
aW9uKCkgLSBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbFBvc2l0aW9uKCk7CiAgICAgSW50U2l6ZSBt
YXhCYWNrd2FyZFNjcm9sbERlbHRhID0gbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxQb3NpdGlvbigp
IC0gbV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKTsKICAgICBpZiAoKGRl
bHRhWCA8IDAgJiYgbWF4Rm9yd2FyZFNjcm9sbERlbHRhLndpZHRoKCkgPiAwKQpAQCAtMjMwLDYg
KzIyNCwxMCBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAgICAgfHwgKGRlbHRhWSA+IDAgJiYgbWF4QmFja3dh
cmRTY3JvbGxEZWx0YS5oZWlnaHQoKSA+IDApKSB7CiAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwog
CisgICAgICAgIE9wdGlvblNldDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IoU2Nyb2xsQmVoYXZp
b3I6OkRvRGlyZWN0aW9uYWxTbmFwcGluZyk7CisgICAgICAgIGlmIChlLmhhc1ByZWNpc2VTY3Jv
bGxpbmdEZWx0YXMoKSkKKyAgICAgICAgICAgIGJlaGF2aW9yLmFkZChTY3JvbGxCZWhhdmlvcjo6
TmV2ZXJBbmltYXRlKTsKKwogICAgICAgICBpZiAoZGVsdGFZKSB7CiAgICAgICAgICAgICBpZiAo
ZS5ncmFudWxhcml0eSgpID09IFNjcm9sbEJ5UGFnZVdoZWVsRXZlbnQpIHsKICAgICAgICAgICAg
ICAgICBib29sIG5lZ2F0aXZlID0gZGVsdGFZIDwgMDsKQEAgLTIzNywxMCArMjM1LDcgQEAgYm9v
bCBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGUpCiAgICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlKQogICAgICAgICAgICAgICAgICAg
ICBkZWx0YVkgPSAtZGVsdGFZOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGUuaGFz
UHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpKQotICAgICAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRp
b25XaXRob3V0QW5pbWF0aW9uKGN1cnJlbnRQb3NpdGlvbigpICsgZGVsdGFGcm9tU3RlcChWZXJ0
aWNhbFNjcm9sbGJhciwgdmVydGljYWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFZKSk7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc2Nyb2xsKFZlcnRpY2FsU2Nyb2xs
YmFyLCBncmFudWxhcml0eSwgdmVydGljYWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFZ
KTsKKyAgICAgICAgICAgIHNjcm9sbChWZXJ0aWNhbFNjcm9sbGJhciwgU2Nyb2xsQnlQaXhlbCwg
dmVydGljYWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAtZGVsdGFZLCBiZWhhdmlvcik7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAoZGVsdGFYKSB7CkBAIC0yNTAsMTAgKzI0NSw3IEBAIGJvb2wg
U2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBlKQogICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZSkKICAgICAgICAgICAgICAgICAgICAg
ZGVsdGFYID0gLWRlbHRhWDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChlLmhhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSkKLSAgICAgICAgICAgICAgICBzY3JvbGxUb1Bvc2l0aW9u
V2l0aG91dEFuaW1hdGlvbihjdXJyZW50UG9zaXRpb24oKSArIGRlbHRhRnJvbVN0ZXAoSG9yaXpv
bnRhbFNjcm9sbGJhciwgaG9yaXpvbnRhbFNjcm9sbGJhci0+cGl4ZWxTdGVwKCksIC1kZWx0YVgp
KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzY3JvbGwoSG9yaXpvbnRhbFNj
cm9sbGJhciwgZ3JhbnVsYXJpdHksIGhvcml6b250YWxTY3JvbGxiYXItPnBpeGVsU3RlcCgpLCAt
ZGVsdGFYKTsKKyAgICAgICAgICAgIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xsYmFyLCBTY3JvbGxC
eVBpeGVsLCBob3Jpem9udGFsU2Nyb2xsYmFyLT5waXhlbFN0ZXAoKSwgLWRlbHRhWCwgYmVoYXZp
b3IpOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBoYW5kbGVkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKaW5kZXggODUyMDMzNmI4NGVkZGIyOTMzY2Y3NjIz
MzczYjExMGFjYjVjM2U2MS4uZGNiNGI0OGRiZTUwNGI4NzgwOGFlZmRmNmJiYjk4NWEwMTg3Yzcy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCkBAIC02OSwxNSAr
NjksMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNjcm9sbEFuaW1hdG9yKCk7CiAKICAgICBl
bnVtIFNjcm9sbEJlaGF2aW9yIHsKLSAgICAgICAgRGVmYXVsdCwKLSAgICAgICAgRG9EaXJlY3Rp
b25hbFNuYXBwaW5nLAorICAgICAgICBEb0RpcmVjdGlvbmFsU25hcHBpbmcgPSAxIDw8IDAsCisg
ICAgICAgIE5ldmVyQW5pbWF0ZSA9IDEgPDwgMSwKICAgICB9OwogCiAgICAgLy8gQ29tcHV0ZXMg
YSBzY3JvbGwgZGVzdGluYXRpb24gZm9yIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLiAgUmV0dXJucyBm
YWxzZSBpZgogICAgIC8vIGFscmVhZHkgYXQgdGhlIGRlc3RpbmF0aW9uLiAgT3RoZXJ3aXNlLCBz
dGFydHMgc2Nyb2xsaW5nIHRvd2FyZHMgdGhlCiAgICAgLy8gZGVzdGluYXRpb24gYW5kIHJldHVy
bnMgdHJ1ZS4gIFNjcm9sbGluZyBtYXkgYmUgaW1tZWRpYXRlIG9yIGFuaW1hdGVkLgogICAgIC8v
IFRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uIGFsd2F5cyBzY3JvbGxzIGltbWVkaWF0ZWx5
LCBuZXZlciBhbmltYXRlcy4KLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVu
dGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwg
U2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6RGVmYXVsdCk7CisgICAgdmlydHVhbCBi
b29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0
IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIE9wdGlvblNldDxTY3JvbGxCZWhhdmlvcj4pOwogCiAg
ICAgYm9vbCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYs
IFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOwogICAgIHZpcnR1YWwg
Ym9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBw
b3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CkBAIC0x
NDksOSArMTQ5LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9T
TkFQKQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Ny
b2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKLSNlbmRpZgorICAgIHZpcnR1YWwg
Ym9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHVwZGF0ZVNjcm9sbFNuYXBTdGF0ZSgp
OwogICAgIGJvb2wgYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlKCkgY29uc3Q7CiAgICAg
dW5zaWduZWQgYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhpcyhTY3JvbGxFdmVudEF4aXMpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aAppbmRleCA2NDliNGNmNTQ0NTA5OGEzMzEyMjgzODUwYjUxNzJjYTFjZDMyNzhiLi40YTVlM2Yy
ZTJmOTZkNmU1NThjZmEzZmRiMWE3MjllY2VjYjViNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtNzksNyArNzksNyBAQCBwcml2
YXRlOgogICAgIFRpbWVyIG1fc2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRUaW1lcjsKICAgICBGbG9h
dFNpemUgbV9jb250ZW50QXJlYVNjcm9sbGVkVGltZXJTY3JvbGxEZWx0YTsKIAotICAgIGJvb2wg
c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3Rl
cCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IpIG92ZXJyaWRlOworICAgIGJvb2wg
c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3Rl
cCwgZmxvYXQgbXVsdGlwbGllciwgT3B0aW9uU2V0PFNjcm9sbEJlaGF2aW9yPikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50
Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGlu
Zzo6Q2xhbXBlZCkgb3ZlcnJpZGU7CiAKQEAgLTE0MCw2ICsxNDAsOCBAQCBwcml2YXRlOgogICAg
IFN0cmluZyBob3Jpem9udGFsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmluYWw7
CiAgICAgU3RyaW5nIHZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVGb3JUZXN0aW5nKCkgY29uc3QgZmlu
YWw7CiAKKyAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKwogICAgIC8vIFNjcm9sbENvbnRyb2xsZXJDbGll
bnQuCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIEludFNpemUgc3RyZXRjaEFtb3Vu
dCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tCmluZGV4IDU1ZDhmYjA5NGI1ZDEzMTZjY2I4MTIyZGFiYmQwNDFiMGZl
MzQ4ZGMuLmIxZjM3NWJmYTU3YmRhMTUwOTNkYTJiYWZhNTM1NWIxZGFmZjRhYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAgLTc1
MSwxNiArNzUxLDE3IEBAIHN0YXRpYyBib29sIHJ1YmJlckJhbmRpbmdFbmFibGVkRm9yU3lzdGVt
KCkKIH0KICNlbmRpZgogCi1ib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwoU2Nyb2xsYmFy
T3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBm
bG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKK2Jv
b2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRh
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11
bHRpcGxpZXIsIE9wdGlvblNldDxTY3JvbGxCZWhhdmlvcj4gYmVoYXZpb3IpCiB7CiAgICAgbV9o
YXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKIAogICAgIC8vIFRoaXMgbWV0aG9kIGRv
ZXNuJ3QgZG8gZGlyZWN0aW9uYWwgc25hcHBpbmcsIGJ1dCBvdXIgYmFzZSBjbGFzcyBkb2VzLiBJ
dCB3aWxsIGNhbGwgaW50bwogICAgIC8vIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwgYWdhaW4g
d2l0aCB0aGUgc25hcHBlZCBwb3NpdGlvbnMgYW5kIFNjcm9sbEJlaGF2aW9yOjpEZWZhdWx0Lgot
ICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25hbFNuYXBwaW5n
KQorICAgIGlmIChiZWhhdmlvci5jb250YWlucyhTY3JvbGxCZWhhdmlvcjo6RG9EaXJlY3Rpb25h
bFNuYXBwaW5nKSkKICAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50
YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7CiAKLSAgICBi
b29sIHNob3VsZEFuaW1hdGUgPSBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkgJiYg
bV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSAmJiBncmFudWxhcml0eSAh
PSBTY3JvbGxCeVBpeGVsOworICAgIGJvb2wgc2hvdWxkQW5pbWF0ZSA9IHNjcm9sbEFuaW1hdGlv
bkVuYWJsZWRGb3JTeXN0ZW0oKSAmJiBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFuaW1hdG9yRW5h
YmxlZCgpICYmIGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5UGl4ZWwKKyAgICAgICAgJiYgIWJlaGF2
aW9yLmNvbnRhaW5zKFNjcm9sbEJlaGF2aW9yOjpOZXZlckFuaW1hdGUpOwogICAgIEZsb2F0UG9p
bnQgbmV3UG9zaXRpb24gPSB0aGlzLT5jdXJyZW50UG9zaXRpb24oKSArIGRlbHRhRnJvbVN0ZXAo
b3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpOwogICAgIG5ld1Bvc2l0aW9uID0gbmV3UG9z
aXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKHNjcm9sbGFibGVBcmVhKCkubWluaW11bVNjcm9sbFBv
c2l0aW9uKCksIHNjcm9sbGFibGVBcmVhKCkubWF4aW11bVNjcm9sbFBvc2l0aW9uKCkpOwogCkBA
IC0xNTAwLDYgKzE1MDEsMTEgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c2V0VmlzaWJsZVNj
cm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmIHNjcm9sbGVyVGh1bWIKICAgICBtX3Zpc2li
bGVTY3JvbGxlclRodW1iUmVjdCA9IHJlY3RJblZpZXdDb29yZGluYXRlczsKIH0KIAorYm9vbCBT
Y3JvbGxBbmltYXRvck1hYzo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxDb250
cm9sbGVyLnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50KTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJ
TkcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZjNmOWExZDlmNDdlOTczYWNmMjY5YzBjMzRmOTJkNGJmYjg2MDc3My4uMThl
N2NhYzJlMmJiZWY2YWU4M2MyZmZmMmE3ZmY4NGYyOGJhNGM3MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTAzLTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4K
KworICAgICAgICBBZGQgYmFzaWMgKG5vbi1tb21lbnR1bSkgd2hlZWwgZXZlbnQgaGFuZGxpbmcg
Zm9yIHNjcm9sbCBzbmFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjI1OTQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXdoZWVs
LWV2ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9uczogU2tpcCBuZXcgdGVzdCBiZWNhdXNlIGl0IHVzZXMgbW91c2UgZXZlbnQgc2ltdWxh
dGlvbi4KKyAgICAgICAgTW92ZSBleGlzdGluZyBjbGFzc2lmaWNhdGlvbiB0byBiZXR0ZXIgc2Vj
dGlvbiBhcyB3ZWxsLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvc2Nyb2xsLXNuYXAtbGF0Y2hpbmctZXhwZWN0ZWQudHh0OiBSZWJhc2VkIHRoaXMg
cHJldmlvdXMgZmFpbGluZyB0ZXN0LgorCiAyMDIxLTA0LTIwICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFVwZGF0ZSBleHBlY3RhdGlv
bnMgZm9yIDIgOmZvY3VzLXZpc2libGUgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzllNjFjYTIyMDcxNDFlZWUwMTg4YjdiMWM3MmMxYzNjMmZhOWYw
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xs
LXNuYXAtd2hlZWwtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBob3Jp
em9udGFsIG1vdXNlIHdoZWVsIGV2ZW50IHNuYXBwZWQKK1BBU1MgdmVydGljYWwgbW91c2Ugd2hl
ZWwgZXZlbnQgc25hcHBlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGUyM2RhYjNkMmVmNzk3
NWJkMjdkNDkyZjIwNWFmYTYyNTk3YWI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC13aGVlbC1ldmVudC5odG1sCkBAIC0wLDAgKzEs
ODAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRs
ZT5TaW1wbGUgd2hlZWwgZXZlbnRzIHNob3VsZCB0cmlnZ2VyIHNjcm9sbCBzbmFwcGluZzwvdGl0
bGU+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICAuY29udGFp
bmVyIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgICAgIHdp
ZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICAgICAgICAg
ICAgICBzY3JvbGwtc25hcC10eXBlOiBib3RoIG1hbmRhdG9yeTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgLmhvcml6b250YWwtZHJhd2VyIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEwMCU7CisgICAgICAgICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAuYmxvY2sgeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAg
ICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtYWxp
Z246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
ICAgICBhc3luYyBmdW5jdGlvbiBvbkxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyID09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJUZXh0ID0gIlNpbXBsZSB3aGVlbCBl
dmVudHMgc2hvdWxkIHRyaWdnZXIgc2Nyb2xsIHNuYXBwaW5nIjsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwLCAxOTApOworICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKDgwLCAxOTApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnkoLTEsIDApOworCisgICAg
ICAgICAgICAgICAgbGV0IGhvcml6b250YWxDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiaG9yaXpvbnRhbC1jb250YWluZXIiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhl
bHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9uVG9TZXR0bGUoaG9yaXpvbnRhbENvbnRh
aW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShob3Jpem9udGFsQ29udGFpbmVyLnNj
cm9sbExlZnQgPT0gMjAwLCAiaG9yaXpvbnRhbCBtb3VzZSB3aGVlbCBldmVudCBzbmFwcGVkIik7
CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxOTAsIDIyMCk7Cisg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTkwLCAyNzApOworICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnkoMCwgLTEpOworCisgICAgICAgICAgICAgICAgbGV0IHZlcnRpY2FsQ29udGFpbmVyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZlcnRpY2FsLWNvbnRhaW5lciIpOworICAgICAgICAg
ICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmltYXRpb25Ub1NldHRs
ZSh2ZXJ0aWNhbENvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZSh2ZXJ0aWNh
bENvbnRhaW5lci5zY3JvbGxUb3AgPT0gMTg1LCAidmVydGljYWwgbW91c2Ugd2hlZWwgZXZlbnQg
c25hcHBlZCIpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIGNv
bnNvbGUubG9nKGUpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorICAgICAgICA8
ZGl2IGlkPSJob3Jpem9udGFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWRyYXdlciI+CisgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iYmxvY2siIHN0eWxlPSJmbG9hdDogbGVmdDsgYmFja2dyb3VuZDogIzgwNDc1RSI+
PC9kaXY+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJmbG9hdDog
bGVmdDsgYmFja2dyb3VuZDogI0NDNUE3MSI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InZlcnRpY2FsLWNvbnRhaW5lciIgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJhY2tn
cm91bmQ6ICM4MDQ3NUUiPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0
eWxlPSJiYWNrZ3JvdW5kOiAjQ0M1QTcxIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxwIGlkPSJjb25zb2xlIj48L3A+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIDwvc2NyaXB0
PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA5NjU4NWU2YmYwOTFkOGI1NzY4M2IzMDdjNGZjMTdjNmEx
MDk3ODNiLi40MzEwMjFlMmZhZDgwNTk3YjY1MzQyYjNjYWM4NmNlNWVjMzFjN2EwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzcsNyAr
MTM3LDYgQEAgc2Nyb2xsYmFycy9zY3JvbGxpbmctYnktcGFnZS1vbi1rZXlib2FyZC1zcGFjZWJh
ci5odG1sIFsgRmFpbHVyZSBdCiBzY3JvbGxiYXJzL3Njcm9sbGJhcnMtb24tcG9zaXRpb25lZC1j
b250ZW50Lmh0bWwgWyBGYWlsdXJlIF0KIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXBhZGRpbmct
bWFpbmZyYW1lLXBhZ2luZy5odG1sIFsgRmFpbHVyZSBdCiBjc3MzL3Njcm9sbC1zbmFwL3Njcm9s
bC1wYWRkaW5nLW92ZXJmbG93LXBhZ2luZy5odG1sIFsgRmFpbHVyZSBdCi1jc3MzL3Njcm9sbC1z
bmFwL3Njcm9sbC1zbmFwLWNsaWNrLXNjcm9sbGJhci1ndXR0ZXIuaHRtbCBbIEZhaWx1cmUgXQog
CiAjIFNWRyB0ZXN0cyB0aGF0IHRpbWUgb3V0ICh0aGVzZSByZXF1aXJlIEV2ZW50U2VuZGVyKQog
c3ZnL2FuaW1hdGlvbnMvYW5pbVZhbC1iYXNpY3MuaHRtbApAQCAtOTMzLDYgKzkzMiw4IEBAIGVk
aXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1vdXQtb2YtZmxvYXRlZC1ub24tZWRpdGFibGUtMDkuaHRt
bCBbIFNraXAgXQogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0LW91dC1vZi1mbG9hdGVkLW5vbi1l
ZGl0YWJsZS0xMC5odG1sIFsgU2tpcCBdCiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Qtb3V0LW9m
LWZsb2F0ZWQtbm9uLWVkaXRhYmxlLTExLmh0bWwgWyBTa2lwIF0KIGVkaXRpbmcvc2VsZWN0aW9u
L3NlbGVjdC1vdXQtb2YtZmxvYXRlZC1ub24tZWRpdGFibGUtMTIuaHRtbCBbIFNraXAgXQorY3Nz
My9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1jbGljay1zY3JvbGxiYXItZ3V0dGVyLmh0bWwgWyBT
a2lwIF0KK2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtd2hlZWwtZXZlbnQuaHRtbCBbIFNr
aXAgXQogCiB3ZWJraXQub3JnL2IvMTkyMDg4IG1lZGlhL25vLWZ1bGxzY3JlZW4td2hlbi1oaWRk
ZW4uaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azEvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNuYXAtbGF0Y2hpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Njcm9sbGlu
Zy9sYXRjaGluZy9zY3JvbGwtc25hcC1sYXRjaGluZy1leHBlY3RlZC50eHQKaW5kZXggOTBkOGQ2
MDRmN2IzMTAwZjdiMDA5NjI3NGY4MjcxNTYwNDRmN2RiNi4uMWU2NGY3OWRhMTc3NGY0NGQ5YzBh
M2FmYWYzZTdiYTJlZjA3NDE1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc25hcC1sYXRjaGluZy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtc25hcC1sYXRjaGluZy1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAogUEFTUyBvdmVyZmxvd1Njcm9sbEV2ZW50Q291
bnQgPiAwIGlzIHRydWUKLUZBSUwgd2luZG93U2Nyb2xsRXZlbnRDb3VudCBzaG91bGQgYmUgMC4g
V2FzIDcuCitGQUlMIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgc2hvdWxkIGJlIDAuIFdhcyAxMS4K
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQo=
</data>
<flag name="commit-queue"
          id="447017"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>