<?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>222376</bug_id>
          
          <creation_ts>2021-02-24 12:30:26 -0800</creation_ts>
          <short_desc>[css-grid] Replace the use of -1 with WTF::nullopt</short_desc>
          <delta_ts>2021-03-16 07:39:00 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>zsun</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>rego</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733023</commentid>
    <comment_count>0</comment_count>
    <who name="">zsun</who>
    <bug_when>2021-02-24 12:30:26 -0800</bug_when>
    <thetext>It might make sense to replace the use of -1 with WTF::nullopt in grid item</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733027</commentid>
    <comment_count>1</comment_count>
      <attachid>421441</attachid>
    <who name="">zsun</who>
    <bug_when>2021-02-24 12:37:47 -0800</bug_when>
    <thetext>Created attachment 421441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733294</commentid>
    <comment_count>2</comment_count>
      <attachid>421441</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2021-02-25 05:31:38 -0800</bug_when>
    <thetext>Comment on attachment 421441
Patch

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

I bealive there are other functions using -1 as indefinite; I think this patch should address all of them. 

See GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChild for instance.

&gt; Source/WebCore/ChangeLog:7
&gt; +

We should explain for each change why we need nullopt instead; those functions return an Optional type and we consider nullopt as indefinite, as we did before with the -1 value. 

It&apos;s also need to mention why this change doesn&apos;t need new tests, or changes on the already existing ones.
In this case, since we don&apos;t expect a behavior change, we don&apos;t need to provide tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733303</commentid>
    <comment_count>3</comment_count>
    <who name="">zsun</who>
    <bug_when>2021-02-25 06:17:19 -0800</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=221439 has addressed and fixed issue mentioned here. Maybe we can close this one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735437</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-03 12:31:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/74997975&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737036</commentid>
    <comment_count>5</comment_count>
      <attachid>422556</attachid>
    <who name="">zsun</who>
    <bug_when>2021-03-08 05:21:57 -0800</bug_when>
    <thetext>Created attachment 422556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737049</commentid>
    <comment_count>6</comment_count>
      <attachid>422559</attachid>
    <who name="">zsun</who>
    <bug_when>2021-03-08 06:32:37 -0800</bug_when>
    <thetext>Created attachment 422559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737070</commentid>
    <comment_count>7</comment_count>
      <attachid>422559</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-03-08 07:52:29 -0800</bug_when>
    <thetext>Comment on attachment 422559
Patch

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

Definitely a step in the right direction. There are some changes that need to be done though

&gt; Source/WebCore/ChangeLog:6
&gt; +        This change replaces -1 with nullopt in grid to indicate indefinte for funtions that

nit: indefinite

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:912
&gt; +        overrideSize = WTF::nullopt;

Instead of doing this, change estimatedGridAreaBreadthForChild() so that it returns an Optional&lt;LayoutUnit&gt; and make it return nullopt instead of -1_lu

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1064
&gt; +            overridingSize = WTF::nullopt;

You can do it with a ternary operator:
auto overridingSize = direction() == childInlineDirection ? makeOptional(0_lu) : WTF::nullopt;

In that case maybe you don&apos;t even need the overridingSize variable and pass the value directly as argument to setOverriding...

&gt; Source/WebCore/rendering/RenderGrid.cpp:928
&gt;  }

If we change estimatedGridAreaBreadthForChild() as I suggested above then we don&apos;t need this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737201</commentid>
    <comment_count>8</comment_count>
      <attachid>422597</attachid>
    <who name="">zsun</who>
    <bug_when>2021-03-08 11:54:25 -0800</bug_when>
    <thetext>Created attachment 422597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737205</commentid>
    <comment_count>9</comment_count>
    <who name="">zsun</who>
    <bug_when>2021-03-08 12:00:47 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #7)
&gt; Comment on attachment 422559 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422559&amp;action=review
&gt; 
&gt; Definitely a step in the right direction. There are some changes that need
&gt; to be done though
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:6
&gt; &gt; +        This change replaces -1 with nullopt in grid to indicate indefinte for funtions that
&gt; 
&gt; nit: indefinite
&gt; 
Corrected.

&gt; &gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:912
&gt; &gt; +        overrideSize = WTF::nullopt;
&gt; 
&gt; Instead of doing this, change estimatedGridAreaBreadthForChild() so that it
&gt; returns an Optional&lt;LayoutUnit&gt; and make it return nullopt instead of -1_lu
&gt; 
I tried this approach. The main issue is that LayoutUnit GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChild(const RenderBox&amp; child, GridTrackSizingDirection direction) is called by LayoutSize GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChild(const RenderBox&amp; child) const. LayoutSize doesn&apos;t like Optional&lt;LayoutUnit&gt;, especially when it&apos;s WTF::nullopt. I&apos;m not sure how feasible this approach is. Any suggestions?

&gt; &gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:1064
&gt; &gt; +            overridingSize = WTF::nullopt;
&gt; 
&gt; You can do it with a ternary operator:
&gt; auto overridingSize = direction() == childInlineDirection ?
&gt; makeOptional(0_lu) : WTF::nullopt;
&gt; 
&gt; In that case maybe you don&apos;t even need the overridingSize variable and pass
&gt; the value directly as argument to setOverriding...
&gt; 
Updated. Thanks very much for the suggestion!

&gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:928
&gt; &gt;  }
&gt; 
&gt; If we change estimatedGridAreaBreadthForChild() as I suggested above then we
&gt; don&apos;t need this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737244</commentid>
    <comment_count>10</comment_count>
      <attachid>422559</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2021-03-08 12:59:50 -0800</bug_when>
    <thetext>Comment on attachment 422559
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:912
&gt;&gt;&gt; +        overrideSize = WTF::nullopt;
&gt;&gt; 
&gt;&gt; Instead of doing this, change estimatedGridAreaBreadthForChild() so that it returns an Optional&lt;LayoutUnit&gt; and make it return nullopt instead of -1_lu
&gt; 
&gt; I tried this approach. The main issue is that LayoutUnit GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChild(const RenderBox&amp; child, GridTrackSizingDirection direction) is called by LayoutSize GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChild(const RenderBox&amp; child) const. LayoutSize doesn&apos;t like Optional&lt;LayoutUnit&gt;, especially when it&apos;s WTF::nullopt. I&apos;m not sure how feasible this approach is. Any suggestions?

Umm, the only solution I see now is that we remove the estimatedGridAreaBreadthForChild(child), and the caller takes the responsibility of building the LayoutSize instance, based on the results of the function; this should also be the responsible of handling the nullopt. I&apos;m not sure how big would be the change, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737523</commentid>
    <comment_count>11</comment_count>
      <attachid>422684</attachid>
    <who name="">zsun</who>
    <bug_when>2021-03-09 03:29:10 -0800</bug_when>
    <thetext>Created attachment 422684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737548</commentid>
    <comment_count>12</comment_count>
      <attachid>422684</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2021-03-09 06:50:02 -0800</bug_when>
    <thetext>Comment on attachment 422684
Patch

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

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:554
&gt; +Optional&lt;LayoutUnit&gt; GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChildForColumns(const RenderBox&amp; child) const

Perhaps we don&apos;t need this function; we can just calling the generic function with the appropriated argument when needed.

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:558
&gt; +Optional&lt;LayoutUnit&gt; GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChildForRows(const RenderBox&amp; child) const

Ditto

&gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:839
&gt; +    return minLogicalSizeForChild(child, childMinSize, gridAreaSize.valueOr(0_lu)) + baselineShim;

I&apos;m not sure about this valurOr(0); it might be the root cause of the layout tests failures we have in the baseline alignment related tests.
I think this might be wrong when dealing with orthogonal grid items, so that we need nullopt here to detect indefinite size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738443</commentid>
    <comment_count>13</comment_count>
      <attachid>422930</attachid>
    <who name="">zsun</who>
    <bug_when>2021-03-11 07:43:30 -0800</bug_when>
    <thetext>Created attachment 422930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738530</commentid>
    <comment_count>14</comment_count>
      <attachid>422930</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-03-11 10:55:10 -0800</bug_when>
    <thetext>Comment on attachment 422930
Patch

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

Seems like you have to update the failed expectations of a test that is failing.

Looking great, I&apos;m happy that we get rid of the -1&apos;s. It&apos;s a pitty that we cannot use LayoutSize and have to use width and height separatedely but it isn&apos;t a big deal.

&gt; Source/WebCore/ChangeLog:7
&gt; +        returns an Optional type. This change has exposed an issue when resolving repalced elemnt

Nit: replaced element

&gt; Source/WebCore/ChangeLog:11
&gt; +         

Extra line here. BTW this paragraph should go bellow the &quot;Reviewed by&quot; line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738809</commentid>
    <comment_count>15</comment_count>
      <attachid>423023</attachid>
    <who name="">zsun</who>
    <bug_when>2021-03-12 01:43:03 -0800</bug_when>
    <thetext>Created attachment 423023
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738811</commentid>
    <comment_count>16</comment_count>
    <who name="">zsun</who>
    <bug_when>2021-03-12 01:45:01 -0800</bug_when>
    <thetext>(In reply to Javier Fernandez from comment #12)
&gt; Comment on attachment 422684 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422684&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:554
&gt; &gt; +Optional&lt;LayoutUnit&gt; GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChildForColumns(const RenderBox&amp; child) const
&gt; 
&gt; Perhaps we don&apos;t need this function; we can just calling the generic
&gt; function with the appropriated argument when needed.
&gt; 
&gt; &gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:558
&gt; &gt; +Optional&lt;LayoutUnit&gt; GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChildForRows(const RenderBox&amp; child) const
&gt; 
&gt; Ditto
&gt; 
&gt; &gt; Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:839
&gt; &gt; +    return minLogicalSizeForChild(child, childMinSize, gridAreaSize.valueOr(0_lu)) + baselineShim;
&gt; 
&gt; I&apos;m not sure about this valurOr(0); it might be the root cause of the layout
&gt; tests failures we have in the baseline alignment related tests.
&gt; I think this might be wrong when dealing with orthogonal grid items, so that
&gt; we need nullopt here to detect indefinite size.

Updated. Change the type to Optional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738812</commentid>
    <comment_count>17</comment_count>
    <who name="">zsun</who>
    <bug_when>2021-03-12 01:46:19 -0800</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #14)
&gt; Comment on attachment 422930 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422930&amp;action=review
&gt; 
&gt; Seems like you have to update the failed expectations of a test that is
&gt; failing.
&gt; 
Updated. This test is fixing at https://bugs.webkit.org/show_bug.cgi?id=191627.

&gt; Looking great, I&apos;m happy that we get rid of the -1&apos;s. It&apos;s a pitty that we
&gt; cannot use LayoutSize and have to use width and height separatedely but it
&gt; isn&apos;t a big deal.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:7
&gt; &gt; +        returns an Optional type. This change has exposed an issue when resolving repalced elemnt
&gt; 
&gt; Nit: replaced element
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +         
&gt; 
&gt; Extra line here. BTW this paragraph should go bellow the &quot;Reviewed by&quot; line

Updated. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738831</commentid>
    <comment_count>18</comment_count>
      <attachid>423033</attachid>
    <who name="">zsun</who>
    <bug_when>2021-03-12 04:05:50 -0800</bug_when>
    <thetext>Created attachment 423033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739522</commentid>
    <comment_count>19</comment_count>
      <attachid>423033</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2021-03-15 10:46:10 -0700</bug_when>
    <thetext>Comment on attachment 423033
Patch

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

r=me

&gt; Source/WebCore/ChangeLog:8
&gt; +        This change replaces -1 with nullopt in grid to indicate indefinite for funtions that

s/funtions/functions

&gt; Source/WebCore/ChangeLog:9
&gt; +        returns an Optional type. This change has exposed an issue when resolving replaced elemnt

s/elemnt/element

&gt; Source/WebCore/rendering/RenderReplaced.cpp:357
&gt;          if (hasAutoHeightOrContainingBlockWithAutoHeight())

Nit: Maybe we can change this as well, something like this:

return !hasAutoHeightOrContainingBlockWithAutoHeight()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739598</commentid>
    <comment_count>20</comment_count>
      <attachid>423222</attachid>
    <who name="">zsun</who>
    <bug_when>2021-03-15 12:42:12 -0700</bug_when>
    <thetext>Created attachment 423222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739599</commentid>
    <comment_count>21</comment_count>
    <who name="">zsun</who>
    <bug_when>2021-03-15 12:43:05 -0700</bug_when>
    <thetext>(In reply to Javier Fernandez from comment #19)
&gt; Comment on attachment 423033 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423033&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        This change replaces -1 with nullopt in grid to indicate indefinite for funtions that
&gt; 
&gt; s/funtions/functions
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        returns an Optional type. This change has exposed an issue when resolving replaced elemnt
&gt; 
&gt; s/elemnt/element
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderReplaced.cpp:357
&gt; &gt;          if (hasAutoHeightOrContainingBlockWithAutoHeight())
&gt; 
&gt; Nit: Maybe we can change this as well, something like this:
&gt; 
&gt; return !hasAutoHeightOrContainingBlockWithAutoHeight()

Updated. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739933</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-16 07:38:58 -0700</bug_when>
    <thetext>Committed r274477: &lt;https://commits.webkit.org/r274477&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423222.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421441</attachid>
            <date>2021-02-24 12:37:47 -0800</date>
            <delta_ts>2021-03-08 05:21:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222376-20210224203746.patch</filename>
            <type>text/plain</type>
            <size>2581</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2VjNTYxMjQ4OTE3Njk0
ZTZhOGNiMjMyMmNiMWVkZWIzODk2MzQ0Ny4uNWUxMTA5OWYzYmUzYTcxMmQyNWYzMDgwYTMxZTFj
MzJlOTFhNjBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAyLTI0ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBSZXBsYWNlIHRo
ZSB1c2Ugb2YgLTEgd2l0aCBXVEY6Om51bGxvcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnJlcGxhY2VkTWluTWF4TG9naWNhbEhlaWdodENvbXB1dGVz
QXNOb25lIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkIGNvbnN0KToKKwogMjAy
MS0wMi0yNCAgSW1hbm9sIEZlcm5hbmRleiAgPGlmZXJuYW5kZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBSZWZhY3RvciBPcGVuWFIgcGxhdGZvcm0gY29kZSBpbnRvIGRpZmZlcmVudCBjbGFzc2Vz
IGFuZCBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNTNm
ZDBmMGYzOGNhNWFmZDEwNzlmZGMzNDA3NDhiMTRjOWMyOTAwMC4uNDQyYTdlZjUxODcyMWMxYWFm
YTdkM2NjMzNmOGUxMjlkNzZlMTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKQEAgLTMyNTUsNyArMzI1NSw3IEBAIGJvb2wgUmVuZGVyQm94OjpyZXBsYWNlZE1pbk1h
eExvZ2ljYWxIZWlnaHRDb21wdXRlc0FzTm9uZShTaXplVHlwZSBzaXplVHlwZSkgY29uCiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIGlmIChsb2dpY2FsSGVpZ2h0LmlzUGVyY2VudE9y
Q2FsY3VsYXRlZCgpICYmIGhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNh
bEhlaWdodCgpKQotICAgICAgICByZXR1cm4gb3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRl
bnRMb2dpY2FsSGVpZ2h0KCkgPT0gTGF5b3V0VW5pdCgtMSk7CisgICAgICAgIHJldHVybiBvdmVy
cmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKSA9PSBXVEY6Om51bGxv
cHQ7CiAKICAgICAvLyBNYWtlIHN1cmUgJSBtaW4taGVpZ2h0IGFuZCAlIG1heC1oZWlnaHQgcmVz
b2x2ZSB0byBub25lIGlmIHRoZSBjb250YWluaW5nIGJsb2NrIGhhcyBhdXRvIGhlaWdodC4KICAg
ICAvLyBOb3RlIHRoYXQgdGhlICJoZWlnaHQiIGNhc2UgZm9yIHJlcGxhY2VkIGVsZW1lbnRzIHdh
cyBoYW5kbGVkIGJ5IGhhc1JlcGxhY2VkTG9naWNhbEhlaWdodCwgd2hpY2ggaXMgd2h5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggNjJlY2UzY2MwNTUwZGUzYWJh
NWIyYWRkMWJlM2M2YWQ5NDM1NWFjNi4uYzNiZDFiNWM2YTRmNDI1NDAyODlmZTk1MTNhN2JhZTNi
ZGEyNzIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtNjEz
LDcgKzYxMyw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZChHcmlkVHJhY2tT
aXppbmdBbGdvcml0aG0mIGFsZ29yaXRobSwgT3B0aW9uYWw8CiAgICAgICAgIGlmICghY2hpbGQt
Pmhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKCkpCiAgICAg
ICAgICAgICBjaGlsZC0+c2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2Fs
V2lkdGgoTGF5b3V0VW5pdCgpKTsKICAgICAgICAgaWYgKCFjaGlsZC0+aGFzT3ZlcnJpZGluZ0Nv
bnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkpCi0gICAgICAgICAgICBjaGlsZC0+
c2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KExheW91dFVu
aXQoLTEpKTsKKyAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2Nr
Q29udGVudExvZ2ljYWxIZWlnaHQoV1RGOjpudWxsb3B0KTsKIAogICAgICAgICBHcmlkQXJlYSBh
cmVhID0gZ3JpZC5ncmlkSXRlbUFyZWEoKmNoaWxkKTsKICAgICAgICAgaWYgKCFhcmVhLnJvd3Mu
aXNJbmRlZmluaXRlKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422556</attachid>
            <date>2021-03-08 05:21:57 -0800</date>
            <delta_ts>2021-03-08 06:32:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222376-20210308132156.patch</filename>
            <type>text/plain</type>
            <size>6392</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY2MDY2ZWQ4MWIyZjU3
N2Y1NzgzN2ZhZjgwOWEyYmNhZGNmMjQ0My4uMDVhMDQ5YzBkNDUyZTA4YWNiNjUyODFkZDViMmJk
MWI5NWFlYTNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAyLTI0ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBSZXBsYWNlIHRo
ZSB1c2Ugb2YgLTEgd2l0aCBXVEY6Om51bGxvcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnJlcGxhY2VkTWluTWF4TG9naWNhbEhlaWdodENvbXB1dGVz
QXNOb25lIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkIGNvbnN0KToKKwogMjAy
MS0wMy0wMiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNd
W0lGQ10gTWVyZ2UgU2ltcGxpZmllZFZlcnRpY2FsQWxpZ25tZW50IGFuZCBtX3VzZVNpbXBsaWZp
ZWRWZXJ0aWNhbEFsaWdubWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcAppbmRleCAyMDU1MTc4YWEzMzc5MTIzNWZkNTRh
ODYyMmU3NWZmM2RiZmQ2NjM4Li5kYzJhZGIyMDRhMzRlZjFlMDY5ZWJkZTdkMGFkMDIzMWFiMTI4
ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtLmNwcApAQCAtOTA3LDYgKzkwNyw4IEBAIGJvb2wgR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtU3RyYXRlZ3k6OnVwZGF0ZU92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50
U2l6CiB7CiAgICAgaWYgKCFvdmVycmlkZVNpemUpCiAgICAgICAgIG92ZXJyaWRlU2l6ZSA9IG1f
YWxnb3JpdGhtLmdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNoaWxkLCBkaXJlY3Rpb24pOworICAg
IGlmIChvdmVycmlkZVNpemUgPT0gLTFfbHUpCisgICAgICAgIG92ZXJyaWRlU2l6ZSA9IFdURjo6
bnVsbG9wdDsKICAgICBpZiAoR3JpZExheW91dEZ1bmN0aW9uczo6aGFzT3ZlcnJpZGluZ0NvbnRh
aW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQoY2hpbGQsIGRpcmVjdGlvbikgJiYgR3JpZExh
eW91dEZ1bmN0aW9uczo6b3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hp
bGQoY2hpbGQsIGRpcmVjdGlvbikgPT0gb3ZlcnJpZGVTaXplKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTEwNTIsMTAgKzEwNTQsMTUgQEAgTGF5b3V0VW5pdCBJbmRlZmluaXRlU2l6ZVN0
cmF0ZWd5OjpmcmVlU3BhY2VGb3JTdHJldGNoQXV0b1RyYWNrc1N0ZXAoKSBjb25zdAogTGF5b3V0
VW5pdCBEZWZpbml0ZVNpemVTdHJhdGVneTo6bWluTG9naWNhbFNpemVGb3JDaGlsZChSZW5kZXJC
b3gmIGNoaWxkLCBjb25zdCBMZW5ndGgmIGNoaWxkTWluU2l6ZSwgTGF5b3V0VW5pdCBhdmFpbGFi
bGVTaXplKSBjb25zdAogewogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBjaGlsZElubGlu
ZURpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlvbkZvckNo
aWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkLCBGb3JDb2x1bW5zKTsKLSAgICBMYXlvdXRVbml0IGlu
ZGVmaW5pdGVTaXplID0gZGlyZWN0aW9uKCkgPT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gPyBMYXlv
dXRVbml0KCkgOiBMYXlvdXRVbml0KC0xKTsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24g
Zmxvd0F3YXJlRGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0
aW9uRm9yQ2hpbGQoKnJlbmRlckdyaWQoKSwgY2hpbGQsIGRpcmVjdGlvbigpKTsKLSAgICBpZiAo
aGFzUmVsYXRpdmVNYXJnaW5PclBhZGRpbmdGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGlyZWN0
aW9uKSB8fCAoZGlyZWN0aW9uKCkgIT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gJiYgaGFzUmVsYXRp
dmVPckludHJpbnNpY1NpemVGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGlyZWN0aW9uKSkpCi0g
ICAgICAgIHNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxkKGNo
aWxkLCBkaXJlY3Rpb24oKSwgaW5kZWZpbml0ZVNpemUpOworICAgIGlmIChoYXNSZWxhdGl2ZU1h
cmdpbk9yUGFkZGluZ0ZvckNoaWxkKGNoaWxkLCBmbG93QXdhcmVEaXJlY3Rpb24pIHx8IChkaXJl
Y3Rpb24oKSAhPSBjaGlsZElubGluZURpcmVjdGlvbiAmJiBoYXNSZWxhdGl2ZU9ySW50cmluc2lj
U2l6ZUZvckNoaWxkKGNoaWxkLCBmbG93QXdhcmVEaXJlY3Rpb24pKSkgeworICAgICAgICBPcHRp
b25hbDxMYXlvdXRVbml0PiBvdmVycmlkaW5nU2l6ZTsKKyAgICAgICAgaWYgKGRpcmVjdGlvbigp
ID09IGNoaWxkSW5saW5lRGlyZWN0aW9uKQorICAgICAgICAgICAgb3ZlcnJpZGluZ1NpemUgPSAw
X2x1OworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdmVycmlkaW5nU2l6ZSA9IFdURjo6bnVs
bG9wdDsKKyAgICAgICAgc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9y
Q2hpbGQoY2hpbGQsIGRpcmVjdGlvbigpLCBvdmVycmlkaW5nU2l6ZSk7CisgICAgfQogICAgIHJl
dHVybiBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG1TdHJhdGVneTo6bWluTG9naWNhbFNpemVGb3JD
aGlsZChjaGlsZCwgY2hpbGRNaW5TaXplLCBhdmFpbGFibGVTaXplKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA1M2ZkMGYwZjM4Y2E1YWZkMTA3OWZkYzM0
MDc0OGIxNGM5YzI5MDAwLi40NDJhN2VmNTE4NzIxYzFhYWZhN2QzY2MzM2Y4ZTEyOWQ3NmUxMjFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMzI1NSw3ICszMjU1
LDcgQEAgYm9vbCBSZW5kZXJCb3g6OnJlcGxhY2VkTWluTWF4TG9naWNhbEhlaWdodENvbXB1dGVz
QXNOb25lKFNpemVUeXBlIHNpemVUeXBlKSBjb24KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
CiAgICAgaWYgKGxvZ2ljYWxIZWlnaHQuaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkgJiYgaGFzT3Zl
cnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkpCi0gICAgICAgIHJl
dHVybiBvdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKSA9PSBM
YXlvdXRVbml0KC0xKTsKKyAgICAgICAgcmV0dXJuIG92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tD
b250ZW50TG9naWNhbEhlaWdodCgpID09IFdURjo6bnVsbG9wdDsKIAogICAgIC8vIE1ha2Ugc3Vy
ZSAlIG1pbi1oZWlnaHQgYW5kICUgbWF4LWhlaWdodCByZXNvbHZlIHRvIG5vbmUgaWYgdGhlIGNv
bnRhaW5pbmcgYmxvY2sgaGFzIGF1dG8gaGVpZ2h0LgogICAgIC8vIE5vdGUgdGhhdCB0aGUgImhl
aWdodCIgY2FzZSBmb3IgcmVwbGFjZWQgZWxlbWVudHMgd2FzIGhhbmRsZWQgYnkgaGFzUmVwbGFj
ZWRMb2dpY2FsSGVpZ2h0LCB3aGljaCBpcyB3aHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmNwcAppbmRleCA2MmVjZTNjYzA1NTBkZTNhYmE1YjJhZGQxYmUzYzZhZDk0MzU1YWM2
Li5iOWMzMmFjYTQ4MzExMjQ1NDAxNDQ0ODc1YWM1MTMwYzQ5YWFiNjY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC02MTMsNyArNjEzLDcgQEAgdm9pZCBSZW5k
ZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKEdyaWRUcmFja1NpemluZ0FsZ29yaXRobSYgYWxnb3Jp
dGhtLCBPcHRpb25hbDwKICAgICAgICAgaWYgKCFjaGlsZC0+aGFzT3ZlcnJpZGluZ0NvbnRhaW5p
bmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoKSkKICAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVy
cmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aChMYXlvdXRVbml0KCkpOwog
ICAgICAgICBpZiAoIWNoaWxkLT5oYXNPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExv
Z2ljYWxIZWlnaHQoKSkKLSAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVycmlkaW5nQ29udGFpbmlu
Z0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCgtMSkpOworICAgICAgICAgICAg
Y2hpbGQtPnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodChX
VEY6Om51bGxvcHQpOwogCiAgICAgICAgIEdyaWRBcmVhIGFyZWEgPSBncmlkLmdyaWRJdGVtQXJl
YSgqY2hpbGQpOwogICAgICAgICBpZiAoIWFyZWEucm93cy5pc0luZGVmaW5pdGUoKSkKQEAgLTky
MSw3ICs5MjEsMTAgQEAgdm9pZCBSZW5kZXJHcmlkOjp1cGRhdGVHcmlkQXJlYUxvZ2ljYWxTaXpl
KFJlbmRlckJveCYgY2hpbGQsIExheW91dFNpemUgZ3JpZEFyZWEKICAgICAgICAgY2hpbGQuc2V0
TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKIAogICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250
YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKGdyaWRBcmVhTG9naWNhbFNpemUud2lkdGgo
KSk7Ci0gICAgY2hpbGQuc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2Fs
SGVpZ2h0KGdyaWRBcmVhTG9naWNhbFNpemUuaGVpZ2h0KCkpOworICAgIGlmIChncmlkQXJlYUxv
Z2ljYWxTaXplLmhlaWdodCgpID09IC0xX2x1KQorICAgICAgICBjaGlsZC5zZXRPdmVycmlkaW5n
Q29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoV1RGOjpudWxsb3B0KTsKKyAgICBl
bHNlCisgICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9n
aWNhbEhlaWdodChncmlkQXJlYUxvZ2ljYWxTaXplLmhlaWdodCgpKTsKIH0KIAogdm9pZCBSZW5k
ZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQpAQCAtMTEzNiw3ICsxMTM5LDcgQEAgdm9pZCBSZW5k
ZXJHcmlkOjphcHBseVN0cmV0Y2hBbGlnbm1lbnRUb0NoaWxkSWZOZWVkZWQoUmVuZGVyQm94JiBj
aGlsZCkKICAgICBib29sIGFsbG93ZWRUb1N0cmV0Y2hDaGlsZEJsb2NrU2l6ZSA9IGJsb2NrRmxv
d0lzQ29sdW1uQXhpcyA/IGFsbG93ZWRUb1N0cmV0Y2hDaGlsZEFsb25nQ29sdW1uQXhpcyhjaGls
ZCkgOiBhbGxvd2VkVG9TdHJldGNoQ2hpbGRBbG9uZ1Jvd0F4aXMoY2hpbGQpOwogICAgIGlmIChh
bGxvd2VkVG9TdHJldGNoQ2hpbGRCbG9ja1NpemUpIHsKICAgICAgICAgTGF5b3V0VW5pdCBzdHJl
dGNoZWRMb2dpY2FsSGVpZ2h0ID0gYXZhaWxhYmxlQWxpZ25tZW50U3BhY2VGb3JDaGlsZEJlZm9y
ZVN0cmV0Y2hpbmcoR3JpZExheW91dEZ1bmN0aW9uczo6b3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9j
a0NvbnRlbnRTaXplRm9yQ2hpbGQoY2hpbGQsIGNoaWxkQmxvY2tEaXJlY3Rpb24pLnZhbHVlKCks
IGNoaWxkKTsKLSAgICAgICAgTGF5b3V0VW5pdCBkZXNpcmVkTG9naWNhbEhlaWdodCA9IGNoaWxk
LmNvbnN0cmFpbkxvZ2ljYWxIZWlnaHRCeU1pbk1heChzdHJldGNoZWRMb2dpY2FsSGVpZ2h0LCAt
MV9sdSk7CisgICAgICAgIExheW91dFVuaXQgZGVzaXJlZExvZ2ljYWxIZWlnaHQgPSBjaGlsZC5j
b25zdHJhaW5Mb2dpY2FsSGVpZ2h0QnlNaW5NYXgoc3RyZXRjaGVkTG9naWNhbEhlaWdodCwgV1RG
OjpudWxsb3B0KTsKICAgICAgICAgY2hpbGQuc2V0T3ZlcnJpZGluZ0xvZ2ljYWxIZWlnaHQoZGVz
aXJlZExvZ2ljYWxIZWlnaHQpOwogCiAgICAgICAgIC8vIENoZWNraW5nIHRoZSBsb2dpY2FsLWhl
aWdodCBvZiBhIGNoaWxkIGlzbid0IGVub3VnaC4gU2V0dGluZyBhbiBvdmVycmlkZSBsb2dpY2Fs
LWhlaWdodAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422559</attachid>
            <date>2021-03-08 06:32:37 -0800</date>
            <delta_ts>2021-03-08 11:54:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222376-20210308143236.patch</filename>
            <type>text/plain</type>
            <size>7534</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY2MDY2ZWQ4MWIyZjU3
N2Y1NzgzN2ZhZjgwOWEyYmNhZGNmMjQ0My4uNzY1ZDEyMDJiMzE2MjUyN2M4NTA0NGVjMTkyZGFj
NzM2ZWM4YWEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAzLTA4ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBSZXBsYWNlIHRo
ZSB1c2Ugb2YgLTEgd2l0aCBXVEY6Om51bGxvcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM3NgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJlcGxh
Y2VzIC0xIHdpdGggbnVsbG9wdCBpbiBncmlkIHRvIGluZGljYXRlIGluZGVmaW50ZSBmb3IgZnVu
dGlvbnMgdGhhdAorICAgICAgICByZXR1cm5zIGFuIE9wdGlvbmFsIHR5cGUuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2
aW91ciBpcyBleHBlY3RlZC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpyZXBsYWNlZE1pbk1heExvZ2ljYWxIZWlnaHRD
b21wdXRlc0FzTm9uZSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCBjb25zdCk6
CisKIDIwMjEtMDMtMDIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXVtJRkNdIE1lcmdlIFNpbXBsaWZpZWRWZXJ0aWNhbEFsaWdubWVudCBhbmQgbV91c2VT
aW1wbGlmaWVkVmVydGljYWxBbGlnbm1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAKaW5kZXggMjA1NTE3OGFhMzM3OTEy
MzVmZDU0YTg2MjJlNzVmZjNkYmZkNjYzOC4uNTRlYjc4NzdiNDhiZmE2NzVhYjUwNjJhODlhZTdl
YzNhMDIyMjUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFj
a1NpemluZ0FsZ29yaXRobS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRU
cmFja1NpemluZ0FsZ29yaXRobS5jcHAKQEAgLTc1NSw3ICs3NTUsNyBAQCBMYXlvdXRVbml0IEdy
aWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5Ojpsb2dpY2FsSGVpZ2h0Rm9yQ2hpbGQoUmVu
ZGVyQm94JiBjaAogewogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBjaGlsZEJsb2NrRGly
ZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0aW9uRm9yQ2hpbGQo
KnJlbmRlckdyaWQoKSwgY2hpbGQsIEZvclJvd3MpOwogICAgIC8vIElmIHxjaGlsZHwgaGFzIGEg
cmVsYXRpdmUgbG9naWNhbCBoZWlnaHQsIHdlIHNob3VsZG4ndCBsZXQgaXQgb3ZlcnJpZGUgaXRz
IGludHJpbnNpYyBoZWlnaHQsIHdoaWNoIGlzCi0gICAgLy8gd2hhdCB3ZSBhcmUgaW50ZXJlc3Rl
ZCBpbiBoZXJlLiBUaHVzIHdlIG5lZWQgdG8gc2V0IHRoZSBibG9jay1heGlzIG92ZXJyaWRlIHNp
emUgdG8gLTEgKG5vIHBvc3NpYmxlIHJlc29sdXRpb24pLgorICAgIC8vIHdoYXQgd2UgYXJlIGlu
dGVyZXN0ZWQgaW4gaGVyZS4gVGh1cyB3ZSBuZWVkIHRvIHNldCB0aGUgYmxvY2stYXhpcyBvdmVy
cmlkZSBzaXplIHRvIG51bGxvcHQgKG5vIHBvc3NpYmxlIHJlc29sdXRpb24pLgogICAgIGlmIChz
aG91bGRDbGVhck92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxkKGNo
aWxkLCBGb3JSb3dzKSkgewogICAgICAgICBzZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29u
dGVudFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRCbG9ja0RpcmVjdGlvbiwgV1RGOjpudWxsb3B0
KTsKICAgICAgICAgY2hpbGQuc2V0TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKQEAgLTkwNyw2
ICs5MDcsOSBAQCBib29sIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5Ojp1cGRhdGVP
dmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpegogewogICAgIGlmICghb3ZlcnJpZGVT
aXplKQogICAgICAgICBvdmVycmlkZVNpemUgPSBtX2FsZ29yaXRobS5ncmlkQXJlYUJyZWFkdGhG
b3JDaGlsZChjaGlsZCwgZGlyZWN0aW9uKTsKKyAgICAvLyBvdmVycmlkZVNpemUgbWF5IHBhc3Mg
LTFfbHUgYXMgaW5kZWZpbml0ZSBkZXJpdmVkIGZyb20gZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRo
Rm9yQ2hpbGQoKSAsIGNvbnZlcnQgaXQgdG8gbnVsbG9wdCBiZWZvcmUgcGFzaW5nIG92ZXIuCisg
ICAgaWYgKG92ZXJyaWRlU2l6ZSA9PSAtMV9sdSkKKyAgICAgICAgb3ZlcnJpZGVTaXplID0gV1RG
OjpudWxsb3B0OwogICAgIGlmIChHcmlkTGF5b3V0RnVuY3Rpb25zOjpoYXNPdmVycmlkaW5nQ29u
dGFpbmluZ0Jsb2NrQ29udGVudFNpemVGb3JDaGlsZChjaGlsZCwgZGlyZWN0aW9uKSAmJiBHcmlk
TGF5b3V0RnVuY3Rpb25zOjpvdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpemVGb3JD
aGlsZChjaGlsZCwgZGlyZWN0aW9uKSA9PSBvdmVycmlkZVNpemUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIApAQCAtMTA1MiwxMCArMTA1NSwxNSBAQCBMYXlvdXRVbml0IEluZGVmaW5pdGVTaXpl
U3RyYXRlZ3k6OmZyZWVTcGFjZUZvclN0cmV0Y2hBdXRvVHJhY2tzU3RlcCgpIGNvbnN0CiBMYXlv
dXRVbml0IERlZmluaXRlU2l6ZVN0cmF0ZWd5OjptaW5Mb2dpY2FsU2l6ZUZvckNoaWxkKFJlbmRl
ckJveCYgY2hpbGQsIGNvbnN0IExlbmd0aCYgY2hpbGRNaW5TaXplLCBMYXlvdXRVbml0IGF2YWls
YWJsZVNpemUpIGNvbnN0CiB7CiAgICAgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGNoaWxkSW5s
aW5lRGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0aW9uRm9y
Q2hpbGQoKnJlbmRlckdyaWQoKSwgY2hpbGQsIEZvckNvbHVtbnMpOwotICAgIExheW91dFVuaXQg
aW5kZWZpbml0ZVNpemUgPSBkaXJlY3Rpb24oKSA9PSBjaGlsZElubGluZURpcmVjdGlvbiA/IExh
eW91dFVuaXQoKSA6IExheW91dFVuaXQoLTEpOwogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biBmbG93QXdhcmVEaXJlY3Rpb24gPSBHcmlkTGF5b3V0RnVuY3Rpb25zOjpmbG93QXdhcmVEaXJl
Y3Rpb25Gb3JDaGlsZCgqcmVuZGVyR3JpZCgpLCBjaGlsZCwgZGlyZWN0aW9uKCkpOwotICAgIGlm
IChoYXNSZWxhdGl2ZU1hcmdpbk9yUGFkZGluZ0ZvckNoaWxkKGNoaWxkLCBmbG93QXdhcmVEaXJl
Y3Rpb24pIHx8IChkaXJlY3Rpb24oKSAhPSBjaGlsZElubGluZURpcmVjdGlvbiAmJiBoYXNSZWxh
dGl2ZU9ySW50cmluc2ljU2l6ZUZvckNoaWxkKGNoaWxkLCBmbG93QXdhcmVEaXJlY3Rpb24pKSkK
LSAgICAgICAgc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQo
Y2hpbGQsIGRpcmVjdGlvbigpLCBpbmRlZmluaXRlU2l6ZSk7CisgICAgaWYgKGhhc1JlbGF0aXZl
TWFyZ2luT3JQYWRkaW5nRm9yQ2hpbGQoY2hpbGQsIGZsb3dBd2FyZURpcmVjdGlvbikgfHwgKGRp
cmVjdGlvbigpICE9IGNoaWxkSW5saW5lRGlyZWN0aW9uICYmIGhhc1JlbGF0aXZlT3JJbnRyaW5z
aWNTaXplRm9yQ2hpbGQoY2hpbGQsIGZsb3dBd2FyZURpcmVjdGlvbikpKSB7CisgICAgICAgIE9w
dGlvbmFsPExheW91dFVuaXQ+IG92ZXJyaWRpbmdTaXplOworICAgICAgICBpZiAoZGlyZWN0aW9u
KCkgPT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24pCisgICAgICAgICAgICBvdmVycmlkaW5nU2l6ZSA9
IDBfbHU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG92ZXJyaWRpbmdTaXplID0gV1RGOjpu
dWxsb3B0OworICAgICAgICBzZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpemVG
b3JDaGlsZChjaGlsZCwgZGlyZWN0aW9uKCksIG92ZXJyaWRpbmdTaXplKTsKKyAgICB9CiAgICAg
cmV0dXJuIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5OjptaW5Mb2dpY2FsU2l6ZUZv
ckNoaWxkKGNoaWxkLCBjaGlsZE1pblNpemUsIGF2YWlsYWJsZVNpemUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDUzZmQwZjBmMzhjYTVhZmQxMDc5ZmRj
MzQwNzQ4YjE0YzljMjkwMDAuLjQ0MmE3ZWY1MTg3MjFjMWFhZmE3ZDNjYzMzZjhlMTI5ZDc2ZTEy
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0zMjU1LDcgKzMy
NTUsNyBAQCBib29sIFJlbmRlckJveDo6cmVwbGFjZWRNaW5NYXhMb2dpY2FsSGVpZ2h0Q29tcHV0
ZXNBc05vbmUoU2l6ZVR5cGUgc2l6ZVR5cGUpIGNvbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAKICAgICBpZiAobG9naWNhbEhlaWdodC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSAmJiBoYXNP
dmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKSkKLSAgICAgICAg
cmV0dXJuIG92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpID09
IExheW91dFVuaXQoLTEpOworICAgICAgICByZXR1cm4gb3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9j
a0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgPT0gV1RGOjpudWxsb3B0OwogCiAgICAgLy8gTWFrZSBz
dXJlICUgbWluLWhlaWdodCBhbmQgJSBtYXgtaGVpZ2h0IHJlc29sdmUgdG8gbm9uZSBpZiB0aGUg
Y29udGFpbmluZyBibG9jayBoYXMgYXV0byBoZWlnaHQuCiAgICAgLy8gTm90ZSB0aGF0IHRoZSAi
aGVpZ2h0IiBjYXNlIGZvciByZXBsYWNlZCBlbGVtZW50cyB3YXMgaGFuZGxlZCBieSBoYXNSZXBs
YWNlZExvZ2ljYWxIZWlnaHQsIHdoaWNoIGlzIHdoeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwCmluZGV4IDYyZWNlM2NjMDU1MGRlM2FiYTViMmFkZDFiZTNjNmFkOTQzNTVh
YzYuLmI5YzMyYWNhNDgzMTEyNDU0MDE0NDQ4NzVhYzUxMzBjNDlhYWI2NjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIFJl
bmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBhbGdv
cml0aG0sIE9wdGlvbmFsPAogICAgICAgICBpZiAoIWNoaWxkLT5oYXNPdmVycmlkaW5nQ29udGFp
bmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCgpKQogICAgICAgICAgICAgY2hpbGQtPnNldE92
ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKExheW91dFVuaXQoKSk7
CiAgICAgICAgIGlmICghY2hpbGQtPmhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50
TG9naWNhbEhlaWdodCgpKQotICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRpbmdDb250YWlu
aW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodChMYXlvdXRVbml0KC0xKSk7CisgICAgICAgICAg
ICBjaGlsZC0+c2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0
KFdURjo6bnVsbG9wdCk7CiAKICAgICAgICAgR3JpZEFyZWEgYXJlYSA9IGdyaWQuZ3JpZEl0ZW1B
cmVhKCpjaGlsZCk7CiAgICAgICAgIGlmICghYXJlYS5yb3dzLmlzSW5kZWZpbml0ZSgpKQpAQCAt
OTIxLDcgKzkyMSwxMCBAQCB2b2lkIFJlbmRlckdyaWQ6OnVwZGF0ZUdyaWRBcmVhTG9naWNhbFNp
emUoUmVuZGVyQm94JiBjaGlsZCwgTGF5b3V0U2l6ZSBncmlkQXJlYQogICAgICAgICBjaGlsZC5z
ZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOwogCiAgICAgY2hpbGQuc2V0T3ZlcnJpZGluZ0Nv
bnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoZ3JpZEFyZWFMb2dpY2FsU2l6ZS53aWR0
aCgpKTsKLSAgICBjaGlsZC5zZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2lj
YWxIZWlnaHQoZ3JpZEFyZWFMb2dpY2FsU2l6ZS5oZWlnaHQoKSk7CisgICAgaWYgKGdyaWRBcmVh
TG9naWNhbFNpemUuaGVpZ2h0KCkgPT0gLTFfbHUpCisgICAgICAgIGNoaWxkLnNldE92ZXJyaWRp
bmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodChXVEY6Om51bGxvcHQpOworICAg
IGVsc2UKKyAgICAgICAgY2hpbGQuc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRM
b2dpY2FsSGVpZ2h0KGdyaWRBcmVhTG9naWNhbFNpemUuaGVpZ2h0KCkpOwogfQogCiB2b2lkIFJl
bmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcygpCkBAIC0xMTM2LDcgKzExMzksNyBAQCB2b2lkIFJl
bmRlckdyaWQ6OmFwcGx5U3RyZXRjaEFsaWdubWVudFRvQ2hpbGRJZk5lZWRlZChSZW5kZXJCb3gm
IGNoaWxkKQogICAgIGJvb2wgYWxsb3dlZFRvU3RyZXRjaENoaWxkQmxvY2tTaXplID0gYmxvY2tG
bG93SXNDb2x1bW5BeGlzID8gYWxsb3dlZFRvU3RyZXRjaENoaWxkQWxvbmdDb2x1bW5BeGlzKGNo
aWxkKSA6IGFsbG93ZWRUb1N0cmV0Y2hDaGlsZEFsb25nUm93QXhpcyhjaGlsZCk7CiAgICAgaWYg
KGFsbG93ZWRUb1N0cmV0Y2hDaGlsZEJsb2NrU2l6ZSkgewogICAgICAgICBMYXlvdXRVbml0IHN0
cmV0Y2hlZExvZ2ljYWxIZWlnaHQgPSBhdmFpbGFibGVBbGlnbm1lbnRTcGFjZUZvckNoaWxkQmVm
b3JlU3RyZXRjaGluZyhHcmlkTGF5b3V0RnVuY3Rpb25zOjpvdmVycmlkaW5nQ29udGFpbmluZ0Js
b2NrQ29udGVudFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRCbG9ja0RpcmVjdGlvbikudmFsdWUo
KSwgY2hpbGQpOwotICAgICAgICBMYXlvdXRVbml0IGRlc2lyZWRMb2dpY2FsSGVpZ2h0ID0gY2hp
bGQuY29uc3RyYWluTG9naWNhbEhlaWdodEJ5TWluTWF4KHN0cmV0Y2hlZExvZ2ljYWxIZWlnaHQs
IC0xX2x1KTsKKyAgICAgICAgTGF5b3V0VW5pdCBkZXNpcmVkTG9naWNhbEhlaWdodCA9IGNoaWxk
LmNvbnN0cmFpbkxvZ2ljYWxIZWlnaHRCeU1pbk1heChzdHJldGNoZWRMb2dpY2FsSGVpZ2h0LCBX
VEY6Om51bGxvcHQpOwogICAgICAgICBjaGlsZC5zZXRPdmVycmlkaW5nTG9naWNhbEhlaWdodChk
ZXNpcmVkTG9naWNhbEhlaWdodCk7CiAKICAgICAgICAgLy8gQ2hlY2tpbmcgdGhlIGxvZ2ljYWwt
aGVpZ2h0IG9mIGEgY2hpbGQgaXNuJ3QgZW5vdWdoLiBTZXR0aW5nIGFuIG92ZXJyaWRlIGxvZ2lj
YWwtaGVpZ2h0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422597</attachid>
            <date>2021-03-08 11:54:25 -0800</date>
            <delta_ts>2021-03-09 03:29:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222376-20210308195424.patch</filename>
            <type>text/plain</type>
            <size>7355</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY2MDY2ZWQ4MWIyZjU3
N2Y1NzgzN2ZhZjgwOWEyYmNhZGNmMjQ0My4uZTFjM2YxZjIxMzc5OGUzYTUwYTNmMTczOWZjODAx
MTUwOGQxZjQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAzLTA4ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBSZXBsYWNlIHRo
ZSB1c2Ugb2YgLTEgd2l0aCBXVEY6Om51bGxvcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM3NgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJlcGxh
Y2VzIC0xIHdpdGggbnVsbG9wdCBpbiBncmlkIHRvIGluZGljYXRlIGluZGVmaW5pdGUgZm9yIGZ1
bnRpb25zIHRoYXQKKyAgICAgICAgcmV0dXJucyBhbiBPcHRpb25hbCB0eXBlLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhh
dmlvdXIgaXMgZXhwZWN0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cmVwbGFjZWRNaW5NYXhMb2dpY2FsSGVpZ2h0
Q29tcHV0ZXNBc05vbmUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQgY29uc3Qp
OgorCiAyMDIxLTAzLTAyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSBNZXJnZSBTaW1wbGlmaWVkVmVydGljYWxBbGlnbm1lbnQgYW5kIG1fdXNl
U2ltcGxpZmllZFZlcnRpY2FsQWxpZ25tZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCmluZGV4IDIwNTUxNzhhYTMzNzkx
MjM1ZmQ1NGE4NjIyZTc1ZmYzZGJmZDY2MzguLjczMmE4MmRjNTBlOTIxZjM1ZDMyY2IwMTAxOWNj
YzhjYmY4NmQwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJh
Y2tTaXppbmdBbGdvcml0aG0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Hcmlk
VHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCkBAIC03NTUsNyArNzU1LDcgQEAgTGF5b3V0VW5pdCBH
cmlkVHJhY2tTaXppbmdBbGdvcml0aG1TdHJhdGVneTo6bG9naWNhbEhlaWdodEZvckNoaWxkKFJl
bmRlckJveCYgY2gKIHsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gY2hpbGRCbG9ja0Rp
cmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlvbkZvckNoaWxk
KCpyZW5kZXJHcmlkKCksIGNoaWxkLCBGb3JSb3dzKTsKICAgICAvLyBJZiB8Y2hpbGR8IGhhcyBh
IHJlbGF0aXZlIGxvZ2ljYWwgaGVpZ2h0LCB3ZSBzaG91bGRuJ3QgbGV0IGl0IG92ZXJyaWRlIGl0
cyBpbnRyaW5zaWMgaGVpZ2h0LCB3aGljaCBpcwotICAgIC8vIHdoYXQgd2UgYXJlIGludGVyZXN0
ZWQgaW4gaGVyZS4gVGh1cyB3ZSBuZWVkIHRvIHNldCB0aGUgYmxvY2stYXhpcyBvdmVycmlkZSBz
aXplIHRvIC0xIChubyBwb3NzaWJsZSByZXNvbHV0aW9uKS4KKyAgICAvLyB3aGF0IHdlIGFyZSBp
bnRlcmVzdGVkIGluIGhlcmUuIFRodXMgd2UgbmVlZCB0byBzZXQgdGhlIGJsb2NrLWF4aXMgb3Zl
cnJpZGUgc2l6ZSB0byBudWxsb3B0IChubyBwb3NzaWJsZSByZXNvbHV0aW9uKS4KICAgICBpZiAo
c2hvdWxkQ2xlYXJPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpemVGb3JDaGlsZChj
aGlsZCwgRm9yUm93cykpIHsKICAgICAgICAgc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0Nv
bnRlbnRTaXplRm9yQ2hpbGQoY2hpbGQsIGNoaWxkQmxvY2tEaXJlY3Rpb24sIFdURjo6bnVsbG9w
dCk7CiAgICAgICAgIGNoaWxkLnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CkBAIC05MDcs
NiArOTA3LDkgQEAgYm9vbCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG1TdHJhdGVneTo6dXBkYXRl
T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXoKIHsKICAgICBpZiAoIW92ZXJyaWRl
U2l6ZSkKICAgICAgICAgb3ZlcnJpZGVTaXplID0gbV9hbGdvcml0aG0uZ3JpZEFyZWFCcmVhZHRo
Rm9yQ2hpbGQoY2hpbGQsIGRpcmVjdGlvbik7CisgICAgLy8gb3ZlcnJpZGVTaXplIG1heSBwYXNz
IC0xX2x1IGFzIGluZGVmaW5pdGUgZGVyaXZlZCBmcm9tIGVzdGltYXRlZEdyaWRBcmVhQnJlYWR0
aEZvckNoaWxkKCkgLCBjb252ZXJ0IGl0IHRvIG51bGxvcHQgYmVmb3JlIHBhc2luZyBvdmVyLgor
ICAgIGlmIChvdmVycmlkZVNpemUgPT0gLTFfbHUpCisgICAgICAgIG92ZXJyaWRlU2l6ZSA9IFdU
Rjo6bnVsbG9wdDsKICAgICBpZiAoR3JpZExheW91dEZ1bmN0aW9uczo6aGFzT3ZlcnJpZGluZ0Nv
bnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQoY2hpbGQsIGRpcmVjdGlvbikgJiYgR3Jp
ZExheW91dEZ1bmN0aW9uczo6b3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9y
Q2hpbGQoY2hpbGQsIGRpcmVjdGlvbikgPT0gb3ZlcnJpZGVTaXplKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKQEAgLTEwNTIsMTAgKzEwNTUsMTEgQEAgTGF5b3V0VW5pdCBJbmRlZmluaXRlU2l6
ZVN0cmF0ZWd5OjpmcmVlU3BhY2VGb3JTdHJldGNoQXV0b1RyYWNrc1N0ZXAoKSBjb25zdAogTGF5
b3V0VW5pdCBEZWZpbml0ZVNpemVTdHJhdGVneTo6bWluTG9naWNhbFNpemVGb3JDaGlsZChSZW5k
ZXJCb3gmIGNoaWxkLCBjb25zdCBMZW5ndGgmIGNoaWxkTWluU2l6ZSwgTGF5b3V0VW5pdCBhdmFp
bGFibGVTaXplKSBjb25zdAogewogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBjaGlsZElu
bGluZURpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlvbkZv
ckNoaWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkLCBGb3JDb2x1bW5zKTsKLSAgICBMYXlvdXRVbml0
IGluZGVmaW5pdGVTaXplID0gZGlyZWN0aW9uKCkgPT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gPyBM
YXlvdXRVbml0KCkgOiBMYXlvdXRVbml0KC0xKTsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rp
b24gZmxvd0F3YXJlRGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGly
ZWN0aW9uRm9yQ2hpbGQoKnJlbmRlckdyaWQoKSwgY2hpbGQsIGRpcmVjdGlvbigpKTsKLSAgICBp
ZiAoaGFzUmVsYXRpdmVNYXJnaW5PclBhZGRpbmdGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGly
ZWN0aW9uKSB8fCAoZGlyZWN0aW9uKCkgIT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gJiYgaGFzUmVs
YXRpdmVPckludHJpbnNpY1NpemVGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGlyZWN0aW9uKSkp
CisgICAgaWYgKGhhc1JlbGF0aXZlTWFyZ2luT3JQYWRkaW5nRm9yQ2hpbGQoY2hpbGQsIGZsb3dB
d2FyZURpcmVjdGlvbikgfHwgKGRpcmVjdGlvbigpICE9IGNoaWxkSW5saW5lRGlyZWN0aW9uICYm
IGhhc1JlbGF0aXZlT3JJbnRyaW5zaWNTaXplRm9yQ2hpbGQoY2hpbGQsIGZsb3dBd2FyZURpcmVj
dGlvbikpKSB7CisgICAgICAgIGF1dG8gaW5kZWZpbml0ZVNpemUgPSBkaXJlY3Rpb24oKSA9PSBj
aGlsZElubGluZURpcmVjdGlvbiA/IG1ha2VPcHRpb25hbCgwX2x1KSA6IFdURjo6bnVsbG9wdDsK
ICAgICAgICAgc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQo
Y2hpbGQsIGRpcmVjdGlvbigpLCBpbmRlZmluaXRlU2l6ZSk7CisgICAgfQogICAgIHJldHVybiBH
cmlkVHJhY2tTaXppbmdBbGdvcml0aG1TdHJhdGVneTo6bWluTG9naWNhbFNpemVGb3JDaGlsZChj
aGlsZCwgY2hpbGRNaW5TaXplLCBhdmFpbGFibGVTaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA1M2ZkMGYwZjM4Y2E1YWZkMTA3OWZkYzM0MDc0OGIx
NGM5YzI5MDAwLi40NDJhN2VmNTE4NzIxYzFhYWZhN2QzY2MzM2Y4ZTEyOWQ3NmUxMjFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMzI1NSw3ICszMjU1LDcgQEAg
Ym9vbCBSZW5kZXJCb3g6OnJlcGxhY2VkTWluTWF4TG9naWNhbEhlaWdodENvbXB1dGVzQXNOb25l
KFNpemVUeXBlIHNpemVUeXBlKSBjb24KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAg
aWYgKGxvZ2ljYWxIZWlnaHQuaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkgJiYgaGFzT3ZlcnJpZGlu
Z0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkpCi0gICAgICAgIHJldHVybiBv
dmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKSA9PSBMYXlvdXRV
bml0KC0xKTsKKyAgICAgICAgcmV0dXJuIG92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50
TG9naWNhbEhlaWdodCgpID09IFdURjo6bnVsbG9wdDsKIAogICAgIC8vIE1ha2Ugc3VyZSAlIG1p
bi1oZWlnaHQgYW5kICUgbWF4LWhlaWdodCByZXNvbHZlIHRvIG5vbmUgaWYgdGhlIGNvbnRhaW5p
bmcgYmxvY2sgaGFzIGF1dG8gaGVpZ2h0LgogICAgIC8vIE5vdGUgdGhhdCB0aGUgImhlaWdodCIg
Y2FzZSBmb3IgcmVwbGFjZWQgZWxlbWVudHMgd2FzIGhhbmRsZWQgYnkgaGFzUmVwbGFjZWRMb2dp
Y2FsSGVpZ2h0LCB3aGljaCBpcyB3aHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcAppbmRleCA2MmVjZTNjYzA1NTBkZTNhYmE1YjJhZGQxYmUzYzZhZDk0MzU1YWM2Li5iOWMz
MmFjYTQ4MzExMjQ1NDAxNDQ0ODc1YWM1MTMwYzQ5YWFiNjY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC02MTMsNyArNjEzLDcgQEAgdm9pZCBSZW5kZXJHcmlk
OjpwbGFjZUl0ZW1zT25HcmlkKEdyaWRUcmFja1NpemluZ0FsZ29yaXRobSYgYWxnb3JpdGhtLCBP
cHRpb25hbDwKICAgICAgICAgaWYgKCFjaGlsZC0+aGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9j
a0NvbnRlbnRMb2dpY2FsV2lkdGgoKSkKICAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVycmlkaW5n
Q29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aChMYXlvdXRVbml0KCkpOwogICAgICAg
ICBpZiAoIWNoaWxkLT5oYXNPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxI
ZWlnaHQoKSkKLSAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2Nr
Q29udGVudExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCgtMSkpOworICAgICAgICAgICAgY2hpbGQt
PnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodChXVEY6Om51
bGxvcHQpOwogCiAgICAgICAgIEdyaWRBcmVhIGFyZWEgPSBncmlkLmdyaWRJdGVtQXJlYSgqY2hp
bGQpOwogICAgICAgICBpZiAoIWFyZWEucm93cy5pc0luZGVmaW5pdGUoKSkKQEAgLTkyMSw3ICs5
MjEsMTAgQEAgdm9pZCBSZW5kZXJHcmlkOjp1cGRhdGVHcmlkQXJlYUxvZ2ljYWxTaXplKFJlbmRl
ckJveCYgY2hpbGQsIExheW91dFNpemUgZ3JpZEFyZWEKICAgICAgICAgY2hpbGQuc2V0TmVlZHNM
YXlvdXQoTWFya09ubHlUaGlzKTsKIAogICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5n
QmxvY2tDb250ZW50TG9naWNhbFdpZHRoKGdyaWRBcmVhTG9naWNhbFNpemUud2lkdGgoKSk7Ci0g
ICAgY2hpbGQuc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0
KGdyaWRBcmVhTG9naWNhbFNpemUuaGVpZ2h0KCkpOworICAgIGlmIChncmlkQXJlYUxvZ2ljYWxT
aXplLmhlaWdodCgpID09IC0xX2x1KQorICAgICAgICBjaGlsZC5zZXRPdmVycmlkaW5nQ29udGFp
bmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoV1RGOjpudWxsb3B0KTsKKyAgICBlbHNlCisg
ICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhl
aWdodChncmlkQXJlYUxvZ2ljYWxTaXplLmhlaWdodCgpKTsKIH0KIAogdm9pZCBSZW5kZXJHcmlk
OjpsYXlvdXRHcmlkSXRlbXMoKQpAQCAtMTEzNiw3ICsxMTM5LDcgQEAgdm9pZCBSZW5kZXJHcmlk
OjphcHBseVN0cmV0Y2hBbGlnbm1lbnRUb0NoaWxkSWZOZWVkZWQoUmVuZGVyQm94JiBjaGlsZCkK
ICAgICBib29sIGFsbG93ZWRUb1N0cmV0Y2hDaGlsZEJsb2NrU2l6ZSA9IGJsb2NrRmxvd0lzQ29s
dW1uQXhpcyA/IGFsbG93ZWRUb1N0cmV0Y2hDaGlsZEFsb25nQ29sdW1uQXhpcyhjaGlsZCkgOiBh
bGxvd2VkVG9TdHJldGNoQ2hpbGRBbG9uZ1Jvd0F4aXMoY2hpbGQpOwogICAgIGlmIChhbGxvd2Vk
VG9TdHJldGNoQ2hpbGRCbG9ja1NpemUpIHsKICAgICAgICAgTGF5b3V0VW5pdCBzdHJldGNoZWRM
b2dpY2FsSGVpZ2h0ID0gYXZhaWxhYmxlQWxpZ25tZW50U3BhY2VGb3JDaGlsZEJlZm9yZVN0cmV0
Y2hpbmcoR3JpZExheW91dEZ1bmN0aW9uczo6b3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRl
bnRTaXplRm9yQ2hpbGQoY2hpbGQsIGNoaWxkQmxvY2tEaXJlY3Rpb24pLnZhbHVlKCksIGNoaWxk
KTsKLSAgICAgICAgTGF5b3V0VW5pdCBkZXNpcmVkTG9naWNhbEhlaWdodCA9IGNoaWxkLmNvbnN0
cmFpbkxvZ2ljYWxIZWlnaHRCeU1pbk1heChzdHJldGNoZWRMb2dpY2FsSGVpZ2h0LCAtMV9sdSk7
CisgICAgICAgIExheW91dFVuaXQgZGVzaXJlZExvZ2ljYWxIZWlnaHQgPSBjaGlsZC5jb25zdHJh
aW5Mb2dpY2FsSGVpZ2h0QnlNaW5NYXgoc3RyZXRjaGVkTG9naWNhbEhlaWdodCwgV1RGOjpudWxs
b3B0KTsKICAgICAgICAgY2hpbGQuc2V0T3ZlcnJpZGluZ0xvZ2ljYWxIZWlnaHQoZGVzaXJlZExv
Z2ljYWxIZWlnaHQpOwogCiAgICAgICAgIC8vIENoZWNraW5nIHRoZSBsb2dpY2FsLWhlaWdodCBv
ZiBhIGNoaWxkIGlzbid0IGVub3VnaC4gU2V0dGluZyBhbiBvdmVycmlkZSBsb2dpY2FsLWhlaWdo
dAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422684</attachid>
            <date>2021-03-09 03:29:10 -0800</date>
            <delta_ts>2021-03-11 07:43:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222376-20210309112908.patch</filename>
            <type>text/plain</type>
            <size>17147</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY2MDY2ZWQ4MWIyZjU3
N2Y1NzgzN2ZhZjgwOWEyYmNhZGNmMjQ0My4uMmMzODU1ZGIyYjAxMzI5ZGFkMDk4Mjg4MTA0MTc2
MTBmZTRhZDA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAzLTA4ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBSZXBsYWNlIHRo
ZSB1c2Ugb2YgLTEgd2l0aCBXVEY6Om51bGxvcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM3NgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJlcGxh
Y2VzIC0xIHdpdGggbnVsbG9wdCBpbiBncmlkIHRvIGluZGljYXRlIGluZGVmaW5pdGUgZm9yIGZ1
bnRpb25zIHRoYXQKKyAgICAgICAgcmV0dXJucyBhbiBPcHRpb25hbCB0eXBlLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhh
dmlvdXIgaXMgZXhwZWN0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cmVwbGFjZWRNaW5NYXhMb2dpY2FsSGVpZ2h0
Q29tcHV0ZXNBc05vbmUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OnBlcmZvcm1HcmlkSXRlbXNQcmVMYXlvdXQgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OmFwcGx5U3RyZXRjaEFsaWdubWVudFRvQ2hpbGRJZk5lZWRlZCBjb25zdCk6ICAgICAgICAKKyAg
ICAgICAgKiByZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6ZXN0aW1hdGVkR3JpZEFyZWFCcmVh
ZHRoRm9yQ2hpbGQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdB
bGdvcml0aG0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGht
OjpncmlkQXJlYUJyZWFkdGhGb3JDaGlsZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0dy
aWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tT
aXppbmdBbGdvcml0aG06Om1pblNpemVGb3JDaGlsZCBjb25zdCk6CisgICAgICAgICogcmVuZGVy
aW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlk
VHJhY2tTaXppbmdBbGdvcml0aG06Om1pblNpemVGb3JDaGlsZCBjb25zdCk6CisKKwogMjAyMS0w
My0wMiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lG
Q10gTWVyZ2UgU2ltcGxpZmllZFZlcnRpY2FsQWxpZ25tZW50IGFuZCBtX3VzZVNpbXBsaWZpZWRW
ZXJ0aWNhbEFsaWdubWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dy
aWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3Jp
ZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcAppbmRleCAyMDU1MTc4YWEzMzc5MTIzNWZkNTRhODYy
MmU3NWZmM2RiZmQ2NjM4Li5jMGFmM2ZjMmIzOGQ3OWQzYzkyMjVkMmNmMzU5YTE5ZTBjMzA0NjIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxn
b3JpdGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtLmNwcApAQCAtNTUxLDEyICs1NTEsMTYgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdB
bGdvcml0aG06OmRpc3RyaWJ1dGVTcGFjZVRvVHJhY2tzKFZlY3RvcjxHcmlkVHJhY2sqPiYgdHJh
Y2sKICAgICAgICAgdHJhY2stPnNldFBsYW5uZWRTaXplKHRyYWNrLT5wbGFubmVkU2l6ZSgpID09
IGluZmluaXR5ID8gdHJhY2stPnRlbXBTaXplKCkgOiBzdGQ6Om1heCh0cmFjay0+cGxhbm5lZFNp
emUoKSwgdHJhY2stPnRlbXBTaXplKCkpKTsKIH0KIAotTGF5b3V0U2l6ZSBHcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG06OmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRl
ckJveCYgY2hpbGQpIGNvbnN0CitPcHRpb25hbDxMYXlvdXRVbml0PiBHcmlkVHJhY2tTaXppbmdB
bGdvcml0aG06OmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkRm9yQ29sdW1ucyhjb25z
dCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdAogewotICAgIHJldHVybiB7ZXN0aW1hdGVkR3JpZEFy
ZWFCcmVhZHRoRm9yQ2hpbGQoY2hpbGQsIEZvckNvbHVtbnMpLCBlc3RpbWF0ZWRHcmlkQXJlYUJy
ZWFkdGhGb3JDaGlsZChjaGlsZCwgRm9yUm93cyl9OworICAgIHJldHVybiBlc3RpbWF0ZWRHcmlk
QXJlYUJyZWFkdGhGb3JDaGlsZChjaGlsZCwgRm9yQ29sdW1ucyk7Cit9CitPcHRpb25hbDxMYXlv
dXRVbml0PiBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0
aEZvckNoaWxkRm9yUm93cyhjb25zdCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdAoreworICAgIHJl
dHVybiBlc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjaGlsZCwgRm9yUm93cyk7CiB9
CiAKLUxheW91dFVuaXQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjplc3RpbWF0ZWRHcmlkQXJl
YUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAorT3B0aW9uYWw8TGF5b3V0VW5pdD4gR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtOjplc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBS
ZW5kZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25z
dAogewogICAgIGNvbnN0IEdyaWRTcGFuJiBzcGFuID0gbV9ncmlkLmdyaWRJdGVtU3BhbihjaGls
ZCwgZGlyZWN0aW9uKTsKICAgICBMYXlvdXRVbml0IGdyaWRBcmVhU2l6ZTsKQEAgLTU3OCwxMSAr
NTgyLDExIEBAIExheW91dFVuaXQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjplc3RpbWF0ZWRH
cmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kCiAKICAgICBHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24gY2hpbGRJbmxpbmVEaXJlY3Rpb24gPSBHcmlkTGF5b3V0RnVuY3Rpb25zOjpmbG93
QXdhcmVEaXJlY3Rpb25Gb3JDaGlsZCgqbV9yZW5kZXJHcmlkLCBjaGlsZCwgRm9yQ29sdW1ucyk7
CiAgICAgaWYgKGdyaWRBcmVhSXNJbmRlZmluaXRlKQotICAgICAgICByZXR1cm4gZGlyZWN0aW9u
ID09IGNoaWxkSW5saW5lRGlyZWN0aW9uID8gc3RkOjptYXgoY2hpbGQubWF4UHJlZmVycmVkTG9n
aWNhbFdpZHRoKCksIGdyaWRBcmVhU2l6ZSkgOiAtMV9sdTsKKyAgICAgICAgcmV0dXJuIGRpcmVj
dGlvbiA9PSBjaGlsZElubGluZURpcmVjdGlvbiA/IG1ha2VPcHRpb25hbChzdGQ6Om1heChjaGls
ZC5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSwgZ3JpZEFyZWFTaXplKSkgOiBXVEY6Om51bGxv
cHQ7CiAgICAgcmV0dXJuIGdyaWRBcmVhU2l6ZTsKIH0KIAotTGF5b3V0VW5pdCBHcmlkVHJhY2tT
aXppbmdBbGdvcml0aG06OmdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYg
Y2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0CitPcHRpb25h
bDxMYXlvdXRVbml0PiBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmdyaWRBcmVhQnJlYWR0aEZv
ckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBk
aXJlY3Rpb24pIGNvbnN0CiB7CiAgICAgYm9vbCBhZGRDb250ZW50QWxpZ25tZW50T2Zmc2V0ID0K
ICAgICAgICAgZGlyZWN0aW9uID09IEZvckNvbHVtbnMgJiYgbV9zaXppbmdTdGF0ZSA9PSBSb3dT
aXppbmdGaXJzdEl0ZXJhdGlvbjsKQEAgLTc1NSw3ICs3NTksNyBAQCBMYXlvdXRVbml0IEdyaWRU
cmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5Ojpsb2dpY2FsSGVpZ2h0Rm9yQ2hpbGQoUmVuZGVy
Qm94JiBjaAogewogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBjaGlsZEJsb2NrRGlyZWN0
aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0aW9uRm9yQ2hpbGQoKnJl
bmRlckdyaWQoKSwgY2hpbGQsIEZvclJvd3MpOwogICAgIC8vIElmIHxjaGlsZHwgaGFzIGEgcmVs
YXRpdmUgbG9naWNhbCBoZWlnaHQsIHdlIHNob3VsZG4ndCBsZXQgaXQgb3ZlcnJpZGUgaXRzIGlu
dHJpbnNpYyBoZWlnaHQsIHdoaWNoIGlzCi0gICAgLy8gd2hhdCB3ZSBhcmUgaW50ZXJlc3RlZCBp
biBoZXJlLiBUaHVzIHdlIG5lZWQgdG8gc2V0IHRoZSBibG9jay1heGlzIG92ZXJyaWRlIHNpemUg
dG8gLTEgKG5vIHBvc3NpYmxlIHJlc29sdXRpb24pLgorICAgIC8vIHdoYXQgd2UgYXJlIGludGVy
ZXN0ZWQgaW4gaGVyZS4gVGh1cyB3ZSBuZWVkIHRvIHNldCB0aGUgYmxvY2stYXhpcyBvdmVycmlk
ZSBzaXplIHRvIG51bGxvcHQgKG5vIHBvc3NpYmxlIHJlc29sdXRpb24pLgogICAgIGlmIChzaG91
bGRDbGVhck92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxkKGNoaWxk
LCBGb3JSb3dzKSkgewogICAgICAgICBzZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVu
dFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRCbG9ja0RpcmVjdGlvbiwgV1RGOjpudWxsb3B0KTsK
ICAgICAgICAgY2hpbGQuc2V0TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKQEAgLTgzMSw4ICs4
MzUsOCBAQCBMYXlvdXRVbml0IEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5OjptaW5T
aXplRm9yQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCkgYwogICAgICAgICByZXR1cm4gbWluU2l6ZTsK
ICAgICB9CiAKLSAgICBMYXlvdXRVbml0IGdyaWRBcmVhU2l6ZSA9IG1fYWxnb3JpdGhtLmdyaWRB
cmVhQnJlYWR0aEZvckNoaWxkKGNoaWxkLCBjaGlsZElubGluZURpcmVjdGlvbik7Ci0gICAgcmV0
dXJuIG1pbkxvZ2ljYWxTaXplRm9yQ2hpbGQoY2hpbGQsIGNoaWxkTWluU2l6ZSwgZ3JpZEFyZWFT
aXplKSArIGJhc2VsaW5lU2hpbTsKKyAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBncmlkQXJlYVNp
emUgPSBtX2FsZ29yaXRobS5ncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjaGlsZCwgY2hpbGRJbmxp
bmVEaXJlY3Rpb24pOworICAgIHJldHVybiBtaW5Mb2dpY2FsU2l6ZUZvckNoaWxkKGNoaWxkLCBj
aGlsZE1pblNpemUsIGdyaWRBcmVhU2l6ZS52YWx1ZU9yKDBfbHUpKSArIGJhc2VsaW5lU2hpbTsK
IH0KIAogYm9vbCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmNhblBhcnRpY2lwYXRlSW5CYXNl
bGluZUFsaWdubWVudChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkQXhpcyBiYXNlbGluZUF4
aXMpIGNvbnN0CkBAIC0xMDUyLDEwICsxMDU2LDExIEBAIExheW91dFVuaXQgSW5kZWZpbml0ZVNp
emVTdHJhdGVneTo6ZnJlZVNwYWNlRm9yU3RyZXRjaEF1dG9UcmFja3NTdGVwKCkgY29uc3QKIExh
eW91dFVuaXQgRGVmaW5pdGVTaXplU3RyYXRlZ3k6Om1pbkxvZ2ljYWxTaXplRm9yQ2hpbGQoUmVu
ZGVyQm94JiBjaGlsZCwgY29uc3QgTGVuZ3RoJiBjaGlsZE1pblNpemUsIExheW91dFVuaXQgYXZh
aWxhYmxlU2l6ZSkgY29uc3QKIHsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gY2hpbGRJ
bmxpbmVEaXJlY3Rpb24gPSBHcmlkTGF5b3V0RnVuY3Rpb25zOjpmbG93QXdhcmVEaXJlY3Rpb25G
b3JDaGlsZCgqcmVuZGVyR3JpZCgpLCBjaGlsZCwgRm9yQ29sdW1ucyk7Ci0gICAgTGF5b3V0VW5p
dCBpbmRlZmluaXRlU2l6ZSA9IGRpcmVjdGlvbigpID09IGNoaWxkSW5saW5lRGlyZWN0aW9uID8g
TGF5b3V0VW5pdCgpIDogTGF5b3V0VW5pdCgtMSk7CiAgICAgR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW9uIGZsb3dBd2FyZURpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURp
cmVjdGlvbkZvckNoaWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkLCBkaXJlY3Rpb24oKSk7Ci0gICAg
aWYgKGhhc1JlbGF0aXZlTWFyZ2luT3JQYWRkaW5nRm9yQ2hpbGQoY2hpbGQsIGZsb3dBd2FyZURp
cmVjdGlvbikgfHwgKGRpcmVjdGlvbigpICE9IGNoaWxkSW5saW5lRGlyZWN0aW9uICYmIGhhc1Jl
bGF0aXZlT3JJbnRyaW5zaWNTaXplRm9yQ2hpbGQoY2hpbGQsIGZsb3dBd2FyZURpcmVjdGlvbikp
KQorICAgIGlmIChoYXNSZWxhdGl2ZU1hcmdpbk9yUGFkZGluZ0ZvckNoaWxkKGNoaWxkLCBmbG93
QXdhcmVEaXJlY3Rpb24pIHx8IChkaXJlY3Rpb24oKSAhPSBjaGlsZElubGluZURpcmVjdGlvbiAm
JiBoYXNSZWxhdGl2ZU9ySW50cmluc2ljU2l6ZUZvckNoaWxkKGNoaWxkLCBmbG93QXdhcmVEaXJl
Y3Rpb24pKSkgeworICAgICAgICBhdXRvIGluZGVmaW5pdGVTaXplID0gZGlyZWN0aW9uKCkgPT0g
Y2hpbGRJbmxpbmVEaXJlY3Rpb24gPyBtYWtlT3B0aW9uYWwoMF9sdSkgOiBXVEY6Om51bGxvcHQ7
CiAgICAgICAgIHNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxk
KGNoaWxkLCBkaXJlY3Rpb24oKSwgaW5kZWZpbml0ZVNpemUpOworICAgIH0KICAgICByZXR1cm4g
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtU3RyYXRlZ3k6Om1pbkxvZ2ljYWxTaXplRm9yQ2hpbGQo
Y2hpbGQsIGNoaWxkTWluU2l6ZSwgYXZhaWxhYmxlU2l6ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaAppbmRleCA0OWNm
NWY3Njg3Y2VjMzc1NzVhNWExMzY5OWJjZmY1NzIzNzI3NTYyLi5kNTg4ODVhYzMyNjg3YTA4OTkx
M2YwNjZhN2RhNWI0MmQ3MjFkY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oCkBAIC0xMTgsOCArMTE4LDEwIEBAIHB1Ymxp
YzoKICAgICBMYXlvdXRVbml0IG1pbkNvbnRlbnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9taW5D
b250ZW50U2l6ZTsgfTsKICAgICBMYXlvdXRVbml0IG1heENvbnRlbnRTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXhDb250ZW50U2l6ZTsgfTsKIAotICAgIExheW91dFNpemUgZXN0aW1hdGVkR3Jp
ZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAgICAgTGF5b3V0
VW5pdCBiYXNlbGluZU9mZnNldEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRBeGlzKSBj
b25zdDsKKyAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBlc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhG
b3JDaGlsZEZvckNvbHVtbnMoY29uc3QgUmVuZGVyQm94JiBjaGlsZCkgY29uc3Q7CisgICAgT3B0
aW9uYWw8TGF5b3V0VW5pdD4gZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGRGb3JSb3dz
KGNvbnN0IFJlbmRlckJveCYgY2hpbGQpIGNvbnN0OworCiAKICAgICB2b2lkIGNhY2hlQmFzZWxp
bmVBbGlnbmVkSXRlbShjb25zdCBSZW5kZXJCb3gmLCBHcmlkQXhpcyk7CiAgICAgdm9pZCBjb3B5
QmFzZWxpbmVJdGVtc0NhY2hlKGNvbnN0IEdyaWRUcmFja1NpemluZ0FsZ29yaXRobSYsIEdyaWRB
eGlzKTsKQEAgLTE1OSw4ICsxNjEsOCBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxUcmFja1Np
emVDb21wdXRhdGlvblBoYXNlIHBoYXNlPiB2b2lkIGluY3JlYXNlU2l6ZXNUb0FjY29tbW9kYXRl
U3Bhbm5pbmdJdGVtcyhjb25zdCBHcmlkSXRlbXNTcGFuR3JvdXBSYW5nZSYgZ3JpZEl0ZW1zV2l0
aFNwYW4pOwogICAgIExheW91dFVuaXQgaXRlbVNpemVGb3JUcmFja1NpemVDb21wdXRhdGlvblBo
YXNlKFRyYWNrU2l6ZUNvbXB1dGF0aW9uUGhhc2UsIFJlbmRlckJveCYpIGNvbnN0OwogICAgIHRl
bXBsYXRlIDxUcmFja1NpemVDb21wdXRhdGlvblBoYXNlIHBoYXNlPiB2b2lkIGRpc3RyaWJ1dGVT
cGFjZVRvVHJhY2tzKFZlY3RvcjxHcmlkVHJhY2sqPiYgdHJhY2tzLCBWZWN0b3I8R3JpZFRyYWNr
Kj4qIGdyb3dCZXlvbmRHcm93dGhMaW1pdHNUcmFja3MsIExheW91dFVuaXQmIGF2YWlsYWJsZUxv
Z2ljYWxTcGFjZSkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBlc3RpbWF0ZWRHcmlkQXJlYUJyZWFk
dGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNv
bnN0OwotICAgIExheW91dFVuaXQgZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVy
Qm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKKyAgICBPcHRpb25hbDxMYXlv
dXRVbml0PiBlc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gm
LCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OworICAgIE9wdGlvbmFsPExheW91dFVu
aXQ+IGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbikgY29uc3Q7CiAKICAgICB2b2lkIGNvbXB1dGVCYXNlbGluZUFsaWdubWVu
dENvbnRleHQoKTsKICAgICB2b2lkIHVwZGF0ZUJhc2VsaW5lQWxpZ25tZW50Q29udGV4dChjb25z
dCBSZW5kZXJCb3gmLCBHcmlkQXhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCmluZGV4IDUzZmQwZjBmMzhjYTVhZmQxMDc5ZmRjMzQwNzQ4YjE0YzljMjkwMDAuLjQ0MmE3
ZWY1MTg3MjFjMWFhZmE3ZDNjYzMzZjhlMTI5ZDc2ZTEyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwCkBAIC0zMjU1LDcgKzMyNTUsNyBAQCBib29sIFJlbmRlckJveDo6
cmVwbGFjZWRNaW5NYXhMb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoU2l6ZVR5cGUgc2l6ZVR5
cGUpIGNvbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICBpZiAobG9naWNhbEhlaWdo
dC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSAmJiBoYXNPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2Nr
Q29udGVudExvZ2ljYWxIZWlnaHQoKSkKLSAgICAgICAgcmV0dXJuIG92ZXJyaWRpbmdDb250YWlu
aW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpID09IExheW91dFVuaXQoLTEpOworICAgICAg
ICByZXR1cm4gb3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkg
PT0gV1RGOjpudWxsb3B0OwogCiAgICAgLy8gTWFrZSBzdXJlICUgbWluLWhlaWdodCBhbmQgJSBt
YXgtaGVpZ2h0IHJlc29sdmUgdG8gbm9uZSBpZiB0aGUgY29udGFpbmluZyBibG9jayBoYXMgYXV0
byBoZWlnaHQuCiAgICAgLy8gTm90ZSB0aGF0IHRoZSAiaGVpZ2h0IiBjYXNlIGZvciByZXBsYWNl
ZCBlbGVtZW50cyB3YXMgaGFuZGxlZCBieSBoYXNSZXBsYWNlZExvZ2ljYWxIZWlnaHQsIHdoaWNo
IGlzIHdoeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDYyZWNl
M2NjMDU1MGRlM2FiYTViMmFkZDFiZTNjNmFkOTQzNTVhYzYuLmUzMmNhZjY0NDdhNDJkMzRmYTg4
YTA0MzUzYzY5MTgzZGFkZTU3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHAKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdy
aWQoR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBhbGdvcml0aG0sIE9wdGlvbmFsPAogICAgICAg
ICBpZiAoIWNoaWxkLT5oYXNPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxX
aWR0aCgpKQogICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tD
b250ZW50TG9naWNhbFdpZHRoKExheW91dFVuaXQoKSk7CiAgICAgICAgIGlmICghY2hpbGQtPmhh
c092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpKQotICAgICAg
ICAgICAgY2hpbGQtPnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhl
aWdodChMYXlvdXRVbml0KC0xKSk7CisgICAgICAgICAgICBjaGlsZC0+c2V0T3ZlcnJpZGluZ0Nv
bnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KFdURjo6bnVsbG9wdCk7CiAKICAgICAg
ICAgR3JpZEFyZWEgYXJlYSA9IGdyaWQuZ3JpZEl0ZW1BcmVhKCpjaGlsZCk7CiAgICAgICAgIGlm
ICghYXJlYS5yb3dzLmlzSW5kZWZpbml0ZSgpKQpAQCAtNjcyLDcgKzY3Miw3IEBAIHZvaWQgUmVu
ZGVyR3JpZDo6cGVyZm9ybUdyaWRJdGVtc1ByZUxheW91dChjb25zdCBHcmlkVHJhY2tTaXppbmdB
bGdvcml0aG0mIGFsZ29yCiAgICAgICAgIC8vIE9ydGhvZ29uYWwgaXRlbXMgc2hvdWxkIGJlIGxh
aWQgb3V0IGluIG9yZGVyIHRvIHByb3Blcmx5IGNvbXB1dGUgY29udGVudC1zaXplZCB0cmFja3Mg
dGhhdCBtYXkgZGVwZW5kIG9uIGl0ZW0ncyBpbnRyaW5zaWMgc2l6ZS4KICAgICAgICAgLy8gV2Ug
YWxzbyBuZWVkIHRvIHByb3Blcmx5IGVzdGltYXRlIGl0cyBncmlkIGFyZWEgc2l6ZSwgc2luY2Ug
aXQgbWF5IGFmZmVjdCB0byB0aGUgYmFzZWxpbmUgc2hpbXMgaWYgc3VjaCBpdGVtIHBhcnRpY2lh
cHRlcyBpbiBiYXNlbGluZSBhbGlnbm1lbnQuIAogICAgICAgICBpZiAoR3JpZExheW91dEZ1bmN0
aW9uczo6aXNPcnRob2dvbmFsQ2hpbGQoKnRoaXMsICpjaGlsZCkpIHsKLSAgICAgICAgICAgIHVw
ZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoKmNoaWxkLCBhbGdvcml0aG0uZXN0aW1hdGVkR3JpZEFy
ZWFCcmVhZHRoRm9yQ2hpbGQoKmNoaWxkKSk7CisgICAgICAgICAgICB1cGRhdGVHcmlkQXJlYUxv
Z2ljYWxTaXplKCpjaGlsZCwgYWxnb3JpdGhtLmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNo
aWxkRm9yQ29sdW1ucygqY2hpbGQpLCBhbGdvcml0aG0uZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRo
Rm9yQ2hpbGRGb3JSb3dzKCpjaGlsZCkpOwogICAgICAgICAgICAgY2hpbGQtPmxheW91dElmTmVl
ZGVkKCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNjgwLDcgKzY4MCw3
IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGVyZm9ybUdyaWRJdGVtc1ByZUxheW91dChjb25zdCBHcmlk
VHJhY2tTaXppbmdBbGdvcml0aG0mIGFsZ29yCiAgICAgICAgIC8vIGJhc2VsaW5lIG9yIG5vdCwg
d2hpY2ggbWF5IGltcGx5IGEgY3ljbGljIHNpemluZyBkZXBlbmRlbmN5LgogICAgICAgICAvLyBG
SVhNRTogQ2FuIHdlIGF2b2lkIGl0ID8KICAgICAgICAgaWYgKGlzQmFzZWxpbmVBbGlnbm1lbnRG
b3JDaGlsZCgqY2hpbGQpKSB7Ci0gICAgICAgICAgICB1cGRhdGVHcmlkQXJlYUxvZ2ljYWxTaXpl
KCpjaGlsZCwgYWxnb3JpdGhtLmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKCpjaGls
ZCkpOworICAgICAgICAgICAgdXBkYXRlR3JpZEFyZWFMb2dpY2FsU2l6ZSgqY2hpbGQsIGFsZ29y
aXRobS5lc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZEZvckNvbHVtbnMoKmNoaWxkKSwg
YWxnb3JpdGhtLmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkRm9yUm93cygqY2hpbGQp
KTsKICAgICAgICAgICAgIGNoaWxkLT5sYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICB9CiAgICAg
fQpAQCAtODk5LDExICs4OTksMTEgQEAgc3RhdGljIGNvbnN0IFN0eWxlQ29udGVudEFsaWdubWVu
dERhdGEmIGNvbnRlbnRBbGlnbm1lbnROb3JtYWxCZWhhdmlvckdyaWQoKQogICAgIHJldHVybiBu
b3JtYWxCZWhhdmlvcjsKIH0KIAotc3RhdGljIGJvb2wgb3ZlcnJpZGVTaXplQ2hhbmdlZChjb25z
dCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBM
YXlvdXRTaXplIHNpemUpCitzdGF0aWMgYm9vbCBvdmVycmlkZVNpemVDaGFuZ2VkKGNvbnN0IFJl
bmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIE9wdGlv
bmFsPExheW91dFVuaXQ+IHdpZHRoLCBPcHRpb25hbDxMYXlvdXRVbml0PiBoZWlnaHQpCiB7CiAg
ICAgaWYgKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKQotICAgICAgICByZXR1cm4gIWNoaWxkLmhh
c092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKCkgfHwgY2hpbGQu
b3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoKSAhPSBzaXplLndp
ZHRoKCk7Ci0gICAgcmV0dXJuICFjaGlsZC5oYXNPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29u
dGVudExvZ2ljYWxIZWlnaHQoKSB8fCBjaGlsZC5vdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29u
dGVudExvZ2ljYWxIZWlnaHQoKSAhPSBzaXplLmhlaWdodCgpOworICAgICAgICByZXR1cm4gIWNo
aWxkLmhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKCkgfHwg
Y2hpbGQub3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoKSAhPSB3
aWR0aDsKKyAgICByZXR1cm4gIWNoaWxkLmhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250
ZW50TG9naWNhbEhlaWdodCgpIHx8IGNoaWxkLm92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250
ZW50TG9naWNhbEhlaWdodCgpICE9IGhlaWdodDsKIH0KIAogc3RhdGljIGJvb2wgaGFzUmVsYXRp
dmVCbG9ja0F4aXNTaXplKGNvbnN0IFJlbmRlckdyaWQmIGdyaWQsIGNvbnN0IFJlbmRlckJveCYg
Y2hpbGQpCkBAIC05MTEsMTcgKzkxMSwxNyBAQCBzdGF0aWMgYm9vbCBoYXNSZWxhdGl2ZUJsb2Nr
QXhpc1NpemUoY29uc3QgUmVuZGVyR3JpZCYgZ3JpZCwgY29uc3QgUmVuZGVyQm94JiBjaAogICAg
IHJldHVybiBHcmlkTGF5b3V0RnVuY3Rpb25zOjppc09ydGhvZ29uYWxDaGlsZChncmlkLCBjaGls
ZCkgPyBjaGlsZC5oYXNSZWxhdGl2ZUxvZ2ljYWxXaWR0aCgpIHx8IGNoaWxkLnN0eWxlKCkubG9n
aWNhbFdpZHRoKCkuaXNBdXRvKCkgOiBjaGlsZC5oYXNSZWxhdGl2ZUxvZ2ljYWxIZWlnaHQoKTsK
IH0KIAotdm9pZCBSZW5kZXJHcmlkOjp1cGRhdGVHcmlkQXJlYUxvZ2ljYWxTaXplKFJlbmRlckJv
eCYgY2hpbGQsIExheW91dFNpemUgZ3JpZEFyZWFMb2dpY2FsU2l6ZSkgY29uc3QKK3ZvaWQgUmVu
ZGVyR3JpZDo6dXBkYXRlR3JpZEFyZWFMb2dpY2FsU2l6ZShSZW5kZXJCb3gmIGNoaWxkLCBPcHRp
b25hbDxMYXlvdXRVbml0PiB3aWR0aCwgT3B0aW9uYWw8TGF5b3V0VW5pdD4gaGVpZ2h0KSBjb25z
dAogewogICAgIC8vIEJlY2F1c2UgdGhlIGdyaWQgYXJlYSBjYW5ub3QgYmUgc3R5bGVkLCB3ZSBk
b24ndCBuZWVkIHRvIGFkanVzdAogICAgIC8vIHRoZSBncmlkIGJyZWFkdGggdG8gYWNjb3VudCBm
b3IgJ2JveC1zaXppbmcnLgotICAgIGJvb2wgZ3JpZEFyZWFXaWR0aENoYW5nZWQgPSBvdmVycmlk
ZVNpemVDaGFuZ2VkKGNoaWxkLCBGb3JDb2x1bW5zLCBncmlkQXJlYUxvZ2ljYWxTaXplKTsKLSAg
ICBib29sIGdyaWRBcmVhSGVpZ2h0Q2hhbmdlZCA9IG92ZXJyaWRlU2l6ZUNoYW5nZWQoY2hpbGQs
IEZvclJvd3MsIGdyaWRBcmVhTG9naWNhbFNpemUpOworICAgIGJvb2wgZ3JpZEFyZWFXaWR0aENo
YW5nZWQgPSBvdmVycmlkZVNpemVDaGFuZ2VkKGNoaWxkLCBGb3JDb2x1bW5zLCB3aWR0aCwgaGVp
Z2h0KTsKKyAgICBib29sIGdyaWRBcmVhSGVpZ2h0Q2hhbmdlZCA9IG92ZXJyaWRlU2l6ZUNoYW5n
ZWQoY2hpbGQsIEZvclJvd3MsIHdpZHRoLCBoZWlnaHQpOwogICAgIGlmIChncmlkQXJlYVdpZHRo
Q2hhbmdlZCB8fCAoZ3JpZEFyZWFIZWlnaHRDaGFuZ2VkICYmIGhhc1JlbGF0aXZlQmxvY2tBeGlz
U2l6ZSgqdGhpcywgY2hpbGQpKSkKICAgICAgICAgY2hpbGQuc2V0TmVlZHNMYXlvdXQoTWFya09u
bHlUaGlzKTsKIAotICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50
TG9naWNhbFdpZHRoKGdyaWRBcmVhTG9naWNhbFNpemUud2lkdGgoKSk7Ci0gICAgY2hpbGQuc2V0
T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KGdyaWRBcmVhTG9n
aWNhbFNpemUuaGVpZ2h0KCkpOworICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxv
Y2tDb250ZW50TG9naWNhbFdpZHRoKHdpZHRoKTsKKyAgICBjaGlsZC5zZXRPdmVycmlkaW5nQ29u
dGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoaGVpZ2h0KTsKIH0KIAogdm9pZCBSZW5k
ZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQpAQCAtOTQwLDcgKzk0MCw3IEBAIHZvaWQgUmVuZGVy
R3JpZDo6bGF5b3V0R3JpZEl0ZW1zKCkKICAgICAgICAgLy8gU2V0dGluZyB0aGUgZGVmaW5pdGUg
Z3JpZCBhcmVhJ3Mgc2l6ZXMuIEl0IG1heSBpbXBseSB0aGF0IHRoZQogICAgICAgICAvLyBpdGVt
IG11c3QgcGVyZm9ybSBhIGxheW91dCBpZiBpdHMgYXJlYSBkaWZmZXJzIGZyb20gdGhlIG9uZQog
ICAgICAgICAvLyB1c2VkIGR1cmluZyB0aGUgdHJhY2sgc2l6aW5nIGFsZ29yaXRobS4KLSAgICAg
ICAgdXBkYXRlR3JpZEFyZWFMb2dpY2FsU2l6ZSgqY2hpbGQsIExheW91dFNpemUoZ3JpZEFyZWFC
cmVhZHRoRm9yQ2hpbGRJbmNsdWRpbmdBbGlnbm1lbnRPZmZzZXRzKCpjaGlsZCwgRm9yQ29sdW1u
cyksIGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkSW5jbHVkaW5nQWxpZ25tZW50T2Zmc2V0cygqY2hp
bGQsIEZvclJvd3MpKSk7CisgICAgICAgIHVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoKmNoaWxk
LCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZEluY2x1ZGluZ0FsaWdubWVudE9mZnNldHMoKmNoaWxk
LCBGb3JDb2x1bW5zKSwgZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGRJbmNsdWRpbmdBbGlnbm1lbnRP
ZmZzZXRzKCpjaGlsZCwgRm9yUm93cykpOwogCiAgICAgICAgIExheW91dFJlY3Qgb2xkQ2hpbGRS
ZWN0ID0gY2hpbGQtPmZyYW1lUmVjdCgpOwogCkBAIC0xMTM2LDcgKzExMzYsNyBAQCB2b2lkIFJl
bmRlckdyaWQ6OmFwcGx5U3RyZXRjaEFsaWdubWVudFRvQ2hpbGRJZk5lZWRlZChSZW5kZXJCb3gm
IGNoaWxkKQogICAgIGJvb2wgYWxsb3dlZFRvU3RyZXRjaENoaWxkQmxvY2tTaXplID0gYmxvY2tG
bG93SXNDb2x1bW5BeGlzID8gYWxsb3dlZFRvU3RyZXRjaENoaWxkQWxvbmdDb2x1bW5BeGlzKGNo
aWxkKSA6IGFsbG93ZWRUb1N0cmV0Y2hDaGlsZEFsb25nUm93QXhpcyhjaGlsZCk7CiAgICAgaWYg
KGFsbG93ZWRUb1N0cmV0Y2hDaGlsZEJsb2NrU2l6ZSkgewogICAgICAgICBMYXlvdXRVbml0IHN0
cmV0Y2hlZExvZ2ljYWxIZWlnaHQgPSBhdmFpbGFibGVBbGlnbm1lbnRTcGFjZUZvckNoaWxkQmVm
b3JlU3RyZXRjaGluZyhHcmlkTGF5b3V0RnVuY3Rpb25zOjpvdmVycmlkaW5nQ29udGFpbmluZ0Js
b2NrQ29udGVudFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRCbG9ja0RpcmVjdGlvbikudmFsdWUo
KSwgY2hpbGQpOwotICAgICAgICBMYXlvdXRVbml0IGRlc2lyZWRMb2dpY2FsSGVpZ2h0ID0gY2hp
bGQuY29uc3RyYWluTG9naWNhbEhlaWdodEJ5TWluTWF4KHN0cmV0Y2hlZExvZ2ljYWxIZWlnaHQs
IC0xX2x1KTsKKyAgICAgICAgTGF5b3V0VW5pdCBkZXNpcmVkTG9naWNhbEhlaWdodCA9IGNoaWxk
LmNvbnN0cmFpbkxvZ2ljYWxIZWlnaHRCeU1pbk1heChzdHJldGNoZWRMb2dpY2FsSGVpZ2h0LCBX
VEY6Om51bGxvcHQpOwogICAgICAgICBjaGlsZC5zZXRPdmVycmlkaW5nTG9naWNhbEhlaWdodChk
ZXNpcmVkTG9naWNhbEhlaWdodCk7CiAKICAgICAgICAgLy8gQ2hlY2tpbmcgdGhlIGxvZ2ljYWwt
aGVpZ2h0IG9mIGEgY2hpbGQgaXNuJ3QgZW5vdWdoLiBTZXR0aW5nIGFuIG92ZXJyaWRlIGxvZ2lj
YWwtaGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCA3Y2JkOGRk
ZTY0ZmVkZmUyODU1OGE4YjMzNDY0ODA0ZmMyYTBmYTBjLi43YWZjODEyNWIyNmJmOTU1MTc4N2U5
NmM2NWQ3NjY4MDM5NmEzYWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgK
QEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIExheW91dFVuaXQgZ3V0dGVyc1NpemUoY29u
c3QgR3JpZCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgdW5zaWduZWQgc3RhcnRMaW5lLCB1
bnNpZ25lZCBzcGFuLCBPcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVTaXplKSBjb25zdDsK
ICAgICBMYXlvdXRVbml0IGdyaWRJdGVtT2Zmc2V0KEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikg
Y29uc3Q7CiAKLSAgICB2b2lkIHVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoUmVuZGVyQm94Jiwg
TGF5b3V0U2l6ZSkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVHcmlkQXJlYUxvZ2ljYWxTaXplKFJl
bmRlckJveCYgY2hpbGQsIE9wdGlvbmFsPExheW91dFVuaXQ+IHdpZHRoLCBPcHRpb25hbDxMYXlv
dXRVbml0PiBoZWlnaHQpIGNvbnN0OwogICAgIGJvb2wgaXNCYXNlbGluZUFsaWdubWVudEZvckNo
aWxkKGNvbnN0IFJlbmRlckJveCYpIGNvbnN0OwogICAgIGJvb2wgaXNCYXNlbGluZUFsaWdubWVu
dEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRBeGlzKSBjb25zdDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422930</attachid>
            <date>2021-03-11 07:43:30 -0800</date>
            <delta_ts>2021-03-12 01:42:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222376-20210311154329.patch</filename>
            <type>text/plain</type>
            <size>17507</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdlMWI4ODk4NDRlN2Q1
ZDgzYWZkNDk5ODA0M2Y0NmIwODZhMzUwYy4uZmZkZDI3ODY2ZDZjZmM3NmUzMWEwY2YwODhmMmY3
YjU3ZGM0Y2Y3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTAzLTA4ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBSZXBsYWNlIHRo
ZSB1c2Ugb2YgLTEgd2l0aCBXVEY6Om51bGxvcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM3NgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJlcGxh
Y2VzIC0xIHdpdGggbnVsbG9wdCBpbiBncmlkIHRvIGluZGljYXRlIGluZGVmaW5pdGUgZm9yIGZ1
bnRpb25zIHRoYXQKKyAgICAgICAgcmV0dXJucyBhbiBPcHRpb25hbCB0eXBlLiBUaGlzIGNoYW5n
ZSBoYXMgZXhwb3NlZCBhbiBpc3N1ZSB3aGVuIHJlc29sdmluZyByZXBhbGNlZCBlbGVtbnQKKyAg
ICAgICAgZGVmaW5pdGVuZXNzIGFzIGEgZ3JpZC1pdGVtIHdpdGggcmVzcGVjdCB0byBhc3BlY3Qt
cmF0aW8uIFRoZSBmaXggaXMgdGhhdCB3aGVuIGNoZWNraW5nIGZvcgorICAgICAgICBoYXNSZXBs
YWNlZExvZ2ljYWxIZWlnaHQoKSwgZm9yIGZpeGVkIGl0ZW0gd2Ugc2hvdWxkIGp1c3QgcmV0dXJu
IHRydWUgd2hpbGUgZm9yIHBlcmNlbnQgb3IKKyAgICAgICAgY2FsY3VsYXRlZCBpdGVtcyB3ZSBr
ZWVwIHRoZSBjaGVjayBpdCBpcy4KKyAgICAgICAgIAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvdXIgaXMgZXhwZWN0
ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6cmVwbGFjZWRNaW5NYXhMb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBl
cmZvcm1HcmlkSXRlbXNQcmVMYXlvdXQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFwcGx5U3RyZXRjaEFs
aWdubWVudFRvQ2hpbGRJZk5lZWRlZCBjb25zdCk6ICAgICAgICAKKyAgICAgICAgKiByZW5kZXJp
bmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRU
cmFja1NpemluZ0FsZ29yaXRobTo6ZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpncmlkQXJlYUJyZWFk
dGhGb3JDaGlsZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0Fs
Z29yaXRobS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06
Om1pblNpemVGb3JDaGlsZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0dyaWRUcmFja1Np
emluZ0FsZ29yaXRobS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXppbmdBbGdv
cml0aG06Om1pblNpemVGb3JDaGlsZCBjb25zdCk6CisKKwogMjAyMS0wMy0wOSAgQ2hyaXMgTG9y
ZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWxsb3cgY3JlYXRpb24gb2YgYSBDU1NG
b250U2VsZWN0b3Igd2l0aCBhIG5vbi1Eb2N1bWVudCBTY3JpcHRFeGVjdXRpb25Db250ZXh0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3Jp
dGhtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0
aG0uY3BwCmluZGV4IDIwNTUxNzhhYTMzNzkxMjM1ZmQ1NGE4NjIyZTc1ZmYzZGJmZDY2MzguLjFh
ZDg4ZDE4MWQ2ODNmNmQxODAwZGVhOTMxODFhZjI0MzYxOWE0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCkBAIC01
NTEsMTIgKzU1MSw3IEBAIHZvaWQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpkaXN0cmlidXRl
U3BhY2VUb1RyYWNrcyhWZWN0b3I8R3JpZFRyYWNrKj4mIHRyYWNrCiAgICAgICAgIHRyYWNrLT5z
ZXRQbGFubmVkU2l6ZSh0cmFjay0+cGxhbm5lZFNpemUoKSA9PSBpbmZpbml0eSA/IHRyYWNrLT50
ZW1wU2l6ZSgpIDogc3RkOjptYXgodHJhY2stPnBsYW5uZWRTaXplKCksIHRyYWNrLT50ZW1wU2l6
ZSgpKSk7CiB9CiAKLUxheW91dFNpemUgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjplc3RpbWF0
ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdAot
ewotICAgIHJldHVybiB7ZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY2hpbGQsIEZv
ckNvbHVtbnMpLCBlc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjaGlsZCwgRm9yUm93
cyl9OwotfQotCi1MYXlvdXRVbml0IEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6ZXN0aW1hdGVk
R3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKK09wdGlvbmFsPExheW91dFVuaXQ+IEdy
aWRUcmFja1NpemluZ0FsZ29yaXRobTo6ZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQo
Y29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlv
bikgY29uc3QKIHsKICAgICBjb25zdCBHcmlkU3BhbiYgc3BhbiA9IG1fZ3JpZC5ncmlkSXRlbVNw
YW4oY2hpbGQsIGRpcmVjdGlvbik7CiAgICAgTGF5b3V0VW5pdCBncmlkQXJlYVNpemU7CkBAIC01
NzgsMTEgKzU3MywxMSBAQCBMYXlvdXRVbml0IEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6ZXN0
aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZAogCiAgICAgR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW9uIGNoaWxkSW5saW5lRGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9u
czo6Zmxvd0F3YXJlRGlyZWN0aW9uRm9yQ2hpbGQoKm1fcmVuZGVyR3JpZCwgY2hpbGQsIEZvckNv
bHVtbnMpOwogICAgIGlmIChncmlkQXJlYUlzSW5kZWZpbml0ZSkKLSAgICAgICAgcmV0dXJuIGRp
cmVjdGlvbiA9PSBjaGlsZElubGluZURpcmVjdGlvbiA/IHN0ZDo6bWF4KGNoaWxkLm1heFByZWZl
cnJlZExvZ2ljYWxXaWR0aCgpLCBncmlkQXJlYVNpemUpIDogLTFfbHU7CisgICAgICAgIHJldHVy
biBkaXJlY3Rpb24gPT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gPyBtYWtlT3B0aW9uYWwoc3RkOjpt
YXgoY2hpbGQubWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCksIGdyaWRBcmVhU2l6ZSkpIDogV1RG
OjpudWxsb3B0OwogICAgIHJldHVybiBncmlkQXJlYVNpemU7CiB9CiAKLUxheW91dFVuaXQgR3Jp
ZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5k
ZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAor
T3B0aW9uYWw8TGF5b3V0VW5pdD4gR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpncmlkQXJlYUJy
ZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24gZGlyZWN0aW9uKSBjb25zdAogewogICAgIGJvb2wgYWRkQ29udGVudEFsaWdubWVudE9m
ZnNldCA9CiAgICAgICAgIGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zICYmIG1fc2l6aW5nU3RhdGUg
PT0gUm93U2l6aW5nRmlyc3RJdGVyYXRpb247CkBAIC03NTUsNyArNzUwLDcgQEAgTGF5b3V0VW5p
dCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG1TdHJhdGVneTo6bG9naWNhbEhlaWdodEZvckNoaWxk
KFJlbmRlckJveCYgY2gKIHsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gY2hpbGRCbG9j
a0RpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlvbkZvckNo
aWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkLCBGb3JSb3dzKTsKICAgICAvLyBJZiB8Y2hpbGR8IGhh
cyBhIHJlbGF0aXZlIGxvZ2ljYWwgaGVpZ2h0LCB3ZSBzaG91bGRuJ3QgbGV0IGl0IG92ZXJyaWRl
IGl0cyBpbnRyaW5zaWMgaGVpZ2h0LCB3aGljaCBpcwotICAgIC8vIHdoYXQgd2UgYXJlIGludGVy
ZXN0ZWQgaW4gaGVyZS4gVGh1cyB3ZSBuZWVkIHRvIHNldCB0aGUgYmxvY2stYXhpcyBvdmVycmlk
ZSBzaXplIHRvIC0xIChubyBwb3NzaWJsZSByZXNvbHV0aW9uKS4KKyAgICAvLyB3aGF0IHdlIGFy
ZSBpbnRlcmVzdGVkIGluIGhlcmUuIFRodXMgd2UgbmVlZCB0byBzZXQgdGhlIGJsb2NrLWF4aXMg
b3ZlcnJpZGUgc2l6ZSB0byBudWxsb3B0IChubyBwb3NzaWJsZSByZXNvbHV0aW9uKS4KICAgICBp
ZiAoc2hvdWxkQ2xlYXJPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpemVGb3JDaGls
ZChjaGlsZCwgRm9yUm93cykpIHsKICAgICAgICAgc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9j
a0NvbnRlbnRTaXplRm9yQ2hpbGQoY2hpbGQsIGNoaWxkQmxvY2tEaXJlY3Rpb24sIFdURjo6bnVs
bG9wdCk7CiAgICAgICAgIGNoaWxkLnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CkBAIC04
MzEsNyArODI2LDggQEAgTGF5b3V0VW5pdCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG1TdHJhdGVn
eTo6bWluU2l6ZUZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQpIGMKICAgICAgICAgcmV0dXJuIG1p
blNpemU7CiAgICAgfQogCi0gICAgTGF5b3V0VW5pdCBncmlkQXJlYVNpemUgPSBtX2FsZ29yaXRo
bS5ncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjaGlsZCwgY2hpbGRJbmxpbmVEaXJlY3Rpb24pOwor
ICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgYWRkIGFuIEFTU0VSVCB0byBlbnN1cmUgb3B0aW9uYWwg
aXMgbmV2ZXIgbnVsbG9wdCBpbiB0aGUgaW5saW5lLWF4aXMgPworICAgIExheW91dFVuaXQgZ3Jp
ZEFyZWFTaXplID0gbV9hbGdvcml0aG0uZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY2hpbGQsIGNo
aWxkSW5saW5lRGlyZWN0aW9uKS52YWx1ZU9yKDApOwogICAgIHJldHVybiBtaW5Mb2dpY2FsU2l6
ZUZvckNoaWxkKGNoaWxkLCBjaGlsZE1pblNpemUsIGdyaWRBcmVhU2l6ZSkgKyBiYXNlbGluZVNo
aW07CiB9CiAKQEAgLTEwNTIsMTAgKzEwNDgsMTEgQEAgTGF5b3V0VW5pdCBJbmRlZmluaXRlU2l6
ZVN0cmF0ZWd5OjpmcmVlU3BhY2VGb3JTdHJldGNoQXV0b1RyYWNrc1N0ZXAoKSBjb25zdAogTGF5
b3V0VW5pdCBEZWZpbml0ZVNpemVTdHJhdGVneTo6bWluTG9naWNhbFNpemVGb3JDaGlsZChSZW5k
ZXJCb3gmIGNoaWxkLCBjb25zdCBMZW5ndGgmIGNoaWxkTWluU2l6ZSwgTGF5b3V0VW5pdCBhdmFp
bGFibGVTaXplKSBjb25zdAogewogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBjaGlsZElu
bGluZURpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlvbkZv
ckNoaWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkLCBGb3JDb2x1bW5zKTsKLSAgICBMYXlvdXRVbml0
IGluZGVmaW5pdGVTaXplID0gZGlyZWN0aW9uKCkgPT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gPyBM
YXlvdXRVbml0KCkgOiBMYXlvdXRVbml0KC0xKTsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rp
b24gZmxvd0F3YXJlRGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGly
ZWN0aW9uRm9yQ2hpbGQoKnJlbmRlckdyaWQoKSwgY2hpbGQsIGRpcmVjdGlvbigpKTsKLSAgICBp
ZiAoaGFzUmVsYXRpdmVNYXJnaW5PclBhZGRpbmdGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGly
ZWN0aW9uKSB8fCAoZGlyZWN0aW9uKCkgIT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gJiYgaGFzUmVs
YXRpdmVPckludHJpbnNpY1NpemVGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGlyZWN0aW9uKSkp
CisgICAgaWYgKGhhc1JlbGF0aXZlTWFyZ2luT3JQYWRkaW5nRm9yQ2hpbGQoY2hpbGQsIGZsb3dB
d2FyZURpcmVjdGlvbikgfHwgKGRpcmVjdGlvbigpICE9IGNoaWxkSW5saW5lRGlyZWN0aW9uICYm
IGhhc1JlbGF0aXZlT3JJbnRyaW5zaWNTaXplRm9yQ2hpbGQoY2hpbGQsIGZsb3dBd2FyZURpcmVj
dGlvbikpKSB7CisgICAgICAgIGF1dG8gaW5kZWZpbml0ZVNpemUgPSBkaXJlY3Rpb24oKSA9PSBj
aGlsZElubGluZURpcmVjdGlvbiA/IG1ha2VPcHRpb25hbCgwX2x1KSA6IFdURjo6bnVsbG9wdDsK
ICAgICAgICAgc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQo
Y2hpbGQsIGRpcmVjdGlvbigpLCBpbmRlZmluaXRlU2l6ZSk7CisgICAgfQogICAgIHJldHVybiBH
cmlkVHJhY2tTaXppbmdBbGdvcml0aG1TdHJhdGVneTo6bWluTG9naWNhbFNpemVGb3JDaGlsZChj
aGlsZCwgY2hpbGRNaW5TaXplLCBhdmFpbGFibGVTaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oCmluZGV4IDQ5Y2Y1
Zjc2ODdjZWMzNzU3NWE1YTEzNjk5YmNmZjU3MjM3Mjc1NjIuLmFjZWZmYTY5MTM3ZjVmMjQ2ZmM3
MDJhZDNiZTI2N2RmNWY3ZDg3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmgKQEAgLTExOCw4ICsxMTgsOCBAQCBwdWJsaWM6
CiAgICAgTGF5b3V0VW5pdCBtaW5Db250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluQ29u
dGVudFNpemU7IH07CiAgICAgTGF5b3V0VW5pdCBtYXhDb250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWF4Q29udGVudFNpemU7IH07CiAKLSAgICBMYXlvdXRTaXplIGVzdGltYXRlZEdyaWRB
cmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYpIGNvbnN0OwogICAgIExheW91dFVu
aXQgYmFzZWxpbmVPZmZzZXRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmLCBHcmlkQXhpcykgY29u
c3Q7CisgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9y
Q2hpbGQoY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsK
IAogICAgIHZvaWQgY2FjaGVCYXNlbGluZUFsaWduZWRJdGVtKGNvbnN0IFJlbmRlckJveCYsIEdy
aWRBeGlzKTsKICAgICB2b2lkIGNvcHlCYXNlbGluZUl0ZW1zQ2FjaGUoY29uc3QgR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtJiwgR3JpZEF4aXMpOwpAQCAtMTU5LDggKzE1OSw3IEBAIHByaXZhdGU6
CiAgICAgdGVtcGxhdGUgPFRyYWNrU2l6ZUNvbXB1dGF0aW9uUGhhc2UgcGhhc2U+IHZvaWQgaW5j
cmVhc2VTaXplc1RvQWNjb21tb2RhdGVTcGFubmluZ0l0ZW1zKGNvbnN0IEdyaWRJdGVtc1NwYW5H
cm91cFJhbmdlJiBncmlkSXRlbXNXaXRoU3Bhbik7CiAgICAgTGF5b3V0VW5pdCBpdGVtU2l6ZUZv
clRyYWNrU2l6ZUNvbXB1dGF0aW9uUGhhc2UoVHJhY2tTaXplQ29tcHV0YXRpb25QaGFzZSwgUmVu
ZGVyQm94JikgY29uc3Q7CiAgICAgdGVtcGxhdGUgPFRyYWNrU2l6ZUNvbXB1dGF0aW9uUGhhc2Ug
cGhhc2U+IHZvaWQgZGlzdHJpYnV0ZVNwYWNlVG9UcmFja3MoVmVjdG9yPEdyaWRUcmFjayo+JiB0
cmFja3MsIFZlY3RvcjxHcmlkVHJhY2sqPiogZ3Jvd0JleW9uZEdyb3d0aExpbWl0c1RyYWNrcywg
TGF5b3V0VW5pdCYgYXZhaWxhYmxlTG9naWNhbFNwYWNlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0
IGVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRU
cmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBncmlkQXJlYUJyZWFk
dGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNv
bnN0OworICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNv
bnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CiAKICAgICB2
b2lkIGNvbXB1dGVCYXNlbGluZUFsaWdubWVudENvbnRleHQoKTsKICAgICB2b2lkIHVwZGF0ZUJh
c2VsaW5lQWxpZ25tZW50Q29udGV4dChjb25zdCBSZW5kZXJCb3gmLCBHcmlkQXhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDVkY2ViYWFiZWQ5NGY3NzE2M2E3
ZjRiM2RiMDVjZjE2MzRhZWVjZjQuLjFjM2JlNzY1YmRkY2RiNjc3ZjM5YzYzYWUyOTE4OWQwZGRm
NTI1MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0zMjYwLDcg
KzMyNjAsNyBAQCBib29sIFJlbmRlckJveDo6cmVwbGFjZWRNaW5NYXhMb2dpY2FsSGVpZ2h0Q29t
cHV0ZXNBc05vbmUoU2l6ZVR5cGUgc2l6ZVR5cGUpIGNvbgogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAKICAgICBpZiAobG9naWNhbEhlaWdodC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSAmJiBo
YXNPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKSkKLSAgICAg
ICAgcmV0dXJuIG92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgp
ID09IExheW91dFVuaXQoLTEpOworICAgICAgICByZXR1cm4gb3ZlcnJpZGluZ0NvbnRhaW5pbmdC
bG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgPT0gV1RGOjpudWxsb3B0OwogCiAgICAgLy8gTWFr
ZSBzdXJlICUgbWluLWhlaWdodCBhbmQgJSBtYXgtaGVpZ2h0IHJlc29sdmUgdG8gbm9uZSBpZiB0
aGUgY29udGFpbmluZyBibG9jayBoYXMgYXV0byBoZWlnaHQuCiAgICAgLy8gTm90ZSB0aGF0IHRo
ZSAiaGVpZ2h0IiBjYXNlIGZvciByZXBsYWNlZCBlbGVtZW50cyB3YXMgaGFuZGxlZCBieSBoYXNS
ZXBsYWNlZExvZ2ljYWxIZWlnaHQsIHdoaWNoIGlzIHdoeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuY3BwCmluZGV4IDYyZWNlM2NjMDU1MGRlM2FiYTViMmFkZDFiZTNjNmFkOTQz
NTVhYzYuLjYwZWIwMWUyNTA1NjE2ZDQyYzY4Yzc5MDRhZWE3OTBiNDU3NjhkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lk
IFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBh
bGdvcml0aG0sIE9wdGlvbmFsPAogICAgICAgICBpZiAoIWNoaWxkLT5oYXNPdmVycmlkaW5nQ29u
dGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCgpKQogICAgICAgICAgICAgY2hpbGQtPnNl
dE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKExheW91dFVuaXQo
KSk7CiAgICAgICAgIGlmICghY2hpbGQtPmhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250
ZW50TG9naWNhbEhlaWdodCgpKQotICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRpbmdDb250
YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodChMYXlvdXRVbml0KC0xKSk7CisgICAgICAg
ICAgICBjaGlsZC0+c2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVp
Z2h0KFdURjo6bnVsbG9wdCk7CiAKICAgICAgICAgR3JpZEFyZWEgYXJlYSA9IGdyaWQuZ3JpZEl0
ZW1BcmVhKCpjaGlsZCk7CiAgICAgICAgIGlmICghYXJlYS5yb3dzLmlzSW5kZWZpbml0ZSgpKQpA
QCAtNjcyLDcgKzY3Miw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGVyZm9ybUdyaWRJdGVtc1ByZUxh
eW91dChjb25zdCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0mIGFsZ29yCiAgICAgICAgIC8vIE9y
dGhvZ29uYWwgaXRlbXMgc2hvdWxkIGJlIGxhaWQgb3V0IGluIG9yZGVyIHRvIHByb3Blcmx5IGNv
bXB1dGUgY29udGVudC1zaXplZCB0cmFja3MgdGhhdCBtYXkgZGVwZW5kIG9uIGl0ZW0ncyBpbnRy
aW5zaWMgc2l6ZS4KICAgICAgICAgLy8gV2UgYWxzbyBuZWVkIHRvIHByb3Blcmx5IGVzdGltYXRl
IGl0cyBncmlkIGFyZWEgc2l6ZSwgc2luY2UgaXQgbWF5IGFmZmVjdCB0byB0aGUgYmFzZWxpbmUg
c2hpbXMgaWYgc3VjaCBpdGVtIHBhcnRpY2lhcHRlcyBpbiBiYXNlbGluZSBhbGlnbm1lbnQuIAog
ICAgICAgICBpZiAoR3JpZExheW91dEZ1bmN0aW9uczo6aXNPcnRob2dvbmFsQ2hpbGQoKnRoaXMs
ICpjaGlsZCkpIHsKLSAgICAgICAgICAgIHVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoKmNoaWxk
LCBhbGdvcml0aG0uZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoKmNoaWxkKSk7Cisg
ICAgICAgICAgICB1cGRhdGVHcmlkQXJlYUxvZ2ljYWxTaXplKCpjaGlsZCwgYWxnb3JpdGhtLmVz
dGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKCpjaGlsZCwgRm9yQ29sdW1ucyksIGFsZ29y
aXRobS5lc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZCgqY2hpbGQsIEZvclJvd3MpKTsK
ICAgICAgICAgICAgIGNoaWxkLT5sYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KQEAgLTY4MCw3ICs2ODAsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBlcmZv
cm1HcmlkSXRlbXNQcmVMYXlvdXQoY29uc3QgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBhbGdv
cgogICAgICAgICAvLyBiYXNlbGluZSBvciBub3QsIHdoaWNoIG1heSBpbXBseSBhIGN5Y2xpYyBz
aXppbmcgZGVwZW5kZW5jeS4KICAgICAgICAgLy8gRklYTUU6IENhbiB3ZSBhdm9pZCBpdCA/CiAg
ICAgICAgIGlmIChpc0Jhc2VsaW5lQWxpZ25tZW50Rm9yQ2hpbGQoKmNoaWxkKSkgewotICAgICAg
ICAgICAgdXBkYXRlR3JpZEFyZWFMb2dpY2FsU2l6ZSgqY2hpbGQsIGFsZ29yaXRobS5lc3RpbWF0
ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZCgqY2hpbGQpKTsKKyAgICAgICAgICAgIHVwZGF0ZUdy
aWRBcmVhTG9naWNhbFNpemUoKmNoaWxkLCBhbGdvcml0aG0uZXN0aW1hdGVkR3JpZEFyZWFCcmVh
ZHRoRm9yQ2hpbGQoKmNoaWxkLCBGb3JDb2x1bW5zKSwgYWxnb3JpdGhtLmVzdGltYXRlZEdyaWRB
cmVhQnJlYWR0aEZvckNoaWxkKCpjaGlsZCwgRm9yUm93cykpOwogICAgICAgICAgICAgY2hpbGQt
PmxheW91dElmTmVlZGVkKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC04OTksMTEgKzg5OSwxMSBA
QCBzdGF0aWMgY29uc3QgU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YSYgY29udGVudEFsaWdubWVu
dE5vcm1hbEJlaGF2aW9yR3JpZCgpCiAgICAgcmV0dXJuIG5vcm1hbEJlaGF2aW9yOwogfQogCi1z
dGF0aWMgYm9vbCBvdmVycmlkZVNpemVDaGFuZ2VkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdy
aWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIExheW91dFNpemUgc2l6ZSkKK3N0YXRp
YyBib29sIG92ZXJyaWRlU2l6ZUNoYW5nZWQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRy
YWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgT3B0aW9uYWw8TGF5b3V0VW5pdD4gd2lkdGgs
IE9wdGlvbmFsPExheW91dFVuaXQ+IGhlaWdodCkKIHsKICAgICBpZiAoZGlyZWN0aW9uID09IEZv
ckNvbHVtbnMpCi0gICAgICAgIHJldHVybiAhY2hpbGQuaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdC
bG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoKSB8fCBjaGlsZC5vdmVycmlkaW5nQ29udGFpbmluZ0Js
b2NrQ29udGVudExvZ2ljYWxXaWR0aCgpICE9IHNpemUud2lkdGgoKTsKLSAgICByZXR1cm4gIWNo
aWxkLmhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpIHx8
IGNoaWxkLm92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpICE9
IHNpemUuaGVpZ2h0KCk7CisgICAgICAgIHJldHVybiAhY2hpbGQuaGFzT3ZlcnJpZGluZ0NvbnRh
aW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoKSB8fCBjaGlsZC5vdmVycmlkaW5nQ29udGFp
bmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCgpICE9IHdpZHRoOworICAgIHJldHVybiAhY2hp
bGQuaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgfHwg
Y2hpbGQub3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgIT0g
aGVpZ2h0OwogfQogCiBzdGF0aWMgYm9vbCBoYXNSZWxhdGl2ZUJsb2NrQXhpc1NpemUoY29uc3Qg
UmVuZGVyR3JpZCYgZ3JpZCwgY29uc3QgUmVuZGVyQm94JiBjaGlsZCkKQEAgLTkxMSwxNyArOTEx
LDE3IEBAIHN0YXRpYyBib29sIGhhc1JlbGF0aXZlQmxvY2tBeGlzU2l6ZShjb25zdCBSZW5kZXJH
cmlkJiBncmlkLCBjb25zdCBSZW5kZXJCb3gmIGNoCiAgICAgcmV0dXJuIEdyaWRMYXlvdXRGdW5j
dGlvbnM6OmlzT3J0aG9nb25hbENoaWxkKGdyaWQsIGNoaWxkKSA/IGNoaWxkLmhhc1JlbGF0aXZl
TG9naWNhbFdpZHRoKCkgfHwgY2hpbGQuc3R5bGUoKS5sb2dpY2FsV2lkdGgoKS5pc0F1dG8oKSA6
IGNoaWxkLmhhc1JlbGF0aXZlTG9naWNhbEhlaWdodCgpOwogfQogCi12b2lkIFJlbmRlckdyaWQ6
OnVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoUmVuZGVyQm94JiBjaGlsZCwgTGF5b3V0U2l6ZSBn
cmlkQXJlYUxvZ2ljYWxTaXplKSBjb25zdAordm9pZCBSZW5kZXJHcmlkOjp1cGRhdGVHcmlkQXJl
YUxvZ2ljYWxTaXplKFJlbmRlckJveCYgY2hpbGQsIE9wdGlvbmFsPExheW91dFVuaXQ+IHdpZHRo
LCBPcHRpb25hbDxMYXlvdXRVbml0PiBoZWlnaHQpIGNvbnN0CiB7CiAgICAgLy8gQmVjYXVzZSB0
aGUgZ3JpZCBhcmVhIGNhbm5vdCBiZSBzdHlsZWQsIHdlIGRvbid0IG5lZWQgdG8gYWRqdXN0CiAg
ICAgLy8gdGhlIGdyaWQgYnJlYWR0aCB0byBhY2NvdW50IGZvciAnYm94LXNpemluZycuCi0gICAg
Ym9vbCBncmlkQXJlYVdpZHRoQ2hhbmdlZCA9IG92ZXJyaWRlU2l6ZUNoYW5nZWQoY2hpbGQsIEZv
ckNvbHVtbnMsIGdyaWRBcmVhTG9naWNhbFNpemUpOwotICAgIGJvb2wgZ3JpZEFyZWFIZWlnaHRD
aGFuZ2VkID0gb3ZlcnJpZGVTaXplQ2hhbmdlZChjaGlsZCwgRm9yUm93cywgZ3JpZEFyZWFMb2dp
Y2FsU2l6ZSk7CisgICAgYm9vbCBncmlkQXJlYVdpZHRoQ2hhbmdlZCA9IG92ZXJyaWRlU2l6ZUNo
YW5nZWQoY2hpbGQsIEZvckNvbHVtbnMsIHdpZHRoLCBoZWlnaHQpOworICAgIGJvb2wgZ3JpZEFy
ZWFIZWlnaHRDaGFuZ2VkID0gb3ZlcnJpZGVTaXplQ2hhbmdlZChjaGlsZCwgRm9yUm93cywgd2lk
dGgsIGhlaWdodCk7CiAgICAgaWYgKGdyaWRBcmVhV2lkdGhDaGFuZ2VkIHx8IChncmlkQXJlYUhl
aWdodENoYW5nZWQgJiYgaGFzUmVsYXRpdmVCbG9ja0F4aXNTaXplKCp0aGlzLCBjaGlsZCkpKQog
ICAgICAgICBjaGlsZC5zZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOwogCi0gICAgY2hpbGQu
c2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoZ3JpZEFyZWFM
b2dpY2FsU2l6ZS53aWR0aCgpKTsKLSAgICBjaGlsZC5zZXRPdmVycmlkaW5nQ29udGFpbmluZ0Js
b2NrQ29udGVudExvZ2ljYWxIZWlnaHQoZ3JpZEFyZWFMb2dpY2FsU2l6ZS5oZWlnaHQoKSk7Cisg
ICAgY2hpbGQuc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgo
d2lkdGgpOworICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9n
aWNhbEhlaWdodChoZWlnaHQpOwogfQogCiB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWRJdGVt
cygpCkBAIC05NDAsNyArOTQwLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMo
KQogICAgICAgICAvLyBTZXR0aW5nIHRoZSBkZWZpbml0ZSBncmlkIGFyZWEncyBzaXplcy4gSXQg
bWF5IGltcGx5IHRoYXQgdGhlCiAgICAgICAgIC8vIGl0ZW0gbXVzdCBwZXJmb3JtIGEgbGF5b3V0
IGlmIGl0cyBhcmVhIGRpZmZlcnMgZnJvbSB0aGUgb25lCiAgICAgICAgIC8vIHVzZWQgZHVyaW5n
IHRoZSB0cmFjayBzaXppbmcgYWxnb3JpdGhtLgotICAgICAgICB1cGRhdGVHcmlkQXJlYUxvZ2lj
YWxTaXplKCpjaGlsZCwgTGF5b3V0U2l6ZShncmlkQXJlYUJyZWFkdGhGb3JDaGlsZEluY2x1ZGlu
Z0FsaWdubWVudE9mZnNldHMoKmNoaWxkLCBGb3JDb2x1bW5zKSwgZ3JpZEFyZWFCcmVhZHRoRm9y
Q2hpbGRJbmNsdWRpbmdBbGlnbm1lbnRPZmZzZXRzKCpjaGlsZCwgRm9yUm93cykpKTsKKyAgICAg
ICAgdXBkYXRlR3JpZEFyZWFMb2dpY2FsU2l6ZSgqY2hpbGQsIGdyaWRBcmVhQnJlYWR0aEZvckNo
aWxkSW5jbHVkaW5nQWxpZ25tZW50T2Zmc2V0cygqY2hpbGQsIEZvckNvbHVtbnMpLCBncmlkQXJl
YUJyZWFkdGhGb3JDaGlsZEluY2x1ZGluZ0FsaWdubWVudE9mZnNldHMoKmNoaWxkLCBGb3JSb3dz
KSk7CiAKICAgICAgICAgTGF5b3V0UmVjdCBvbGRDaGlsZFJlY3QgPSBjaGlsZC0+ZnJhbWVSZWN0
KCk7CiAKQEAgLTExMzYsNyArMTEzNiw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6YXBwbHlTdHJldGNo
QWxpZ25tZW50VG9DaGlsZElmTmVlZGVkKFJlbmRlckJveCYgY2hpbGQpCiAgICAgYm9vbCBhbGxv
d2VkVG9TdHJldGNoQ2hpbGRCbG9ja1NpemUgPSBibG9ja0Zsb3dJc0NvbHVtbkF4aXMgPyBhbGxv
d2VkVG9TdHJldGNoQ2hpbGRBbG9uZ0NvbHVtbkF4aXMoY2hpbGQpIDogYWxsb3dlZFRvU3RyZXRj
aENoaWxkQWxvbmdSb3dBeGlzKGNoaWxkKTsKICAgICBpZiAoYWxsb3dlZFRvU3RyZXRjaENoaWxk
QmxvY2tTaXplKSB7CiAgICAgICAgIExheW91dFVuaXQgc3RyZXRjaGVkTG9naWNhbEhlaWdodCA9
IGF2YWlsYWJsZUFsaWdubWVudFNwYWNlRm9yQ2hpbGRCZWZvcmVTdHJldGNoaW5nKEdyaWRMYXlv
dXRGdW5jdGlvbnM6Om92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxk
KGNoaWxkLCBjaGlsZEJsb2NrRGlyZWN0aW9uKS52YWx1ZSgpLCBjaGlsZCk7Ci0gICAgICAgIExh
eW91dFVuaXQgZGVzaXJlZExvZ2ljYWxIZWlnaHQgPSBjaGlsZC5jb25zdHJhaW5Mb2dpY2FsSGVp
Z2h0QnlNaW5NYXgoc3RyZXRjaGVkTG9naWNhbEhlaWdodCwgLTFfbHUpOworICAgICAgICBMYXlv
dXRVbml0IGRlc2lyZWRMb2dpY2FsSGVpZ2h0ID0gY2hpbGQuY29uc3RyYWluTG9naWNhbEhlaWdo
dEJ5TWluTWF4KHN0cmV0Y2hlZExvZ2ljYWxIZWlnaHQsIFdURjo6bnVsbG9wdCk7CiAgICAgICAg
IGNoaWxkLnNldE92ZXJyaWRpbmdMb2dpY2FsSGVpZ2h0KGRlc2lyZWRMb2dpY2FsSGVpZ2h0KTsK
IAogICAgICAgICAvLyBDaGVja2luZyB0aGUgbG9naWNhbC1oZWlnaHQgb2YgYSBjaGlsZCBpc24n
dCBlbm91Z2guIFNldHRpbmcgYW4gb3ZlcnJpZGUgbG9naWNhbC1oZWlnaHQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDdjYmQ4ZGRlNjRmZWRmZTI4NTU4YThiMzM0NjQ4
MDRmYzJhMGZhMGMuLmJiODVjNjdjODgyNDVjNzE1OTNlMDBiMWZiYjY0OTFkNGQ2MjhlMGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJs
aWM6CiAgICAgTGF5b3V0VW5pdCBndXR0ZXJzU2l6ZShjb25zdCBHcmlkJiwgR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uLCB1bnNpZ25lZCBzdGFydExpbmUsIHVuc2lnbmVkIHNwYW4sIE9wdGlvbmFs
PExheW91dFVuaXQ+IGF2YWlsYWJsZVNpemUpIGNvbnN0OwogICAgIExheW91dFVuaXQgZ3JpZEl0
ZW1PZmZzZXQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKIAotICAgIHZvaWQgdXBk
YXRlR3JpZEFyZWFMb2dpY2FsU2l6ZShSZW5kZXJCb3gmLCBMYXlvdXRTaXplKSBjb25zdDsKKyAg
ICB2b2lkIHVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoUmVuZGVyQm94JiwgT3B0aW9uYWw8TGF5
b3V0VW5pdD4gd2lkdGgsIE9wdGlvbmFsPExheW91dFVuaXQ+IGhlaWdodCkgY29uc3Q7CiAgICAg
Ym9vbCBpc0Jhc2VsaW5lQWxpZ25tZW50Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JikgY29uc3Q7
CiAgICAgYm9vbCBpc0Jhc2VsaW5lQWxpZ25tZW50Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94Jiwg
R3JpZEF4aXMpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcAppbmRleCA4MzRlNDU2NjQ3ZjQzYjQ3NzRmNzU2YWU2MDQ3MWU1OTQ3MjA0MzY2Li45
Yzg4NmY2M2YxODk5N2I0ZTIzMWZmOTIwZjRjNjA5MjZlYWYwYWJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTM1MCw3ICszNTAsMTAgQEAgYm9v
bCBSZW5kZXJSZXBsYWNlZDo6aGFzUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3QKICAgICBp
ZiAoc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNBdXRvKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIGlmIChzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc1NwZWNpZmllZCgpKSB7Cisg
ICAgaWYgKHN0eWxlKCkubG9naWNhbEhlaWdodCgpLmlzRml4ZWQoKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICBpZiAoc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNQZXJjZW50T3JDYWxj
dWxhdGVkKCkpIHsKICAgICAgICAgaWYgKGhhc0F1dG9IZWlnaHRPckNvbnRhaW5pbmdCbG9ja1dp
dGhBdXRvSGVpZ2h0KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVy
biB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423023</attachid>
            <date>2021-03-12 01:43:03 -0800</date>
            <delta_ts>2021-03-12 04:05:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222376-20210312094301.patch</filename>
            <type>text/plain</type>
            <size>24280</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdlMWI4ODk4NDRlN2Q1
ZDgzYWZkNDk5ODA0M2Y0NmIwODZhMzUwYy4uN2IyYWE3ZTdlMTVmMDc4YjNjOTQ3YzY2Y2M3YTFj
MGIyOTc5ZDM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAzLTEyICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBSZXBsYWNlIHRo
ZSB1c2Ugb2YgLTEgd2l0aCBXVEY6Om51bGxvcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJlcGxhY2VzIC0xIHdpdGggbnVsbG9w
dCBpbiBncmlkIHRvIGluZGljYXRlIGluZGVmaW5pdGUgZm9yIGZ1bnRpb25zIHRoYXQKKyAgICAg
ICAgcmV0dXJucyBhbiBPcHRpb25hbCB0eXBlLiBUaGlzIGNoYW5nZSBoYXMgZXhwb3NlZCBhbiBp
c3N1ZSB3aGVuIHJlc29sdmluZyByZXBsYWNlZCBlbGVtbnQKKyAgICAgICAgZGVmaW5pdGVuZXNz
IGFzIGEgZ3JpZC1pdGVtIHdpdGggcmVzcGVjdCB0byBhc3BlY3QtcmF0aW8uIFRoZSBmaXggaXMg
dGhhdCB3aGVuIGNoZWNraW5nIGZvcgorICAgICAgICBoYXNSZXBsYWNlZExvZ2ljYWxIZWlnaHQo
KSwgZm9yIGZpeGVkIGl0ZW0gd2Ugc2hvdWxkIGp1c3QgcmV0dXJuIHRydWUgd2hpbGUgZm9yIHBl
cmNlbnQgb3IKKyAgICAgICAgY2FsY3VsYXRlZCBpdGVtcyB3ZSBrZWVwIHRoZSBjaGVjayBhcyBp
dCBpcy4gICAgIAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnJlcGxhY2VkTWluTWF4TG9naWNhbEhlaWdodENvbXB1dGVz
QXNOb25lIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjpwZXJmb3JtR3JpZEl0ZW1zUHJlTGF5b3V0IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjphcHBseVN0
cmV0Y2hBbGlnbm1lbnRUb0NoaWxkSWZOZWVkZWQgY29uc3QpOiAgICAgICAgCisgICAgICAgICog
cmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNo
aWxkIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGht
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6Z3JpZEFy
ZWFCcmVhZHRoRm9yQ2hpbGQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9HcmlkVHJhY2tT
aXppbmdBbGdvcml0aG0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6aW5nQWxn
b3JpdGhtOjptaW5TaXplRm9yQ2hpbGQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9Hcmlk
VHJhY2tTaXppbmdBbGdvcml0aG0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtU3RyYXRlZ3k6Om1pbkxvZ2ljYWxTaXplRm9yQ2hpbGQgY29uc3QpOgorCiAy
MDIxLTAzLTA5ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBBbGxv
dyBjcmVhdGlvbiBvZiBhIENTU0ZvbnRTZWxlY3RvciB3aXRoIGEgbm9uLURvY3VtZW50IFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9H
cmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dy
aWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAKaW5kZXggMjA1NTE3OGFhMzM3OTEyMzVmZDU0YTg2
MjJlNzVmZjNkYmZkNjYzOC4uZjcxNmE5YmQ4ODc0YWIzZDE1MTBhNDJiOTk2YjhjMzA5ZDg4MzFk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0Fs
Z29yaXRobS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1Npemlu
Z0FsZ29yaXRobS5jcHAKQEAgLTU1MSwxMiArNTUxLDcgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdB
bGdvcml0aG06OmRpc3RyaWJ1dGVTcGFjZVRvVHJhY2tzKFZlY3RvcjxHcmlkVHJhY2sqPiYgdHJh
Y2sKICAgICAgICAgdHJhY2stPnNldFBsYW5uZWRTaXplKHRyYWNrLT5wbGFubmVkU2l6ZSgpID09
IGluZmluaXR5ID8gdHJhY2stPnRlbXBTaXplKCkgOiBzdGQ6Om1heCh0cmFjay0+cGxhbm5lZFNp
emUoKSwgdHJhY2stPnRlbXBTaXplKCkpKTsKIH0KIAotTGF5b3V0U2l6ZSBHcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG06OmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRl
ckJveCYgY2hpbGQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHtlc3RpbWF0ZWRHcmlkQXJlYUJyZWFk
dGhGb3JDaGlsZChjaGlsZCwgRm9yQ29sdW1ucyksIGVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZv
ckNoaWxkKGNoaWxkLCBGb3JSb3dzKX07Ci19Ci0KLUxheW91dFVuaXQgR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtOjplc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJC
b3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAorT3B0
aW9uYWw8TGF5b3V0VW5pdD4gR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjplc3RpbWF0ZWRHcmlk
QXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXpp
bmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAogewogICAgIGNvbnN0IEdyaWRTcGFuJiBzcGFu
ID0gbV9ncmlkLmdyaWRJdGVtU3BhbihjaGlsZCwgZGlyZWN0aW9uKTsKICAgICBMYXlvdXRVbml0
IGdyaWRBcmVhU2l6ZTsKQEAgLTU3OCwxMSArNTczLDExIEBAIExheW91dFVuaXQgR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtOjplc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBS
ZW5kCiAKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gY2hpbGRJbmxpbmVEaXJlY3Rpb24g
PSBHcmlkTGF5b3V0RnVuY3Rpb25zOjpmbG93QXdhcmVEaXJlY3Rpb25Gb3JDaGlsZCgqbV9yZW5k
ZXJHcmlkLCBjaGlsZCwgRm9yQ29sdW1ucyk7CiAgICAgaWYgKGdyaWRBcmVhSXNJbmRlZmluaXRl
KQotICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IGNoaWxkSW5saW5lRGlyZWN0aW9uID8gc3Rk
OjptYXgoY2hpbGQubWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCksIGdyaWRBcmVhU2l6ZSkgOiAt
MV9sdTsKKyAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBjaGlsZElubGluZURpcmVjdGlvbiA/
IG1ha2VPcHRpb25hbChzdGQ6Om1heChjaGlsZC5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSwg
Z3JpZEFyZWFTaXplKSkgOiBXVEY6Om51bGxvcHQ7CiAgICAgcmV0dXJuIGdyaWRBcmVhU2l6ZTsK
IH0KIAotTGF5b3V0VW5pdCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmdyaWRBcmVhQnJlYWR0
aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biBkaXJlY3Rpb24pIGNvbnN0CitPcHRpb25hbDxMYXlvdXRVbml0PiBHcmlkVHJhY2tTaXppbmdB
bGdvcml0aG06OmdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQs
IEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0CiB7CiAgICAgYm9vbCBh
ZGRDb250ZW50QWxpZ25tZW50T2Zmc2V0ID0KICAgICAgICAgZGlyZWN0aW9uID09IEZvckNvbHVt
bnMgJiYgbV9zaXppbmdTdGF0ZSA9PSBSb3dTaXppbmdGaXJzdEl0ZXJhdGlvbjsKQEAgLTc1NSw3
ICs3NTAsNyBAQCBMYXlvdXRVbml0IEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5Ojps
b2dpY2FsSGVpZ2h0Rm9yQ2hpbGQoUmVuZGVyQm94JiBjaAogewogICAgIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiBjaGlsZEJsb2NrRGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxv
d0F3YXJlRGlyZWN0aW9uRm9yQ2hpbGQoKnJlbmRlckdyaWQoKSwgY2hpbGQsIEZvclJvd3MpOwog
ICAgIC8vIElmIHxjaGlsZHwgaGFzIGEgcmVsYXRpdmUgbG9naWNhbCBoZWlnaHQsIHdlIHNob3Vs
ZG4ndCBsZXQgaXQgb3ZlcnJpZGUgaXRzIGludHJpbnNpYyBoZWlnaHQsIHdoaWNoIGlzCi0gICAg
Ly8gd2hhdCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiBoZXJlLiBUaHVzIHdlIG5lZWQgdG8gc2V0IHRo
ZSBibG9jay1heGlzIG92ZXJyaWRlIHNpemUgdG8gLTEgKG5vIHBvc3NpYmxlIHJlc29sdXRpb24p
LgorICAgIC8vIHdoYXQgd2UgYXJlIGludGVyZXN0ZWQgaW4gaGVyZS4gVGh1cyB3ZSBuZWVkIHRv
IHNldCB0aGUgYmxvY2stYXhpcyBvdmVycmlkZSBzaXplIHRvIG51bGxvcHQgKG5vIHBvc3NpYmxl
IHJlc29sdXRpb24pLgogICAgIGlmIChzaG91bGRDbGVhck92ZXJyaWRpbmdDb250YWluaW5nQmxv
Y2tDb250ZW50U2l6ZUZvckNoaWxkKGNoaWxkLCBGb3JSb3dzKSkgewogICAgICAgICBzZXRPdmVy
cmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRCbG9j
a0RpcmVjdGlvbiwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgY2hpbGQuc2V0TmVlZHNMYXlvdXQo
TWFya09ubHlUaGlzKTsKQEAgLTgzMSw3ICs4MjYsNyBAQCBMYXlvdXRVbml0IEdyaWRUcmFja1Np
emluZ0FsZ29yaXRobVN0cmF0ZWd5OjptaW5TaXplRm9yQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCkg
YwogICAgICAgICByZXR1cm4gbWluU2l6ZTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0IGdyaWRB
cmVhU2l6ZSA9IG1fYWxnb3JpdGhtLmdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNoaWxkLCBjaGls
ZElubGluZURpcmVjdGlvbik7CisgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gZ3JpZEFyZWFTaXpl
ID0gbV9hbGdvcml0aG0uZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY2hpbGQsIGNoaWxkSW5saW5l
RGlyZWN0aW9uKTsKICAgICByZXR1cm4gbWluTG9naWNhbFNpemVGb3JDaGlsZChjaGlsZCwgY2hp
bGRNaW5TaXplLCBncmlkQXJlYVNpemUpICsgYmFzZWxpbmVTaGltOwogfQogCkBAIC05MTQsMTIg
KzkwOSwxMiBAQCBib29sIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5Ojp1cGRhdGVP
dmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpegogICAgIHJldHVybiB0cnVlOwogfQog
Ci1MYXlvdXRVbml0IEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5OjptaW5Mb2dpY2Fs
U2l6ZUZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIGNvbnN0IExlbmd0aCYgY2hpbGRNaW5TaXpl
LCBMYXlvdXRVbml0IGF2YWlsYWJsZVNpemUpIGNvbnN0CitMYXlvdXRVbml0IEdyaWRUcmFja1Np
emluZ0FsZ29yaXRobVN0cmF0ZWd5OjptaW5Mb2dpY2FsU2l6ZUZvckNoaWxkKFJlbmRlckJveCYg
Y2hpbGQsIGNvbnN0IExlbmd0aCYgY2hpbGRNaW5TaXplLCBPcHRpb25hbDxMYXlvdXRVbml0PiBh
dmFpbGFibGVTaXplKSBjb25zdAogewogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBjaGls
ZElubGluZURpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlv
bkZvckNoaWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkLCBGb3JDb2x1bW5zKTsKICAgICBib29sIGlz
Um93QXhpcyA9IGRpcmVjdGlvbigpID09IGNoaWxkSW5saW5lRGlyZWN0aW9uOwogICAgIGlmIChp
c1Jvd0F4aXMpCi0gICAgICAgIHJldHVybiBjaGlsZC5jb21wdXRlTG9naWNhbFdpZHRoSW5GcmFn
bWVudFVzaW5nKE1pblNpemUsIGNoaWxkTWluU2l6ZSwgYXZhaWxhYmxlU2l6ZSwgKnJlbmRlckdy
aWQoKSwgbnVsbHB0cikgKyBHcmlkTGF5b3V0RnVuY3Rpb25zOjptYXJnaW5Mb2dpY2FsU2l6ZUZv
ckNoaWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkSW5saW5lRGlyZWN0aW9uLCBjaGlsZCk7CisgICAg
ICAgIHJldHVybiBjaGlsZC5jb21wdXRlTG9naWNhbFdpZHRoSW5GcmFnbWVudFVzaW5nKE1pblNp
emUsIGNoaWxkTWluU2l6ZSwgYXZhaWxhYmxlU2l6ZS52YWx1ZU9yKDApLCAqcmVuZGVyR3JpZCgp
LCBudWxscHRyKSArIEdyaWRMYXlvdXRGdW5jdGlvbnM6Om1hcmdpbkxvZ2ljYWxTaXplRm9yQ2hp
bGQoKnJlbmRlckdyaWQoKSwgY2hpbGRJbmxpbmVEaXJlY3Rpb24sIGNoaWxkKTsKICAgICBib29s
IG92ZXJyaWRlU2l6ZUhhc0NoYW5nZWQgPSB1cGRhdGVPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2Nr
Q29udGVudFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRJbmxpbmVEaXJlY3Rpb24sIGF2YWlsYWJs
ZVNpemUpOwogICAgIGxheW91dEdyaWRJdGVtRm9yTWluU2l6ZUNvbXB1dGF0aW9uKGNoaWxkLCBv
dmVycmlkZVNpemVIYXNDaGFuZ2VkKTsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gY2hp
bGRCbG9ja0RpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlv
bkZvckNoaWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkLCBGb3JSb3dzKTsKQEAgLTEwMzQsNyArMTAy
OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCByZWNvbXB1dGVVc2VkRmxleEZyYWN0aW9uSWZOZWVk
ZWQoZG91YmxlJiBmbGV4RnJhY3Rpb24sIExheW91dFVuaXQmIHRvdGFsR3Jvd3RoKSBjb25zdCBv
dmVycmlkZTsKICAgICBMYXlvdXRVbml0IGZyZWVTcGFjZUZvclN0cmV0Y2hBdXRvVHJhY2tzU3Rl
cCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgbWluQ29udGVudEZvckNoaWxkKFJl
bmRlckJveCYpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVuaXQgbWluTG9naWNhbFNpemVG
b3JDaGlsZChSZW5kZXJCb3gmLCBjb25zdCBMZW5ndGgmIGNoaWxkTWluU2l6ZSwgTGF5b3V0VW5p
dCBhdmFpbGFibGVTaXplKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IG1pbkxvZ2lj
YWxTaXplRm9yQ2hpbGQoUmVuZGVyQm94JiwgY29uc3QgTGVuZ3RoJiBjaGlsZE1pblNpemUsIE9w
dGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVNpemUpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAog
TGF5b3V0VW5pdCBJbmRlZmluaXRlU2l6ZVN0cmF0ZWd5OjpmcmVlU3BhY2VGb3JTdHJldGNoQXV0
b1RyYWNrc1N0ZXAoKSBjb25zdApAQCAtMTA0OSwxMyArMTA0NCwxNCBAQCBMYXlvdXRVbml0IElu
ZGVmaW5pdGVTaXplU3RyYXRlZ3k6OmZyZWVTcGFjZUZvclN0cmV0Y2hBdXRvVHJhY2tzU3RlcCgp
IGNvbnN0CiAgICAgcmV0dXJuIG1pblNpemUudmFsdWUoKSAtIGNvbXB1dGVUcmFja0Jhc2VkU2l6
ZSgpOwogfQogCi1MYXlvdXRVbml0IERlZmluaXRlU2l6ZVN0cmF0ZWd5OjptaW5Mb2dpY2FsU2l6
ZUZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIGNvbnN0IExlbmd0aCYgY2hpbGRNaW5TaXplLCBM
YXlvdXRVbml0IGF2YWlsYWJsZVNpemUpIGNvbnN0CitMYXlvdXRVbml0IERlZmluaXRlU2l6ZVN0
cmF0ZWd5OjptaW5Mb2dpY2FsU2l6ZUZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIGNvbnN0IExl
bmd0aCYgY2hpbGRNaW5TaXplLCBPcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVTaXplKSBj
b25zdAogewogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBjaGlsZElubGluZURpcmVjdGlv
biA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlvbkZvckNoaWxkKCpyZW5k
ZXJHcmlkKCksIGNoaWxkLCBGb3JDb2x1bW5zKTsKLSAgICBMYXlvdXRVbml0IGluZGVmaW5pdGVT
aXplID0gZGlyZWN0aW9uKCkgPT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gPyBMYXlvdXRVbml0KCkg
OiBMYXlvdXRVbml0KC0xKTsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZmxvd0F3YXJl
RGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0aW9uRm9yQ2hp
bGQoKnJlbmRlckdyaWQoKSwgY2hpbGQsIGRpcmVjdGlvbigpKTsKLSAgICBpZiAoaGFzUmVsYXRp
dmVNYXJnaW5PclBhZGRpbmdGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGlyZWN0aW9uKSB8fCAo
ZGlyZWN0aW9uKCkgIT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gJiYgaGFzUmVsYXRpdmVPckludHJp
bnNpY1NpemVGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGlyZWN0aW9uKSkpCisgICAgaWYgKGhh
c1JlbGF0aXZlTWFyZ2luT3JQYWRkaW5nRm9yQ2hpbGQoY2hpbGQsIGZsb3dBd2FyZURpcmVjdGlv
bikgfHwgKGRpcmVjdGlvbigpICE9IGNoaWxkSW5saW5lRGlyZWN0aW9uICYmIGhhc1JlbGF0aXZl
T3JJbnRyaW5zaWNTaXplRm9yQ2hpbGQoY2hpbGQsIGZsb3dBd2FyZURpcmVjdGlvbikpKSB7Cisg
ICAgICAgIGF1dG8gaW5kZWZpbml0ZVNpemUgPSBkaXJlY3Rpb24oKSA9PSBjaGlsZElubGluZURp
cmVjdGlvbiA/IG1ha2VPcHRpb25hbCgwX2x1KSA6IFdURjo6bnVsbG9wdDsKICAgICAgICAgc2V0
T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQoY2hpbGQsIGRpcmVj
dGlvbigpLCBpbmRlZmluaXRlU2l6ZSk7CisgICAgfQogICAgIHJldHVybiBHcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG1TdHJhdGVneTo6bWluTG9naWNhbFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRN
aW5TaXplLCBhdmFpbGFibGVTaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oCmluZGV4IDQ5Y2Y1Zjc2ODdjZWMzNzU3
NWE1YTEzNjk5YmNmZjU3MjM3Mjc1NjIuLjc0ZTY2MGViNGIwOGY0MTJmOGVhMmE1MDEzNmVmNWFi
ZjViOGIyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tT
aXppbmdBbGdvcml0aG0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtLmgKQEAgLTExOCw4ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgTGF5b3V0
VW5pdCBtaW5Db250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluQ29udGVudFNpemU7IH07
CiAgICAgTGF5b3V0VW5pdCBtYXhDb250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4Q29u
dGVudFNpemU7IH07CiAKLSAgICBMYXlvdXRTaXplIGVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZv
ckNoaWxkKGNvbnN0IFJlbmRlckJveCYpIGNvbnN0OwogICAgIExheW91dFVuaXQgYmFzZWxpbmVP
ZmZzZXRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmLCBHcmlkQXhpcykgY29uc3Q7CisgICAgT3B0
aW9uYWw8TGF5b3V0VW5pdD4gZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3Qg
UmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKIAogICAgIHZvaWQg
Y2FjaGVCYXNlbGluZUFsaWduZWRJdGVtKGNvbnN0IFJlbmRlckJveCYsIEdyaWRBeGlzKTsKICAg
ICB2b2lkIGNvcHlCYXNlbGluZUl0ZW1zQ2FjaGUoY29uc3QgR3JpZFRyYWNrU2l6aW5nQWxnb3Jp
dGhtJiwgR3JpZEF4aXMpOwpAQCAtMTU5LDggKzE1OSw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxh
dGUgPFRyYWNrU2l6ZUNvbXB1dGF0aW9uUGhhc2UgcGhhc2U+IHZvaWQgaW5jcmVhc2VTaXplc1Rv
QWNjb21tb2RhdGVTcGFubmluZ0l0ZW1zKGNvbnN0IEdyaWRJdGVtc1NwYW5Hcm91cFJhbmdlJiBn
cmlkSXRlbXNXaXRoU3Bhbik7CiAgICAgTGF5b3V0VW5pdCBpdGVtU2l6ZUZvclRyYWNrU2l6ZUNv
bXB1dGF0aW9uUGhhc2UoVHJhY2tTaXplQ29tcHV0YXRpb25QaGFzZSwgUmVuZGVyQm94JikgY29u
c3Q7CiAgICAgdGVtcGxhdGUgPFRyYWNrU2l6ZUNvbXB1dGF0aW9uUGhhc2UgcGhhc2U+IHZvaWQg
ZGlzdHJpYnV0ZVNwYWNlVG9UcmFja3MoVmVjdG9yPEdyaWRUcmFjayo+JiB0cmFja3MsIFZlY3Rv
cjxHcmlkVHJhY2sqPiogZ3Jvd0JleW9uZEdyb3d0aExpbWl0c1RyYWNrcywgTGF5b3V0VW5pdCYg
YXZhaWxhYmxlTG9naWNhbFNwYWNlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGVzdGltYXRlZEdy
aWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbikgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChj
b25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OworICAgIE9w
dGlvbmFsPExheW91dFVuaXQ+IGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJv
eCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CiAKICAgICB2b2lkIGNvbXB1dGVC
YXNlbGluZUFsaWdubWVudENvbnRleHQoKTsKICAgICB2b2lkIHVwZGF0ZUJhc2VsaW5lQWxpZ25t
ZW50Q29udGV4dChjb25zdCBSZW5kZXJCb3gmLCBHcmlkQXhpcyk7CkBAIC0yNjcsNyArMjY2LDcg
QEAgcHJvdGVjdGVkOgogICAgIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5KEdyaWRU
cmFja1NpemluZ0FsZ29yaXRobSYgYWxnb3JpdGhtKQogICAgICAgICA6IG1fYWxnb3JpdGhtKGFs
Z29yaXRobSkgeyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluTG9naWNhbFNpemVGb3JD
aGlsZChSZW5kZXJCb3gmLCBjb25zdCBMZW5ndGgmIGNoaWxkTWluU2l6ZSwgTGF5b3V0VW5pdCBh
dmFpbGFibGVTaXplKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluTG9naWNhbFNp
emVGb3JDaGlsZChSZW5kZXJCb3gmLCBjb25zdCBMZW5ndGgmIGNoaWxkTWluU2l6ZSwgT3B0aW9u
YWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlU2l6ZSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGxh
eW91dEdyaWRJdGVtRm9yTWluU2l6ZUNvbXB1dGF0aW9uKFJlbmRlckJveCYsIGJvb2wgb3ZlcnJp
ZGVTaXplSGFzQ2hhbmdlZCkgY29uc3QgPSAwOwogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0Rm9yQ2hpbGQoUmVuZGVyQm94JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCmluZGV4IDVkY2ViYWFiZWQ5NGY3NzE2M2E3ZjRiM2RiMDVjZjE2MzRhZWVjZjQu
LjFjM2JlNzY1YmRkY2RiNjc3ZjM5YzYzYWUyOTE4OWQwZGRmNTI1MzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0zMjYwLDcgKzMyNjAsNyBAQCBib29sIFJlbmRl
ckJveDo6cmVwbGFjZWRNaW5NYXhMb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoU2l6ZVR5cGUg
c2l6ZVR5cGUpIGNvbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICBpZiAobG9naWNh
bEhlaWdodC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSAmJiBoYXNPdmVycmlkaW5nQ29udGFpbmlu
Z0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKSkKLSAgICAgICAgcmV0dXJuIG92ZXJyaWRpbmdD
b250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpID09IExheW91dFVuaXQoLTEpOwor
ICAgICAgICByZXR1cm4gb3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVp
Z2h0KCkgPT0gV1RGOjpudWxsb3B0OwogCiAgICAgLy8gTWFrZSBzdXJlICUgbWluLWhlaWdodCBh
bmQgJSBtYXgtaGVpZ2h0IHJlc29sdmUgdG8gbm9uZSBpZiB0aGUgY29udGFpbmluZyBibG9jayBo
YXMgYXV0byBoZWlnaHQuCiAgICAgLy8gTm90ZSB0aGF0IHRoZSAiaGVpZ2h0IiBjYXNlIGZvciBy
ZXBsYWNlZCBlbGVtZW50cyB3YXMgaGFuZGxlZCBieSBoYXNSZXBsYWNlZExvZ2ljYWxIZWlnaHQs
IHdoaWNoIGlzIHdoeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4
IDYyZWNlM2NjMDU1MGRlM2FiYTViMmFkZDFiZTNjNmFkOTQzNTVhYzYuLjYwZWIwMWUyNTA1NjE2
ZDQyYzY4Yzc5MDRhZWE3OTBiNDU3NjhkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRl
bXNPbkdyaWQoR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBhbGdvcml0aG0sIE9wdGlvbmFsPAog
ICAgICAgICBpZiAoIWNoaWxkLT5oYXNPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExv
Z2ljYWxXaWR0aCgpKQogICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRpbmdDb250YWluaW5n
QmxvY2tDb250ZW50TG9naWNhbFdpZHRoKExheW91dFVuaXQoKSk7CiAgICAgICAgIGlmICghY2hp
bGQtPmhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpKQot
ICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9n
aWNhbEhlaWdodChMYXlvdXRVbml0KC0xKSk7CisgICAgICAgICAgICBjaGlsZC0+c2V0T3ZlcnJp
ZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KFdURjo6bnVsbG9wdCk7CiAK
ICAgICAgICAgR3JpZEFyZWEgYXJlYSA9IGdyaWQuZ3JpZEl0ZW1BcmVhKCpjaGlsZCk7CiAgICAg
ICAgIGlmICghYXJlYS5yb3dzLmlzSW5kZWZpbml0ZSgpKQpAQCAtNjcyLDcgKzY3Miw3IEBAIHZv
aWQgUmVuZGVyR3JpZDo6cGVyZm9ybUdyaWRJdGVtc1ByZUxheW91dChjb25zdCBHcmlkVHJhY2tT
aXppbmdBbGdvcml0aG0mIGFsZ29yCiAgICAgICAgIC8vIE9ydGhvZ29uYWwgaXRlbXMgc2hvdWxk
IGJlIGxhaWQgb3V0IGluIG9yZGVyIHRvIHByb3Blcmx5IGNvbXB1dGUgY29udGVudC1zaXplZCB0
cmFja3MgdGhhdCBtYXkgZGVwZW5kIG9uIGl0ZW0ncyBpbnRyaW5zaWMgc2l6ZS4KICAgICAgICAg
Ly8gV2UgYWxzbyBuZWVkIHRvIHByb3Blcmx5IGVzdGltYXRlIGl0cyBncmlkIGFyZWEgc2l6ZSwg
c2luY2UgaXQgbWF5IGFmZmVjdCB0byB0aGUgYmFzZWxpbmUgc2hpbXMgaWYgc3VjaCBpdGVtIHBh
cnRpY2lhcHRlcyBpbiBiYXNlbGluZSBhbGlnbm1lbnQuIAogICAgICAgICBpZiAoR3JpZExheW91
dEZ1bmN0aW9uczo6aXNPcnRob2dvbmFsQ2hpbGQoKnRoaXMsICpjaGlsZCkpIHsKLSAgICAgICAg
ICAgIHVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoKmNoaWxkLCBhbGdvcml0aG0uZXN0aW1hdGVk
R3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoKmNoaWxkKSk7CisgICAgICAgICAgICB1cGRhdGVHcmlk
QXJlYUxvZ2ljYWxTaXplKCpjaGlsZCwgYWxnb3JpdGhtLmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0
aEZvckNoaWxkKCpjaGlsZCwgRm9yQ29sdW1ucyksIGFsZ29yaXRobS5lc3RpbWF0ZWRHcmlkQXJl
YUJyZWFkdGhGb3JDaGlsZCgqY2hpbGQsIEZvclJvd3MpKTsKICAgICAgICAgICAgIGNoaWxkLT5s
YXlvdXRJZk5lZWRlZCgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTY4
MCw3ICs2ODAsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBlcmZvcm1HcmlkSXRlbXNQcmVMYXlvdXQo
Y29uc3QgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBhbGdvcgogICAgICAgICAvLyBiYXNlbGlu
ZSBvciBub3QsIHdoaWNoIG1heSBpbXBseSBhIGN5Y2xpYyBzaXppbmcgZGVwZW5kZW5jeS4KICAg
ICAgICAgLy8gRklYTUU6IENhbiB3ZSBhdm9pZCBpdCA/CiAgICAgICAgIGlmIChpc0Jhc2VsaW5l
QWxpZ25tZW50Rm9yQ2hpbGQoKmNoaWxkKSkgewotICAgICAgICAgICAgdXBkYXRlR3JpZEFyZWFM
b2dpY2FsU2l6ZSgqY2hpbGQsIGFsZ29yaXRobS5lc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JD
aGlsZCgqY2hpbGQpKTsKKyAgICAgICAgICAgIHVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoKmNo
aWxkLCBhbGdvcml0aG0uZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoKmNoaWxkLCBG
b3JDb2x1bW5zKSwgYWxnb3JpdGhtLmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKCpj
aGlsZCwgRm9yUm93cykpOwogICAgICAgICAgICAgY2hpbGQtPmxheW91dElmTmVlZGVkKCk7CiAg
ICAgICAgIH0KICAgICB9CkBAIC04OTksMTEgKzg5OSwxMSBAQCBzdGF0aWMgY29uc3QgU3R5bGVD
b250ZW50QWxpZ25tZW50RGF0YSYgY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yR3JpZCgp
CiAgICAgcmV0dXJuIG5vcm1hbEJlaGF2aW9yOwogfQogCi1zdGF0aWMgYm9vbCBvdmVycmlkZVNp
emVDaGFuZ2VkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biBkaXJlY3Rpb24sIExheW91dFNpemUgc2l6ZSkKK3N0YXRpYyBib29sIG92ZXJyaWRlU2l6ZUNo
YW5nZWQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbiwgT3B0aW9uYWw8TGF5b3V0VW5pdD4gd2lkdGgsIE9wdGlvbmFsPExheW91dFVuaXQ+
IGhlaWdodCkKIHsKICAgICBpZiAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpCi0gICAgICAgIHJl
dHVybiAhY2hpbGQuaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lk
dGgoKSB8fCBjaGlsZC5vdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0
aCgpICE9IHNpemUud2lkdGgoKTsKLSAgICByZXR1cm4gIWNoaWxkLmhhc092ZXJyaWRpbmdDb250
YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpIHx8IGNoaWxkLm92ZXJyaWRpbmdDb250
YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpICE9IHNpemUuaGVpZ2h0KCk7CisgICAg
ICAgIHJldHVybiAhY2hpbGQuaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dp
Y2FsV2lkdGgoKSB8fCBjaGlsZC5vdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2lj
YWxXaWR0aCgpICE9IHdpZHRoOworICAgIHJldHVybiAhY2hpbGQuaGFzT3ZlcnJpZGluZ0NvbnRh
aW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgfHwgY2hpbGQub3ZlcnJpZGluZ0NvbnRh
aW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgIT0gaGVpZ2h0OwogfQogCiBzdGF0aWMg
Ym9vbCBoYXNSZWxhdGl2ZUJsb2NrQXhpc1NpemUoY29uc3QgUmVuZGVyR3JpZCYgZ3JpZCwgY29u
c3QgUmVuZGVyQm94JiBjaGlsZCkKQEAgLTkxMSwxNyArOTExLDE3IEBAIHN0YXRpYyBib29sIGhh
c1JlbGF0aXZlQmxvY2tBeGlzU2l6ZShjb25zdCBSZW5kZXJHcmlkJiBncmlkLCBjb25zdCBSZW5k
ZXJCb3gmIGNoCiAgICAgcmV0dXJuIEdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbENo
aWxkKGdyaWQsIGNoaWxkKSA/IGNoaWxkLmhhc1JlbGF0aXZlTG9naWNhbFdpZHRoKCkgfHwgY2hp
bGQuc3R5bGUoKS5sb2dpY2FsV2lkdGgoKS5pc0F1dG8oKSA6IGNoaWxkLmhhc1JlbGF0aXZlTG9n
aWNhbEhlaWdodCgpOwogfQogCi12b2lkIFJlbmRlckdyaWQ6OnVwZGF0ZUdyaWRBcmVhTG9naWNh
bFNpemUoUmVuZGVyQm94JiBjaGlsZCwgTGF5b3V0U2l6ZSBncmlkQXJlYUxvZ2ljYWxTaXplKSBj
b25zdAordm9pZCBSZW5kZXJHcmlkOjp1cGRhdGVHcmlkQXJlYUxvZ2ljYWxTaXplKFJlbmRlckJv
eCYgY2hpbGQsIE9wdGlvbmFsPExheW91dFVuaXQ+IHdpZHRoLCBPcHRpb25hbDxMYXlvdXRVbml0
PiBoZWlnaHQpIGNvbnN0CiB7CiAgICAgLy8gQmVjYXVzZSB0aGUgZ3JpZCBhcmVhIGNhbm5vdCBi
ZSBzdHlsZWQsIHdlIGRvbid0IG5lZWQgdG8gYWRqdXN0CiAgICAgLy8gdGhlIGdyaWQgYnJlYWR0
aCB0byBhY2NvdW50IGZvciAnYm94LXNpemluZycuCi0gICAgYm9vbCBncmlkQXJlYVdpZHRoQ2hh
bmdlZCA9IG92ZXJyaWRlU2l6ZUNoYW5nZWQoY2hpbGQsIEZvckNvbHVtbnMsIGdyaWRBcmVhTG9n
aWNhbFNpemUpOwotICAgIGJvb2wgZ3JpZEFyZWFIZWlnaHRDaGFuZ2VkID0gb3ZlcnJpZGVTaXpl
Q2hhbmdlZChjaGlsZCwgRm9yUm93cywgZ3JpZEFyZWFMb2dpY2FsU2l6ZSk7CisgICAgYm9vbCBn
cmlkQXJlYVdpZHRoQ2hhbmdlZCA9IG92ZXJyaWRlU2l6ZUNoYW5nZWQoY2hpbGQsIEZvckNvbHVt
bnMsIHdpZHRoLCBoZWlnaHQpOworICAgIGJvb2wgZ3JpZEFyZWFIZWlnaHRDaGFuZ2VkID0gb3Zl
cnJpZGVTaXplQ2hhbmdlZChjaGlsZCwgRm9yUm93cywgd2lkdGgsIGhlaWdodCk7CiAgICAgaWYg
KGdyaWRBcmVhV2lkdGhDaGFuZ2VkIHx8IChncmlkQXJlYUhlaWdodENoYW5nZWQgJiYgaGFzUmVs
YXRpdmVCbG9ja0F4aXNTaXplKCp0aGlzLCBjaGlsZCkpKQogICAgICAgICBjaGlsZC5zZXROZWVk
c0xheW91dChNYXJrT25seVRoaXMpOwogCi0gICAgY2hpbGQuc2V0T3ZlcnJpZGluZ0NvbnRhaW5p
bmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoZ3JpZEFyZWFMb2dpY2FsU2l6ZS53aWR0aCgpKTsK
LSAgICBjaGlsZC5zZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWln
aHQoZ3JpZEFyZWFMb2dpY2FsU2l6ZS5oZWlnaHQoKSk7CisgICAgY2hpbGQuc2V0T3ZlcnJpZGlu
Z0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgod2lkdGgpOworICAgIGNoaWxkLnNl
dE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodChoZWlnaHQpOwog
fQogCiB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcygpCkBAIC05NDAsNyArOTQwLDcg
QEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQogICAgICAgICAvLyBTZXR0aW5n
IHRoZSBkZWZpbml0ZSBncmlkIGFyZWEncyBzaXplcy4gSXQgbWF5IGltcGx5IHRoYXQgdGhlCiAg
ICAgICAgIC8vIGl0ZW0gbXVzdCBwZXJmb3JtIGEgbGF5b3V0IGlmIGl0cyBhcmVhIGRpZmZlcnMg
ZnJvbSB0aGUgb25lCiAgICAgICAgIC8vIHVzZWQgZHVyaW5nIHRoZSB0cmFjayBzaXppbmcgYWxn
b3JpdGhtLgotICAgICAgICB1cGRhdGVHcmlkQXJlYUxvZ2ljYWxTaXplKCpjaGlsZCwgTGF5b3V0
U2l6ZShncmlkQXJlYUJyZWFkdGhGb3JDaGlsZEluY2x1ZGluZ0FsaWdubWVudE9mZnNldHMoKmNo
aWxkLCBGb3JDb2x1bW5zKSwgZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGRJbmNsdWRpbmdBbGlnbm1l
bnRPZmZzZXRzKCpjaGlsZCwgRm9yUm93cykpKTsKKyAgICAgICAgdXBkYXRlR3JpZEFyZWFMb2dp
Y2FsU2l6ZSgqY2hpbGQsIGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkSW5jbHVkaW5nQWxpZ25tZW50
T2Zmc2V0cygqY2hpbGQsIEZvckNvbHVtbnMpLCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZEluY2x1
ZGluZ0FsaWdubWVudE9mZnNldHMoKmNoaWxkLCBGb3JSb3dzKSk7CiAKICAgICAgICAgTGF5b3V0
UmVjdCBvbGRDaGlsZFJlY3QgPSBjaGlsZC0+ZnJhbWVSZWN0KCk7CiAKQEAgLTExMzYsNyArMTEz
Niw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6YXBwbHlTdHJldGNoQWxpZ25tZW50VG9DaGlsZElmTmVl
ZGVkKFJlbmRlckJveCYgY2hpbGQpCiAgICAgYm9vbCBhbGxvd2VkVG9TdHJldGNoQ2hpbGRCbG9j
a1NpemUgPSBibG9ja0Zsb3dJc0NvbHVtbkF4aXMgPyBhbGxvd2VkVG9TdHJldGNoQ2hpbGRBbG9u
Z0NvbHVtbkF4aXMoY2hpbGQpIDogYWxsb3dlZFRvU3RyZXRjaENoaWxkQWxvbmdSb3dBeGlzKGNo
aWxkKTsKICAgICBpZiAoYWxsb3dlZFRvU3RyZXRjaENoaWxkQmxvY2tTaXplKSB7CiAgICAgICAg
IExheW91dFVuaXQgc3RyZXRjaGVkTG9naWNhbEhlaWdodCA9IGF2YWlsYWJsZUFsaWdubWVudFNw
YWNlRm9yQ2hpbGRCZWZvcmVTdHJldGNoaW5nKEdyaWRMYXlvdXRGdW5jdGlvbnM6Om92ZXJyaWRp
bmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxkKGNoaWxkLCBjaGlsZEJsb2NrRGly
ZWN0aW9uKS52YWx1ZSgpLCBjaGlsZCk7Ci0gICAgICAgIExheW91dFVuaXQgZGVzaXJlZExvZ2lj
YWxIZWlnaHQgPSBjaGlsZC5jb25zdHJhaW5Mb2dpY2FsSGVpZ2h0QnlNaW5NYXgoc3RyZXRjaGVk
TG9naWNhbEhlaWdodCwgLTFfbHUpOworICAgICAgICBMYXlvdXRVbml0IGRlc2lyZWRMb2dpY2Fs
SGVpZ2h0ID0gY2hpbGQuY29uc3RyYWluTG9naWNhbEhlaWdodEJ5TWluTWF4KHN0cmV0Y2hlZExv
Z2ljYWxIZWlnaHQsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdM
b2dpY2FsSGVpZ2h0KGRlc2lyZWRMb2dpY2FsSGVpZ2h0KTsKIAogICAgICAgICAvLyBDaGVja2lu
ZyB0aGUgbG9naWNhbC1oZWlnaHQgb2YgYSBjaGlsZCBpc24ndCBlbm91Z2guIFNldHRpbmcgYW4g
b3ZlcnJpZGUgbG9naWNhbC1oZWlnaHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5o
CmluZGV4IDdjYmQ4ZGRlNjRmZWRmZTI4NTU4YThiMzM0NjQ4MDRmYzJhMGZhMGMuLmJiODVjNjdj
ODgyNDVjNzE1OTNlMDBiMWZiYjY0OTFkNGQ2MjhlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBn
dXR0ZXJzU2l6ZShjb25zdCBHcmlkJiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCB1bnNpZ25l
ZCBzdGFydExpbmUsIHVuc2lnbmVkIHNwYW4sIE9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJs
ZVNpemUpIGNvbnN0OwogICAgIExheW91dFVuaXQgZ3JpZEl0ZW1PZmZzZXQoR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uKSBjb25zdDsKIAotICAgIHZvaWQgdXBkYXRlR3JpZEFyZWFMb2dpY2FsU2l6
ZShSZW5kZXJCb3gmLCBMYXlvdXRTaXplKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUdyaWRBcmVh
TG9naWNhbFNpemUoUmVuZGVyQm94JiwgT3B0aW9uYWw8TGF5b3V0VW5pdD4gd2lkdGgsIE9wdGlv
bmFsPExheW91dFVuaXQ+IGhlaWdodCkgY29uc3Q7CiAgICAgYm9vbCBpc0Jhc2VsaW5lQWxpZ25t
ZW50Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAgICAgYm9vbCBpc0Jhc2VsaW5l
QWxpZ25tZW50Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiwgR3JpZEF4aXMpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA4MzRlNDU2
NjQ3ZjQzYjQ3NzRmNzU2YWU2MDQ3MWU1OTQ3MjA0MzY2Li45Yzg4NmY2M2YxODk5N2I0ZTIzMWZm
OTIwZjRjNjA5MjZlYWYwYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAKQEAgLTM1MCw3ICszNTAsMTAgQEAgYm9vbCBSZW5kZXJSZXBsYWNlZDo6aGFz
UmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3QKICAgICBpZiAoc3R5bGUoKS5sb2dpY2FsSGVp
Z2h0KCkuaXNBdXRvKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChzdHlsZSgp
LmxvZ2ljYWxIZWlnaHQoKS5pc1NwZWNpZmllZCgpKSB7CisgICAgaWYgKHN0eWxlKCkubG9naWNh
bEhlaWdodCgpLmlzRml4ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoc3R5
bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkpIHsKICAgICAgICAg
aWYgKGhhc0F1dG9IZWlnaHRPckNvbnRhaW5pbmdCbG9ja1dpdGhBdXRvSGVpZ2h0KCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggNzBlMzhlODcxNWNiZGEzZWU1MDczZTNlYWI5YTU4NWFhNjZk
YjJjZi4uZWUzYTkwZWU5MTVmMmVkODI0NWMxOTg5NzU3MDdkMGJhMDM2MzZkNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDMtMTIgIFppcmFu
IFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWdyaWRdIFJlcGxhY2UgdGhl
IHVzZSBvZiAtMSB3aXRoIFdURjo6bnVsbG9wdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMzc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGZhaWxlZCBleHBlY3RhdGlvbnMgb2YgdGhlIGZh
aWxpbmcgdGVzdC4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQv
YWxpZ25tZW50L2dyaWQtc2VsZi1iYXNlbGluZS1ub3QtYXBwbGllZC1pZi1zaXppbmctY3ljbGlj
LWRlcGVuZGVuY3ktMDAxLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wMy0wOCAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBTZWxlY3QgQ1NTIHByb3BlcnRpZXMg
YW5pbWF0aW5nIGFzIGZsb2F0IHNob3VsZCBub3QgYWxsb3cgbmVnYXRpdmUgdmFsdWVzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtZ3JpZC9hbGlnbm1lbnQvZ3JpZC1zZWxmLWJhc2VsaW5lLW5vdC1hcHBsaWVkLWlmLXNpemlu
Zy1jeWNsaWMtZGVwZW5kZW5jeS0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvYWxpZ25tZW50L2dyaWQtc2Vs
Zi1iYXNlbGluZS1ub3QtYXBwbGllZC1pZi1zaXppbmctY3ljbGljLWRlcGVuZGVuY3ktMDAxLWV4
cGVjdGVkLnR4dAppbmRleCBlZGQ3ODk3Yjc1ZDlmYWEyNjkxNjcwNGU3Mjg2NGYwMWFmNmZiN2Q2
Li40Mjg0ZWFmNTM3NzRjZDJmMDdiOWVmYTg1YjdkNDk0YTY5MmQ4ZWVjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9h
bGlnbm1lbnQvZ3JpZC1zZWxmLWJhc2VsaW5lLW5vdC1hcHBsaWVkLWlmLXNpemluZy1jeWNsaWMt
ZGVwZW5kZW5jeS0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2FsaWdubWVudC9ncmlkLXNlbGYtYmFz
ZWxpbmUtbm90LWFwcGxpZWQtaWYtc2l6aW5nLWN5Y2xpYy1kZXBlbmRlbmN5LTAwMS1leHBlY3Rl
ZC50eHQKQEAgLTM3LDIxICszNywyMSBAQCBGQUlMIC5pbmxpbmUtZ3JpZCA4IGFzc2VydF9lcXVh
bHM6CiAgICAgICAgIDxkaXYgY2xhc3M9InNlY29uZFJvd0ZpcnN0Q29sdW1uIHZlcnRpY2FsUkwg
d2lkdGgyMDBQZXJjZW50IiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIxMDAiIGRh
dGEtZXhwZWN0ZWQtd2lkdGg9IjE2MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+
CiAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93U3Bhbm5pbmcyQXV0b0NvbHVtbiB2ZXJ0aWNh
bFJMIHdpZHRoMjUiIGRhdGEtb2Zmc2V0LXg9IjgwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSIyNSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CiAgICAg
PC9kaXY+Ci13aWR0aCBleHBlY3RlZCAxNjAgYnV0IGdvdCA5NDAKK3dpZHRoIGV4cGVjdGVkIDE2
MCBidXQgZ290IDczMgogRkFJTCAuaW5saW5lLWdyaWQgOSBhc3NlcnRfZXF1YWxzOgogPGRpdiBj
bGFzcz0iaW5saW5lLWdyaWQganVzdGlmeUl0ZW1zQmFzZWxpbmUgcm93cyBtYXgtY29udGVudC1j
b2x1bW5zIj4KICAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dGaXJzdENvbHVtbiB2ZXJ0aWNh
bFJMIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSI4MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+w4nDiSDDiSDDicOJIMOJw4nDicOJ
IMOJIMOJw4kgw4nDicOJIMOJw4kgw4k8L2Rpdj4KICAgICAgICAgPGRpdiBjbGFzcz0ic2Vjb25k
Um93Rmlyc3RDb2x1bW4gdmVydGljYWxSTCB3aWR0aDIwMFBlcmNlbnQiIGRhdGEtb2Zmc2V0LXg9
IjAiIGRhdGEtb2Zmc2V0LXk9IjEwMCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTYwIiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KICAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dT
cGFubmluZzJBdXRvQ29sdW1uIHZlcnRpY2FsUkwgd2lkdGgyNSIgZGF0YS1vZmZzZXQteD0iODAi
IGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjI1IiBkYXRhLWV4cGVjdGVk
LWhlaWdodD0iMjAwIj48L2Rpdj4KICAgICA8L2Rpdj4KLXdpZHRoIGV4cGVjdGVkIDE2MCBidXQg
Z290IDk0MAord2lkdGggZXhwZWN0ZWQgMTYwIGJ1dCBnb3QgNzMyCiBGQUlMIC5pbmxpbmUtZ3Jp
ZCAxMCBhc3NlcnRfZXF1YWxzOgogPGRpdiBjbGFzcz0iaW5saW5lLWdyaWQganVzdGlmeUl0ZW1z
QmFzZWxpbmUgcm93cyBmaXQtY29udGVudC1jb2x1bW5zIj4KICAgICAgICAgPGRpdiBjbGFzcz0i
Zmlyc3RSb3dGaXJzdENvbHVtbiB2ZXJ0aWNhbFJMIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9m
ZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI4MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjEwMCI+w4nDiSDDiSDDicOJIMOJw4nDicOJIMOJIMOJw4kgw4nDicOJIMOJw4kgw4k8L2Rpdj4K
ICAgICAgICAgPGRpdiBjbGFzcz0ic2Vjb25kUm93Rmlyc3RDb2x1bW4gdmVydGljYWxSTCB3aWR0
aDIwMFBlcmNlbnQiIGRhdGEtb2Zmc2V0LXg9IjAiIGRhdGEtb2Zmc2V0LXk9IjEwMCIgZGF0YS1l
eHBlY3RlZC13aWR0aD0iMTYwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KICAg
ICAgICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dTcGFubmluZzJBdXRvQ29sdW1uIHZlcnRpY2FsUkwg
d2lkdGgyNSIgZGF0YS1vZmZzZXQteD0iODAiIGRhdGEtb2Zmc2V0LXk9IjAiIGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjI1IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAwIj48L2Rpdj4KICAgICA8L2Rp
dj4KLXdpZHRoIGV4cGVjdGVkIDE2MCBidXQgZ290IDk0MAord2lkdGggZXhwZWN0ZWQgMTYwIGJ1
dCBnb3QgNzMyCiBGQUlMIC5pbmxpbmUtZ3JpZCAxMSBhc3NlcnRfZXF1YWxzOgogPGRpdiBjbGFz
cz0iaW5saW5lLWdyaWQganVzdGlmeUl0ZW1zQmFzZWxpbmUgcm93cyBmbGV4LWNvbHVtbnMiPgog
ICAgICAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd0ZpcnN0Q29sdW1uIHZlcnRpY2FsUkwgd2lkdGg1
MCIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1leHBlY3RlZC13aWR0
aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPjwvZGl2PgpAQCAtNjUsNSArNjUsNSBA
QCBGQUlMIC5pbmxpbmUtZ3JpZCAxMiBhc3NlcnRfZXF1YWxzOgogICAgICAgICA8ZGl2IGNsYXNz
PSJzZWNvbmRSb3dGaXJzdENvbHVtbiB2ZXJ0aWNhbFJMIHdpZHRoMjAwUGVyY2VudCIgZGF0YS1v
ZmZzZXQteD0iLTUwIiBkYXRhLW9mZnNldC15PSIxMDAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEw
MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+CiAgICAgICAgIDxkaXYgY2xhc3M9
ImZpcnN0Um93U3Bhbm5pbmcyQXV0b0NvbHVtbiB2ZXJ0aWNhbFJMIHdpZHRoMjUiIGRhdGEtb2Zm
c2V0LXg9IjUwIiBkYXRhLW9mZnNldC15PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIyNSIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+CiAgICAgPC9kaXY+Ci13aWR0aCBleHBlY3Rl
ZCAxMDAgYnV0IGdvdCAzMDAKK29mZnNldExlZnQgZXhwZWN0ZWQgMCBidXQgZ290IDEwMAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423033</attachid>
            <date>2021-03-12 04:05:50 -0800</date>
            <delta_ts>2021-03-15 12:42:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222376-20210312120548.patch</filename>
            <type>text/plain</type>
            <size>22136</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdlMWI4ODk4NDRlN2Q1
ZDgzYWZkNDk5ODA0M2Y0NmIwODZhMzUwYy4uN2IyYWE3ZTdlMTVmMDc4YjNjOTQ3YzY2Y2M3YTFj
MGIyOTc5ZDM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAzLTEyICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBSZXBsYWNlIHRo
ZSB1c2Ugb2YgLTEgd2l0aCBXVEY6Om51bGxvcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJlcGxhY2VzIC0xIHdpdGggbnVsbG9w
dCBpbiBncmlkIHRvIGluZGljYXRlIGluZGVmaW5pdGUgZm9yIGZ1bnRpb25zIHRoYXQKKyAgICAg
ICAgcmV0dXJucyBhbiBPcHRpb25hbCB0eXBlLiBUaGlzIGNoYW5nZSBoYXMgZXhwb3NlZCBhbiBp
c3N1ZSB3aGVuIHJlc29sdmluZyByZXBsYWNlZCBlbGVtbnQKKyAgICAgICAgZGVmaW5pdGVuZXNz
IGFzIGEgZ3JpZC1pdGVtIHdpdGggcmVzcGVjdCB0byBhc3BlY3QtcmF0aW8uIFRoZSBmaXggaXMg
dGhhdCB3aGVuIGNoZWNraW5nIGZvcgorICAgICAgICBoYXNSZXBsYWNlZExvZ2ljYWxIZWlnaHQo
KSwgZm9yIGZpeGVkIGl0ZW0gd2Ugc2hvdWxkIGp1c3QgcmV0dXJuIHRydWUgd2hpbGUgZm9yIHBl
cmNlbnQgb3IKKyAgICAgICAgY2FsY3VsYXRlZCBpdGVtcyB3ZSBrZWVwIHRoZSBjaGVjayBhcyBp
dCBpcy4gICAgIAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnJlcGxhY2VkTWluTWF4TG9naWNhbEhlaWdodENvbXB1dGVz
QXNOb25lIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjpwZXJmb3JtR3JpZEl0ZW1zUHJlTGF5b3V0IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjphcHBseVN0
cmV0Y2hBbGlnbm1lbnRUb0NoaWxkSWZOZWVkZWQgY29uc3QpOiAgICAgICAgCisgICAgICAgICog
cmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNo
aWxkIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGht
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6Z3JpZEFy
ZWFCcmVhZHRoRm9yQ2hpbGQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9HcmlkVHJhY2tT
aXppbmdBbGdvcml0aG0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6aW5nQWxn
b3JpdGhtOjptaW5TaXplRm9yQ2hpbGQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9Hcmlk
VHJhY2tTaXppbmdBbGdvcml0aG0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtU3RyYXRlZ3k6Om1pbkxvZ2ljYWxTaXplRm9yQ2hpbGQgY29uc3QpOgorCiAy
MDIxLTAzLTA5ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBBbGxv
dyBjcmVhdGlvbiBvZiBhIENTU0ZvbnRTZWxlY3RvciB3aXRoIGEgbm9uLURvY3VtZW50IFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9H
cmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dy
aWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAKaW5kZXggMjA1NTE3OGFhMzM3OTEyMzVmZDU0YTg2
MjJlNzVmZjNkYmZkNjYzOC4uZjcxNmE5YmQ4ODc0YWIzZDE1MTBhNDJiOTk2YjhjMzA5ZDg4MzFk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0Fs
Z29yaXRobS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFja1Npemlu
Z0FsZ29yaXRobS5jcHAKQEAgLTU1MSwxMiArNTUxLDcgQEAgdm9pZCBHcmlkVHJhY2tTaXppbmdB
bGdvcml0aG06OmRpc3RyaWJ1dGVTcGFjZVRvVHJhY2tzKFZlY3RvcjxHcmlkVHJhY2sqPiYgdHJh
Y2sKICAgICAgICAgdHJhY2stPnNldFBsYW5uZWRTaXplKHRyYWNrLT5wbGFubmVkU2l6ZSgpID09
IGluZmluaXR5ID8gdHJhY2stPnRlbXBTaXplKCkgOiBzdGQ6Om1heCh0cmFjay0+cGxhbm5lZFNp
emUoKSwgdHJhY2stPnRlbXBTaXplKCkpKTsKIH0KIAotTGF5b3V0U2l6ZSBHcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG06OmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRl
ckJveCYgY2hpbGQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHtlc3RpbWF0ZWRHcmlkQXJlYUJyZWFk
dGhGb3JDaGlsZChjaGlsZCwgRm9yQ29sdW1ucyksIGVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZv
ckNoaWxkKGNoaWxkLCBGb3JSb3dzKX07Ci19Ci0KLUxheW91dFVuaXQgR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtOjplc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJC
b3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAorT3B0
aW9uYWw8TGF5b3V0VW5pdD4gR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjplc3RpbWF0ZWRHcmlk
QXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXpp
bmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAogewogICAgIGNvbnN0IEdyaWRTcGFuJiBzcGFu
ID0gbV9ncmlkLmdyaWRJdGVtU3BhbihjaGlsZCwgZGlyZWN0aW9uKTsKICAgICBMYXlvdXRVbml0
IGdyaWRBcmVhU2l6ZTsKQEAgLTU3OCwxMSArNTczLDExIEBAIExheW91dFVuaXQgR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtOjplc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBS
ZW5kCiAKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gY2hpbGRJbmxpbmVEaXJlY3Rpb24g
PSBHcmlkTGF5b3V0RnVuY3Rpb25zOjpmbG93QXdhcmVEaXJlY3Rpb25Gb3JDaGlsZCgqbV9yZW5k
ZXJHcmlkLCBjaGlsZCwgRm9yQ29sdW1ucyk7CiAgICAgaWYgKGdyaWRBcmVhSXNJbmRlZmluaXRl
KQotICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IGNoaWxkSW5saW5lRGlyZWN0aW9uID8gc3Rk
OjptYXgoY2hpbGQubWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCksIGdyaWRBcmVhU2l6ZSkgOiAt
MV9sdTsKKyAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBjaGlsZElubGluZURpcmVjdGlvbiA/
IG1ha2VPcHRpb25hbChzdGQ6Om1heChjaGlsZC5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSwg
Z3JpZEFyZWFTaXplKSkgOiBXVEY6Om51bGxvcHQ7CiAgICAgcmV0dXJuIGdyaWRBcmVhU2l6ZTsK
IH0KIAotTGF5b3V0VW5pdCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmdyaWRBcmVhQnJlYWR0
aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biBkaXJlY3Rpb24pIGNvbnN0CitPcHRpb25hbDxMYXlvdXRVbml0PiBHcmlkVHJhY2tTaXppbmdB
bGdvcml0aG06OmdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQs
IEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0CiB7CiAgICAgYm9vbCBh
ZGRDb250ZW50QWxpZ25tZW50T2Zmc2V0ID0KICAgICAgICAgZGlyZWN0aW9uID09IEZvckNvbHVt
bnMgJiYgbV9zaXppbmdTdGF0ZSA9PSBSb3dTaXppbmdGaXJzdEl0ZXJhdGlvbjsKQEAgLTc1NSw3
ICs3NTAsNyBAQCBMYXlvdXRVbml0IEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5Ojps
b2dpY2FsSGVpZ2h0Rm9yQ2hpbGQoUmVuZGVyQm94JiBjaAogewogICAgIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiBjaGlsZEJsb2NrRGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxv
d0F3YXJlRGlyZWN0aW9uRm9yQ2hpbGQoKnJlbmRlckdyaWQoKSwgY2hpbGQsIEZvclJvd3MpOwog
ICAgIC8vIElmIHxjaGlsZHwgaGFzIGEgcmVsYXRpdmUgbG9naWNhbCBoZWlnaHQsIHdlIHNob3Vs
ZG4ndCBsZXQgaXQgb3ZlcnJpZGUgaXRzIGludHJpbnNpYyBoZWlnaHQsIHdoaWNoIGlzCi0gICAg
Ly8gd2hhdCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiBoZXJlLiBUaHVzIHdlIG5lZWQgdG8gc2V0IHRo
ZSBibG9jay1heGlzIG92ZXJyaWRlIHNpemUgdG8gLTEgKG5vIHBvc3NpYmxlIHJlc29sdXRpb24p
LgorICAgIC8vIHdoYXQgd2UgYXJlIGludGVyZXN0ZWQgaW4gaGVyZS4gVGh1cyB3ZSBuZWVkIHRv
IHNldCB0aGUgYmxvY2stYXhpcyBvdmVycmlkZSBzaXplIHRvIG51bGxvcHQgKG5vIHBvc3NpYmxl
IHJlc29sdXRpb24pLgogICAgIGlmIChzaG91bGRDbGVhck92ZXJyaWRpbmdDb250YWluaW5nQmxv
Y2tDb250ZW50U2l6ZUZvckNoaWxkKGNoaWxkLCBGb3JSb3dzKSkgewogICAgICAgICBzZXRPdmVy
cmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRCbG9j
a0RpcmVjdGlvbiwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgY2hpbGQuc2V0TmVlZHNMYXlvdXQo
TWFya09ubHlUaGlzKTsKQEAgLTgzMSw3ICs4MjYsNyBAQCBMYXlvdXRVbml0IEdyaWRUcmFja1Np
emluZ0FsZ29yaXRobVN0cmF0ZWd5OjptaW5TaXplRm9yQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCkg
YwogICAgICAgICByZXR1cm4gbWluU2l6ZTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0IGdyaWRB
cmVhU2l6ZSA9IG1fYWxnb3JpdGhtLmdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNoaWxkLCBjaGls
ZElubGluZURpcmVjdGlvbik7CisgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gZ3JpZEFyZWFTaXpl
ID0gbV9hbGdvcml0aG0uZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY2hpbGQsIGNoaWxkSW5saW5l
RGlyZWN0aW9uKTsKICAgICByZXR1cm4gbWluTG9naWNhbFNpemVGb3JDaGlsZChjaGlsZCwgY2hp
bGRNaW5TaXplLCBncmlkQXJlYVNpemUpICsgYmFzZWxpbmVTaGltOwogfQogCkBAIC05MTQsMTIg
KzkwOSwxMiBAQCBib29sIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5Ojp1cGRhdGVP
dmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpegogICAgIHJldHVybiB0cnVlOwogfQog
Ci1MYXlvdXRVbml0IEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5OjptaW5Mb2dpY2Fs
U2l6ZUZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIGNvbnN0IExlbmd0aCYgY2hpbGRNaW5TaXpl
LCBMYXlvdXRVbml0IGF2YWlsYWJsZVNpemUpIGNvbnN0CitMYXlvdXRVbml0IEdyaWRUcmFja1Np
emluZ0FsZ29yaXRobVN0cmF0ZWd5OjptaW5Mb2dpY2FsU2l6ZUZvckNoaWxkKFJlbmRlckJveCYg
Y2hpbGQsIGNvbnN0IExlbmd0aCYgY2hpbGRNaW5TaXplLCBPcHRpb25hbDxMYXlvdXRVbml0PiBh
dmFpbGFibGVTaXplKSBjb25zdAogewogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBjaGls
ZElubGluZURpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlv
bkZvckNoaWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkLCBGb3JDb2x1bW5zKTsKICAgICBib29sIGlz
Um93QXhpcyA9IGRpcmVjdGlvbigpID09IGNoaWxkSW5saW5lRGlyZWN0aW9uOwogICAgIGlmIChp
c1Jvd0F4aXMpCi0gICAgICAgIHJldHVybiBjaGlsZC5jb21wdXRlTG9naWNhbFdpZHRoSW5GcmFn
bWVudFVzaW5nKE1pblNpemUsIGNoaWxkTWluU2l6ZSwgYXZhaWxhYmxlU2l6ZSwgKnJlbmRlckdy
aWQoKSwgbnVsbHB0cikgKyBHcmlkTGF5b3V0RnVuY3Rpb25zOjptYXJnaW5Mb2dpY2FsU2l6ZUZv
ckNoaWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkSW5saW5lRGlyZWN0aW9uLCBjaGlsZCk7CisgICAg
ICAgIHJldHVybiBjaGlsZC5jb21wdXRlTG9naWNhbFdpZHRoSW5GcmFnbWVudFVzaW5nKE1pblNp
emUsIGNoaWxkTWluU2l6ZSwgYXZhaWxhYmxlU2l6ZS52YWx1ZU9yKDApLCAqcmVuZGVyR3JpZCgp
LCBudWxscHRyKSArIEdyaWRMYXlvdXRGdW5jdGlvbnM6Om1hcmdpbkxvZ2ljYWxTaXplRm9yQ2hp
bGQoKnJlbmRlckdyaWQoKSwgY2hpbGRJbmxpbmVEaXJlY3Rpb24sIGNoaWxkKTsKICAgICBib29s
IG92ZXJyaWRlU2l6ZUhhc0NoYW5nZWQgPSB1cGRhdGVPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2Nr
Q29udGVudFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRJbmxpbmVEaXJlY3Rpb24sIGF2YWlsYWJs
ZVNpemUpOwogICAgIGxheW91dEdyaWRJdGVtRm9yTWluU2l6ZUNvbXB1dGF0aW9uKGNoaWxkLCBv
dmVycmlkZVNpemVIYXNDaGFuZ2VkKTsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gY2hp
bGRCbG9ja0RpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlv
bkZvckNoaWxkKCpyZW5kZXJHcmlkKCksIGNoaWxkLCBGb3JSb3dzKTsKQEAgLTEwMzQsNyArMTAy
OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCByZWNvbXB1dGVVc2VkRmxleEZyYWN0aW9uSWZOZWVk
ZWQoZG91YmxlJiBmbGV4RnJhY3Rpb24sIExheW91dFVuaXQmIHRvdGFsR3Jvd3RoKSBjb25zdCBv
dmVycmlkZTsKICAgICBMYXlvdXRVbml0IGZyZWVTcGFjZUZvclN0cmV0Y2hBdXRvVHJhY2tzU3Rl
cCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgbWluQ29udGVudEZvckNoaWxkKFJl
bmRlckJveCYpIGNvbnN0IG92ZXJyaWRlOwotICAgIExheW91dFVuaXQgbWluTG9naWNhbFNpemVG
b3JDaGlsZChSZW5kZXJCb3gmLCBjb25zdCBMZW5ndGgmIGNoaWxkTWluU2l6ZSwgTGF5b3V0VW5p
dCBhdmFpbGFibGVTaXplKSBjb25zdCBvdmVycmlkZTsKKyAgICBMYXlvdXRVbml0IG1pbkxvZ2lj
YWxTaXplRm9yQ2hpbGQoUmVuZGVyQm94JiwgY29uc3QgTGVuZ3RoJiBjaGlsZE1pblNpemUsIE9w
dGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVNpemUpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAog
TGF5b3V0VW5pdCBJbmRlZmluaXRlU2l6ZVN0cmF0ZWd5OjpmcmVlU3BhY2VGb3JTdHJldGNoQXV0
b1RyYWNrc1N0ZXAoKSBjb25zdApAQCAtMTA0OSwxMyArMTA0NCwxNCBAQCBMYXlvdXRVbml0IElu
ZGVmaW5pdGVTaXplU3RyYXRlZ3k6OmZyZWVTcGFjZUZvclN0cmV0Y2hBdXRvVHJhY2tzU3RlcCgp
IGNvbnN0CiAgICAgcmV0dXJuIG1pblNpemUudmFsdWUoKSAtIGNvbXB1dGVUcmFja0Jhc2VkU2l6
ZSgpOwogfQogCi1MYXlvdXRVbml0IERlZmluaXRlU2l6ZVN0cmF0ZWd5OjptaW5Mb2dpY2FsU2l6
ZUZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIGNvbnN0IExlbmd0aCYgY2hpbGRNaW5TaXplLCBM
YXlvdXRVbml0IGF2YWlsYWJsZVNpemUpIGNvbnN0CitMYXlvdXRVbml0IERlZmluaXRlU2l6ZVN0
cmF0ZWd5OjptaW5Mb2dpY2FsU2l6ZUZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIGNvbnN0IExl
bmd0aCYgY2hpbGRNaW5TaXplLCBPcHRpb25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVTaXplKSBj
b25zdAogewogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBjaGlsZElubGluZURpcmVjdGlv
biA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlvbkZvckNoaWxkKCpyZW5k
ZXJHcmlkKCksIGNoaWxkLCBGb3JDb2x1bW5zKTsKLSAgICBMYXlvdXRVbml0IGluZGVmaW5pdGVT
aXplID0gZGlyZWN0aW9uKCkgPT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gPyBMYXlvdXRVbml0KCkg
OiBMYXlvdXRVbml0KC0xKTsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZmxvd0F3YXJl
RGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0aW9uRm9yQ2hp
bGQoKnJlbmRlckdyaWQoKSwgY2hpbGQsIGRpcmVjdGlvbigpKTsKLSAgICBpZiAoaGFzUmVsYXRp
dmVNYXJnaW5PclBhZGRpbmdGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGlyZWN0aW9uKSB8fCAo
ZGlyZWN0aW9uKCkgIT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gJiYgaGFzUmVsYXRpdmVPckludHJp
bnNpY1NpemVGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGlyZWN0aW9uKSkpCisgICAgaWYgKGhh
c1JlbGF0aXZlTWFyZ2luT3JQYWRkaW5nRm9yQ2hpbGQoY2hpbGQsIGZsb3dBd2FyZURpcmVjdGlv
bikgfHwgKGRpcmVjdGlvbigpICE9IGNoaWxkSW5saW5lRGlyZWN0aW9uICYmIGhhc1JlbGF0aXZl
T3JJbnRyaW5zaWNTaXplRm9yQ2hpbGQoY2hpbGQsIGZsb3dBd2FyZURpcmVjdGlvbikpKSB7Cisg
ICAgICAgIGF1dG8gaW5kZWZpbml0ZVNpemUgPSBkaXJlY3Rpb24oKSA9PSBjaGlsZElubGluZURp
cmVjdGlvbiA/IG1ha2VPcHRpb25hbCgwX2x1KSA6IFdURjo6bnVsbG9wdDsKICAgICAgICAgc2V0
T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQoY2hpbGQsIGRpcmVj
dGlvbigpLCBpbmRlZmluaXRlU2l6ZSk7CisgICAgfQogICAgIHJldHVybiBHcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG1TdHJhdGVneTo6bWluTG9naWNhbFNpemVGb3JDaGlsZChjaGlsZCwgY2hpbGRN
aW5TaXplLCBhdmFpbGFibGVTaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5oCmluZGV4IDQ5Y2Y1Zjc2ODdjZWMzNzU3
NWE1YTEzNjk5YmNmZjU3MjM3Mjc1NjIuLjc0ZTY2MGViNGIwOGY0MTJmOGVhMmE1MDEzNmVmNWFi
ZjViOGIyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJhY2tT
aXppbmdBbGdvcml0aG0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtLmgKQEAgLTExOCw4ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgTGF5b3V0
VW5pdCBtaW5Db250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluQ29udGVudFNpemU7IH07
CiAgICAgTGF5b3V0VW5pdCBtYXhDb250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4Q29u
dGVudFNpemU7IH07CiAKLSAgICBMYXlvdXRTaXplIGVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZv
ckNoaWxkKGNvbnN0IFJlbmRlckJveCYpIGNvbnN0OwogICAgIExheW91dFVuaXQgYmFzZWxpbmVP
ZmZzZXRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmLCBHcmlkQXhpcykgY29uc3Q7CisgICAgT3B0
aW9uYWw8TGF5b3V0VW5pdD4gZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3Qg
UmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKIAogICAgIHZvaWQg
Y2FjaGVCYXNlbGluZUFsaWduZWRJdGVtKGNvbnN0IFJlbmRlckJveCYsIEdyaWRBeGlzKTsKICAg
ICB2b2lkIGNvcHlCYXNlbGluZUl0ZW1zQ2FjaGUoY29uc3QgR3JpZFRyYWNrU2l6aW5nQWxnb3Jp
dGhtJiwgR3JpZEF4aXMpOwpAQCAtMTU5LDggKzE1OSw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxh
dGUgPFRyYWNrU2l6ZUNvbXB1dGF0aW9uUGhhc2UgcGhhc2U+IHZvaWQgaW5jcmVhc2VTaXplc1Rv
QWNjb21tb2RhdGVTcGFubmluZ0l0ZW1zKGNvbnN0IEdyaWRJdGVtc1NwYW5Hcm91cFJhbmdlJiBn
cmlkSXRlbXNXaXRoU3Bhbik7CiAgICAgTGF5b3V0VW5pdCBpdGVtU2l6ZUZvclRyYWNrU2l6ZUNv
bXB1dGF0aW9uUGhhc2UoVHJhY2tTaXplQ29tcHV0YXRpb25QaGFzZSwgUmVuZGVyQm94JikgY29u
c3Q7CiAgICAgdGVtcGxhdGUgPFRyYWNrU2l6ZUNvbXB1dGF0aW9uUGhhc2UgcGhhc2U+IHZvaWQg
ZGlzdHJpYnV0ZVNwYWNlVG9UcmFja3MoVmVjdG9yPEdyaWRUcmFjayo+JiB0cmFja3MsIFZlY3Rv
cjxHcmlkVHJhY2sqPiogZ3Jvd0JleW9uZEdyb3d0aExpbWl0c1RyYWNrcywgTGF5b3V0VW5pdCYg
YXZhaWxhYmxlTG9naWNhbFNwYWNlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGVzdGltYXRlZEdy
aWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbikgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChj
b25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OworICAgIE9w
dGlvbmFsPExheW91dFVuaXQ+IGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJv
eCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CiAKICAgICB2b2lkIGNvbXB1dGVC
YXNlbGluZUFsaWdubWVudENvbnRleHQoKTsKICAgICB2b2lkIHVwZGF0ZUJhc2VsaW5lQWxpZ25t
ZW50Q29udGV4dChjb25zdCBSZW5kZXJCb3gmLCBHcmlkQXhpcyk7CkBAIC0yNjcsNyArMjY2LDcg
QEAgcHJvdGVjdGVkOgogICAgIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobVN0cmF0ZWd5KEdyaWRU
cmFja1NpemluZ0FsZ29yaXRobSYgYWxnb3JpdGhtKQogICAgICAgICA6IG1fYWxnb3JpdGhtKGFs
Z29yaXRobSkgeyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluTG9naWNhbFNpemVGb3JD
aGlsZChSZW5kZXJCb3gmLCBjb25zdCBMZW5ndGgmIGNoaWxkTWluU2l6ZSwgTGF5b3V0VW5pdCBh
dmFpbGFibGVTaXplKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluTG9naWNhbFNp
emVGb3JDaGlsZChSZW5kZXJCb3gmLCBjb25zdCBMZW5ndGgmIGNoaWxkTWluU2l6ZSwgT3B0aW9u
YWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlU2l6ZSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGxh
eW91dEdyaWRJdGVtRm9yTWluU2l6ZUNvbXB1dGF0aW9uKFJlbmRlckJveCYsIGJvb2wgb3ZlcnJp
ZGVTaXplSGFzQ2hhbmdlZCkgY29uc3QgPSAwOwogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0Rm9yQ2hpbGQoUmVuZGVyQm94JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCmluZGV4IDVkY2ViYWFiZWQ5NGY3NzE2M2E3ZjRiM2RiMDVjZjE2MzRhZWVjZjQu
LjFjM2JlNzY1YmRkY2RiNjc3ZjM5YzYzYWUyOTE4OWQwZGRmNTI1MzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0zMjYwLDcgKzMyNjAsNyBAQCBib29sIFJlbmRl
ckJveDo6cmVwbGFjZWRNaW5NYXhMb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoU2l6ZVR5cGUg
c2l6ZVR5cGUpIGNvbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICBpZiAobG9naWNh
bEhlaWdodC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSAmJiBoYXNPdmVycmlkaW5nQ29udGFpbmlu
Z0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKSkKLSAgICAgICAgcmV0dXJuIG92ZXJyaWRpbmdD
b250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpID09IExheW91dFVuaXQoLTEpOwor
ICAgICAgICByZXR1cm4gb3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVp
Z2h0KCkgPT0gV1RGOjpudWxsb3B0OwogCiAgICAgLy8gTWFrZSBzdXJlICUgbWluLWhlaWdodCBh
bmQgJSBtYXgtaGVpZ2h0IHJlc29sdmUgdG8gbm9uZSBpZiB0aGUgY29udGFpbmluZyBibG9jayBo
YXMgYXV0byBoZWlnaHQuCiAgICAgLy8gTm90ZSB0aGF0IHRoZSAiaGVpZ2h0IiBjYXNlIGZvciBy
ZXBsYWNlZCBlbGVtZW50cyB3YXMgaGFuZGxlZCBieSBoYXNSZXBsYWNlZExvZ2ljYWxIZWlnaHQs
IHdoaWNoIGlzIHdoeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4
IDYyZWNlM2NjMDU1MGRlM2FiYTViMmFkZDFiZTNjNmFkOTQzNTVhYzYuLjYwZWIwMWUyNTA1NjE2
ZDQyYzY4Yzc5MDRhZWE3OTBiNDU3NjhkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRl
bXNPbkdyaWQoR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBhbGdvcml0aG0sIE9wdGlvbmFsPAog
ICAgICAgICBpZiAoIWNoaWxkLT5oYXNPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExv
Z2ljYWxXaWR0aCgpKQogICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRpbmdDb250YWluaW5n
QmxvY2tDb250ZW50TG9naWNhbFdpZHRoKExheW91dFVuaXQoKSk7CiAgICAgICAgIGlmICghY2hp
bGQtPmhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpKQot
ICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9n
aWNhbEhlaWdodChMYXlvdXRVbml0KC0xKSk7CisgICAgICAgICAgICBjaGlsZC0+c2V0T3ZlcnJp
ZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KFdURjo6bnVsbG9wdCk7CiAK
ICAgICAgICAgR3JpZEFyZWEgYXJlYSA9IGdyaWQuZ3JpZEl0ZW1BcmVhKCpjaGlsZCk7CiAgICAg
ICAgIGlmICghYXJlYS5yb3dzLmlzSW5kZWZpbml0ZSgpKQpAQCAtNjcyLDcgKzY3Miw3IEBAIHZv
aWQgUmVuZGVyR3JpZDo6cGVyZm9ybUdyaWRJdGVtc1ByZUxheW91dChjb25zdCBHcmlkVHJhY2tT
aXppbmdBbGdvcml0aG0mIGFsZ29yCiAgICAgICAgIC8vIE9ydGhvZ29uYWwgaXRlbXMgc2hvdWxk
IGJlIGxhaWQgb3V0IGluIG9yZGVyIHRvIHByb3Blcmx5IGNvbXB1dGUgY29udGVudC1zaXplZCB0
cmFja3MgdGhhdCBtYXkgZGVwZW5kIG9uIGl0ZW0ncyBpbnRyaW5zaWMgc2l6ZS4KICAgICAgICAg
Ly8gV2UgYWxzbyBuZWVkIHRvIHByb3Blcmx5IGVzdGltYXRlIGl0cyBncmlkIGFyZWEgc2l6ZSwg
c2luY2UgaXQgbWF5IGFmZmVjdCB0byB0aGUgYmFzZWxpbmUgc2hpbXMgaWYgc3VjaCBpdGVtIHBh
cnRpY2lhcHRlcyBpbiBiYXNlbGluZSBhbGlnbm1lbnQuIAogICAgICAgICBpZiAoR3JpZExheW91
dEZ1bmN0aW9uczo6aXNPcnRob2dvbmFsQ2hpbGQoKnRoaXMsICpjaGlsZCkpIHsKLSAgICAgICAg
ICAgIHVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoKmNoaWxkLCBhbGdvcml0aG0uZXN0aW1hdGVk
R3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoKmNoaWxkKSk7CisgICAgICAgICAgICB1cGRhdGVHcmlk
QXJlYUxvZ2ljYWxTaXplKCpjaGlsZCwgYWxnb3JpdGhtLmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0
aEZvckNoaWxkKCpjaGlsZCwgRm9yQ29sdW1ucyksIGFsZ29yaXRobS5lc3RpbWF0ZWRHcmlkQXJl
YUJyZWFkdGhGb3JDaGlsZCgqY2hpbGQsIEZvclJvd3MpKTsKICAgICAgICAgICAgIGNoaWxkLT5s
YXlvdXRJZk5lZWRlZCgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTY4
MCw3ICs2ODAsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBlcmZvcm1HcmlkSXRlbXNQcmVMYXlvdXQo
Y29uc3QgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBhbGdvcgogICAgICAgICAvLyBiYXNlbGlu
ZSBvciBub3QsIHdoaWNoIG1heSBpbXBseSBhIGN5Y2xpYyBzaXppbmcgZGVwZW5kZW5jeS4KICAg
ICAgICAgLy8gRklYTUU6IENhbiB3ZSBhdm9pZCBpdCA/CiAgICAgICAgIGlmIChpc0Jhc2VsaW5l
QWxpZ25tZW50Rm9yQ2hpbGQoKmNoaWxkKSkgewotICAgICAgICAgICAgdXBkYXRlR3JpZEFyZWFM
b2dpY2FsU2l6ZSgqY2hpbGQsIGFsZ29yaXRobS5lc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JD
aGlsZCgqY2hpbGQpKTsKKyAgICAgICAgICAgIHVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoKmNo
aWxkLCBhbGdvcml0aG0uZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoKmNoaWxkLCBG
b3JDb2x1bW5zKSwgYWxnb3JpdGhtLmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKCpj
aGlsZCwgRm9yUm93cykpOwogICAgICAgICAgICAgY2hpbGQtPmxheW91dElmTmVlZGVkKCk7CiAg
ICAgICAgIH0KICAgICB9CkBAIC04OTksMTEgKzg5OSwxMSBAQCBzdGF0aWMgY29uc3QgU3R5bGVD
b250ZW50QWxpZ25tZW50RGF0YSYgY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yR3JpZCgp
CiAgICAgcmV0dXJuIG5vcm1hbEJlaGF2aW9yOwogfQogCi1zdGF0aWMgYm9vbCBvdmVycmlkZVNp
emVDaGFuZ2VkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biBkaXJlY3Rpb24sIExheW91dFNpemUgc2l6ZSkKK3N0YXRpYyBib29sIG92ZXJyaWRlU2l6ZUNo
YW5nZWQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbiwgT3B0aW9uYWw8TGF5b3V0VW5pdD4gd2lkdGgsIE9wdGlvbmFsPExheW91dFVuaXQ+
IGhlaWdodCkKIHsKICAgICBpZiAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpCi0gICAgICAgIHJl
dHVybiAhY2hpbGQuaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lk
dGgoKSB8fCBjaGlsZC5vdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0
aCgpICE9IHNpemUud2lkdGgoKTsKLSAgICByZXR1cm4gIWNoaWxkLmhhc092ZXJyaWRpbmdDb250
YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpIHx8IGNoaWxkLm92ZXJyaWRpbmdDb250
YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpICE9IHNpemUuaGVpZ2h0KCk7CisgICAg
ICAgIHJldHVybiAhY2hpbGQuaGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dp
Y2FsV2lkdGgoKSB8fCBjaGlsZC5vdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2lj
YWxXaWR0aCgpICE9IHdpZHRoOworICAgIHJldHVybiAhY2hpbGQuaGFzT3ZlcnJpZGluZ0NvbnRh
aW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgfHwgY2hpbGQub3ZlcnJpZGluZ0NvbnRh
aW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgIT0gaGVpZ2h0OwogfQogCiBzdGF0aWMg
Ym9vbCBoYXNSZWxhdGl2ZUJsb2NrQXhpc1NpemUoY29uc3QgUmVuZGVyR3JpZCYgZ3JpZCwgY29u
c3QgUmVuZGVyQm94JiBjaGlsZCkKQEAgLTkxMSwxNyArOTExLDE3IEBAIHN0YXRpYyBib29sIGhh
c1JlbGF0aXZlQmxvY2tBeGlzU2l6ZShjb25zdCBSZW5kZXJHcmlkJiBncmlkLCBjb25zdCBSZW5k
ZXJCb3gmIGNoCiAgICAgcmV0dXJuIEdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbENo
aWxkKGdyaWQsIGNoaWxkKSA/IGNoaWxkLmhhc1JlbGF0aXZlTG9naWNhbFdpZHRoKCkgfHwgY2hp
bGQuc3R5bGUoKS5sb2dpY2FsV2lkdGgoKS5pc0F1dG8oKSA6IGNoaWxkLmhhc1JlbGF0aXZlTG9n
aWNhbEhlaWdodCgpOwogfQogCi12b2lkIFJlbmRlckdyaWQ6OnVwZGF0ZUdyaWRBcmVhTG9naWNh
bFNpemUoUmVuZGVyQm94JiBjaGlsZCwgTGF5b3V0U2l6ZSBncmlkQXJlYUxvZ2ljYWxTaXplKSBj
b25zdAordm9pZCBSZW5kZXJHcmlkOjp1cGRhdGVHcmlkQXJlYUxvZ2ljYWxTaXplKFJlbmRlckJv
eCYgY2hpbGQsIE9wdGlvbmFsPExheW91dFVuaXQ+IHdpZHRoLCBPcHRpb25hbDxMYXlvdXRVbml0
PiBoZWlnaHQpIGNvbnN0CiB7CiAgICAgLy8gQmVjYXVzZSB0aGUgZ3JpZCBhcmVhIGNhbm5vdCBi
ZSBzdHlsZWQsIHdlIGRvbid0IG5lZWQgdG8gYWRqdXN0CiAgICAgLy8gdGhlIGdyaWQgYnJlYWR0
aCB0byBhY2NvdW50IGZvciAnYm94LXNpemluZycuCi0gICAgYm9vbCBncmlkQXJlYVdpZHRoQ2hh
bmdlZCA9IG92ZXJyaWRlU2l6ZUNoYW5nZWQoY2hpbGQsIEZvckNvbHVtbnMsIGdyaWRBcmVhTG9n
aWNhbFNpemUpOwotICAgIGJvb2wgZ3JpZEFyZWFIZWlnaHRDaGFuZ2VkID0gb3ZlcnJpZGVTaXpl
Q2hhbmdlZChjaGlsZCwgRm9yUm93cywgZ3JpZEFyZWFMb2dpY2FsU2l6ZSk7CisgICAgYm9vbCBn
cmlkQXJlYVdpZHRoQ2hhbmdlZCA9IG92ZXJyaWRlU2l6ZUNoYW5nZWQoY2hpbGQsIEZvckNvbHVt
bnMsIHdpZHRoLCBoZWlnaHQpOworICAgIGJvb2wgZ3JpZEFyZWFIZWlnaHRDaGFuZ2VkID0gb3Zl
cnJpZGVTaXplQ2hhbmdlZChjaGlsZCwgRm9yUm93cywgd2lkdGgsIGhlaWdodCk7CiAgICAgaWYg
KGdyaWRBcmVhV2lkdGhDaGFuZ2VkIHx8IChncmlkQXJlYUhlaWdodENoYW5nZWQgJiYgaGFzUmVs
YXRpdmVCbG9ja0F4aXNTaXplKCp0aGlzLCBjaGlsZCkpKQogICAgICAgICBjaGlsZC5zZXROZWVk
c0xheW91dChNYXJrT25seVRoaXMpOwogCi0gICAgY2hpbGQuc2V0T3ZlcnJpZGluZ0NvbnRhaW5p
bmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoZ3JpZEFyZWFMb2dpY2FsU2l6ZS53aWR0aCgpKTsK
LSAgICBjaGlsZC5zZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWln
aHQoZ3JpZEFyZWFMb2dpY2FsU2l6ZS5oZWlnaHQoKSk7CisgICAgY2hpbGQuc2V0T3ZlcnJpZGlu
Z0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgod2lkdGgpOworICAgIGNoaWxkLnNl
dE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodChoZWlnaHQpOwog
fQogCiB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcygpCkBAIC05NDAsNyArOTQwLDcg
QEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQogICAgICAgICAvLyBTZXR0aW5n
IHRoZSBkZWZpbml0ZSBncmlkIGFyZWEncyBzaXplcy4gSXQgbWF5IGltcGx5IHRoYXQgdGhlCiAg
ICAgICAgIC8vIGl0ZW0gbXVzdCBwZXJmb3JtIGEgbGF5b3V0IGlmIGl0cyBhcmVhIGRpZmZlcnMg
ZnJvbSB0aGUgb25lCiAgICAgICAgIC8vIHVzZWQgZHVyaW5nIHRoZSB0cmFjayBzaXppbmcgYWxn
b3JpdGhtLgotICAgICAgICB1cGRhdGVHcmlkQXJlYUxvZ2ljYWxTaXplKCpjaGlsZCwgTGF5b3V0
U2l6ZShncmlkQXJlYUJyZWFkdGhGb3JDaGlsZEluY2x1ZGluZ0FsaWdubWVudE9mZnNldHMoKmNo
aWxkLCBGb3JDb2x1bW5zKSwgZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGRJbmNsdWRpbmdBbGlnbm1l
bnRPZmZzZXRzKCpjaGlsZCwgRm9yUm93cykpKTsKKyAgICAgICAgdXBkYXRlR3JpZEFyZWFMb2dp
Y2FsU2l6ZSgqY2hpbGQsIGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkSW5jbHVkaW5nQWxpZ25tZW50
T2Zmc2V0cygqY2hpbGQsIEZvckNvbHVtbnMpLCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZEluY2x1
ZGluZ0FsaWdubWVudE9mZnNldHMoKmNoaWxkLCBGb3JSb3dzKSk7CiAKICAgICAgICAgTGF5b3V0
UmVjdCBvbGRDaGlsZFJlY3QgPSBjaGlsZC0+ZnJhbWVSZWN0KCk7CiAKQEAgLTExMzYsNyArMTEz
Niw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6YXBwbHlTdHJldGNoQWxpZ25tZW50VG9DaGlsZElmTmVl
ZGVkKFJlbmRlckJveCYgY2hpbGQpCiAgICAgYm9vbCBhbGxvd2VkVG9TdHJldGNoQ2hpbGRCbG9j
a1NpemUgPSBibG9ja0Zsb3dJc0NvbHVtbkF4aXMgPyBhbGxvd2VkVG9TdHJldGNoQ2hpbGRBbG9u
Z0NvbHVtbkF4aXMoY2hpbGQpIDogYWxsb3dlZFRvU3RyZXRjaENoaWxkQWxvbmdSb3dBeGlzKGNo
aWxkKTsKICAgICBpZiAoYWxsb3dlZFRvU3RyZXRjaENoaWxkQmxvY2tTaXplKSB7CiAgICAgICAg
IExheW91dFVuaXQgc3RyZXRjaGVkTG9naWNhbEhlaWdodCA9IGF2YWlsYWJsZUFsaWdubWVudFNw
YWNlRm9yQ2hpbGRCZWZvcmVTdHJldGNoaW5nKEdyaWRMYXlvdXRGdW5jdGlvbnM6Om92ZXJyaWRp
bmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxkKGNoaWxkLCBjaGlsZEJsb2NrRGly
ZWN0aW9uKS52YWx1ZSgpLCBjaGlsZCk7Ci0gICAgICAgIExheW91dFVuaXQgZGVzaXJlZExvZ2lj
YWxIZWlnaHQgPSBjaGlsZC5jb25zdHJhaW5Mb2dpY2FsSGVpZ2h0QnlNaW5NYXgoc3RyZXRjaGVk
TG9naWNhbEhlaWdodCwgLTFfbHUpOworICAgICAgICBMYXlvdXRVbml0IGRlc2lyZWRMb2dpY2Fs
SGVpZ2h0ID0gY2hpbGQuY29uc3RyYWluTG9naWNhbEhlaWdodEJ5TWluTWF4KHN0cmV0Y2hlZExv
Z2ljYWxIZWlnaHQsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdM
b2dpY2FsSGVpZ2h0KGRlc2lyZWRMb2dpY2FsSGVpZ2h0KTsKIAogICAgICAgICAvLyBDaGVja2lu
ZyB0aGUgbG9naWNhbC1oZWlnaHQgb2YgYSBjaGlsZCBpc24ndCBlbm91Z2guIFNldHRpbmcgYW4g
b3ZlcnJpZGUgbG9naWNhbC1oZWlnaHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5o
CmluZGV4IDdjYmQ4ZGRlNjRmZWRmZTI4NTU4YThiMzM0NjQ4MDRmYzJhMGZhMGMuLmJiODVjNjdj
ODgyNDVjNzE1OTNlMDBiMWZiYjY0OTFkNGQ2MjhlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBn
dXR0ZXJzU2l6ZShjb25zdCBHcmlkJiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCB1bnNpZ25l
ZCBzdGFydExpbmUsIHVuc2lnbmVkIHNwYW4sIE9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJs
ZVNpemUpIGNvbnN0OwogICAgIExheW91dFVuaXQgZ3JpZEl0ZW1PZmZzZXQoR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uKSBjb25zdDsKIAotICAgIHZvaWQgdXBkYXRlR3JpZEFyZWFMb2dpY2FsU2l6
ZShSZW5kZXJCb3gmLCBMYXlvdXRTaXplKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUdyaWRBcmVh
TG9naWNhbFNpemUoUmVuZGVyQm94JiwgT3B0aW9uYWw8TGF5b3V0VW5pdD4gd2lkdGgsIE9wdGlv
bmFsPExheW91dFVuaXQ+IGhlaWdodCkgY29uc3Q7CiAgICAgYm9vbCBpc0Jhc2VsaW5lQWxpZ25t
ZW50Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAgICAgYm9vbCBpc0Jhc2VsaW5l
QWxpZ25tZW50Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiwgR3JpZEF4aXMpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA4MzRlNDU2
NjQ3ZjQzYjQ3NzRmNzU2YWU2MDQ3MWU1OTQ3MjA0MzY2Li45Yzg4NmY2M2YxODk5N2I0ZTIzMWZm
OTIwZjRjNjA5MjZlYWYwYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAKQEAgLTM1MCw3ICszNTAsMTAgQEAgYm9vbCBSZW5kZXJSZXBsYWNlZDo6aGFz
UmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3QKICAgICBpZiAoc3R5bGUoKS5sb2dpY2FsSGVp
Z2h0KCkuaXNBdXRvKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChzdHlsZSgp
LmxvZ2ljYWxIZWlnaHQoKS5pc1NwZWNpZmllZCgpKSB7CisgICAgaWYgKHN0eWxlKCkubG9naWNh
bEhlaWdodCgpLmlzRml4ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoc3R5
bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkpIHsKICAgICAgICAg
aWYgKGhhc0F1dG9IZWlnaHRPckNvbnRhaW5pbmdCbG9ja1dpdGhBdXRvSGVpZ2h0KCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggNzBlMzhlODcxNWNiZGEzZWU1MDczZTNlYWI5YTU4NWFhNjZk
YjJjZi4uZWUzYTkwZWU5MTVmMmVkODI0NWMxOTg5NzU3MDdkMGJhMDM2MzZkNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDMtMTIgIFppcmFu
IFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWdyaWRdIFJlcGxhY2UgdGhl
IHVzZSBvZiAtMSB3aXRoIFdURjo6bnVsbG9wdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMzc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGZhaWxlZCBleHBlY3RhdGlvbnMgb2YgdGhlIGZh
aWxpbmcgdGVzdC4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQv
YWxpZ25tZW50L2dyaWQtc2VsZi1iYXNlbGluZS1ub3QtYXBwbGllZC1pZi1zaXppbmctY3ljbGlj
LWRlcGVuZGVuY3ktMDAxLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wMy0wOCAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBTZWxlY3QgQ1NTIHByb3BlcnRpZXMg
YW5pbWF0aW5nIGFzIGZsb2F0IHNob3VsZCBub3QgYWxsb3cgbmVnYXRpdmUgdmFsdWVzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtZ3JpZC9hbGlnbm1lbnQvZ3JpZC1zZWxmLWJhc2VsaW5lLW5vdC1hcHBsaWVkLWlmLXNpemlu
Zy1jeWNsaWMtZGVwZW5kZW5jeS0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvYWxpZ25tZW50L2dyaWQtc2Vs
Zi1iYXNlbGluZS1ub3QtYXBwbGllZC1pZi1zaXppbmctY3ljbGljLWRlcGVuZGVuY3ktMDAxLWV4
cGVjdGVkLnR4dAppbmRleCBlZGQ3ODk3Yjc1ZDlmYWEyNjkxNjcwNGU3Mjg2NGYwMWFmNmZiN2Q2
Li4zODQ4YTAwNDkzYjQ0OTg0MTE5OGZiYThmYzZjNDVjMjI0MWYxY2ZkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9h
bGlnbm1lbnQvZ3JpZC1zZWxmLWJhc2VsaW5lLW5vdC1hcHBsaWVkLWlmLXNpemluZy1jeWNsaWMt
ZGVwZW5kZW5jeS0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2FsaWdubWVudC9ncmlkLXNlbGYtYmFz
ZWxpbmUtbm90LWFwcGxpZWQtaWYtc2l6aW5nLWN5Y2xpYy1kZXBlbmRlbmN5LTAwMS1leHBlY3Rl
ZC50eHQKQEAgLTY1LDUgKzY1LDUgQEAgRkFJTCAuaW5saW5lLWdyaWQgMTIgYXNzZXJ0X2VxdWFs
czoKICAgICAgICAgPGRpdiBjbGFzcz0ic2Vjb25kUm93Rmlyc3RDb2x1bW4gdmVydGljYWxSTCB3
aWR0aDIwMFBlcmNlbnQiIGRhdGEtb2Zmc2V0LXg9Ii01MCIgZGF0YS1vZmZzZXQteT0iMTAwIiBk
YXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPjwvZGl2
PgogICAgICAgICA8ZGl2IGNsYXNzPSJmaXJzdFJvd1NwYW5uaW5nMkF1dG9Db2x1bW4gdmVydGlj
YWxSTCB3aWR0aDI1IiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0iMCIgZGF0YS1l
eHBlY3RlZC13aWR0aD0iMjUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAiPjwvZGl2PgogICAg
IDwvZGl2Pgotd2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMzAwCitvZmZzZXRMZWZ0IGV4cGVj
dGVkIDAgYnV0IGdvdCAxMDAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423222</attachid>
            <date>2021-03-15 12:42:12 -0700</date>
            <delta_ts>2021-03-16 07:38:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222376-20210315194210.patch</filename>
            <type>text/plain</type>
            <size>22261</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdlMWI4ODk4NDRlN2Q1
ZDgzYWZkNDk5ODA0M2Y0NmIwODZhMzUwYy4uNzViMzZjZWUyM2IwOTg2NDQ4NWFkNDQxMTZmYzVk
NWFmMjYyNzQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAzLTEyICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBSZXBsYWNlIHRo
ZSB1c2Ugb2YgLTEgd2l0aCBXVEY6Om51bGxvcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IEphdmll
ciBGZXJuYW5kZXouCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVwbGFjZXMgLTEgd2l0aCBudWxs
b3B0IGluIGdyaWQgdG8gaW5kaWNhdGUgaW5kZWZpbml0ZSBmb3IgZnVudGlvbnMgdGhhdAorICAg
ICAgICByZXR1cm4gYW4gT3B0aW9uYWwgdHlwZS4gVGhpcyBjaGFuZ2UgaGFzIGV4cG9zZWQgYW4g
aXNzdWUgd2hlbiByZXNvbHZpbmcgcmVwbGFjZWQgZWxlbWVudAorICAgICAgICBkZWZpbml0ZW5l
c3MgYXMgYSBncmlkLWl0ZW0gd2l0aCByZXNwZWN0IHRvIGFzcGVjdC1yYXRpby4gVGhlIGZpeCBp
cyB0aGF0IHdoZW4gY2hlY2tpbmcgZm9yCisgICAgICAgIGhhc1JlcGxhY2VkTG9naWNhbEhlaWdo
dCgpLCBmb3IgZml4ZWQgaXRlbSB3ZSBzaG91bGQganVzdCByZXR1cm4gdHJ1ZSB3aGlsZSBmb3Ig
cGVyY2VudCBvcgorICAgICAgICBjYWxjdWxhdGVkIGl0ZW1zIHdlIGtlZXAgdGhlIGNoZWNrIGFz
IGl0IGlzLiAgICAgCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cmVwbGFjZWRNaW5NYXhMb2dpY2FsSGVpZ2h0Q29tcHV0
ZXNBc05vbmUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQgY29uc3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckdyaWQ6OnBlcmZvcm1HcmlkSXRlbXNQcmVMYXlvdXQgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFwcGx5
U3RyZXRjaEFsaWdubWVudFRvQ2hpbGRJZk5lZWRlZCBjb25zdCk6ICAgICAgICAKKyAgICAgICAg
KiByZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6ZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9y
Q2hpbGQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0
aG0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtOjpncmlk
QXJlYUJyZWFkdGhGb3JDaGlsZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0dyaWRUcmFj
a1NpemluZ0FsZ29yaXRobS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tTaXppbmdB
bGdvcml0aG06Om1pblNpemVGb3JDaGlsZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0dy
aWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmlkVHJhY2tT
aXppbmdBbGdvcml0aG1TdHJhdGVneTo6bWluTG9naWNhbFNpemVGb3JDaGlsZCBjb25zdCk6CisK
IDIwMjEtMDMtMDkgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFs
bG93IGNyZWF0aW9uIG9mIGEgQ1NTRm9udFNlbGVjdG9yIHdpdGggYSBub24tRG9jdW1lbnQgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0dyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmNwcAppbmRleCAyMDU1MTc4YWEzMzc5MTIzNWZkNTRh
ODYyMmU3NWZmM2RiZmQ2NjM4Li5mNzE2YTliZDg4NzRhYjNkMTUxMGE0MmI5OTZiOGMzMDlkODgz
MWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5n
QWxnb3JpdGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtLmNwcApAQCAtNTUxLDEyICs1NTEsNyBAQCB2b2lkIEdyaWRUcmFja1Npemlu
Z0FsZ29yaXRobTo6ZGlzdHJpYnV0ZVNwYWNlVG9UcmFja3MoVmVjdG9yPEdyaWRUcmFjayo+JiB0
cmFjawogICAgICAgICB0cmFjay0+c2V0UGxhbm5lZFNpemUodHJhY2stPnBsYW5uZWRTaXplKCkg
PT0gaW5maW5pdHkgPyB0cmFjay0+dGVtcFNpemUoKSA6IHN0ZDo6bWF4KHRyYWNrLT5wbGFubmVk
U2l6ZSgpLCB0cmFjay0+dGVtcFNpemUoKSkpOwogfQogCi1MYXlvdXRTaXplIEdyaWRUcmFja1Np
emluZ0FsZ29yaXRobTo6ZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVu
ZGVyQm94JiBjaGlsZCkgY29uc3QKLXsKLSAgICByZXR1cm4ge2VzdGltYXRlZEdyaWRBcmVhQnJl
YWR0aEZvckNoaWxkKGNoaWxkLCBGb3JDb2x1bW5zKSwgZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRo
Rm9yQ2hpbGQoY2hpbGQsIEZvclJvd3MpfTsKLX0KLQotTGF5b3V0VW5pdCBHcmlkVHJhY2tTaXpp
bmdBbGdvcml0aG06OmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRl
ckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0CitP
cHRpb25hbDxMYXlvdXRVbml0PiBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG06OmVzdGltYXRlZEdy
aWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0CiB7CiAgICAgY29uc3QgR3JpZFNwYW4mIHNw
YW4gPSBtX2dyaWQuZ3JpZEl0ZW1TcGFuKGNoaWxkLCBkaXJlY3Rpb24pOwogICAgIExheW91dFVu
aXQgZ3JpZEFyZWFTaXplOwpAQCAtNTc4LDExICs1NzMsMTEgQEAgTGF5b3V0VW5pdCBHcmlkVHJh
Y2tTaXppbmdBbGdvcml0aG06OmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0
IFJlbmQKIAogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBjaGlsZElubGluZURpcmVjdGlv
biA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlvbkZvckNoaWxkKCptX3Jl
bmRlckdyaWQsIGNoaWxkLCBGb3JDb2x1bW5zKTsKICAgICBpZiAoZ3JpZEFyZWFJc0luZGVmaW5p
dGUpCi0gICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gPyBz
dGQ6Om1heChjaGlsZC5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSwgZ3JpZEFyZWFTaXplKSA6
IC0xX2x1OworICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09IGNoaWxkSW5saW5lRGlyZWN0aW9u
ID8gbWFrZU9wdGlvbmFsKHN0ZDo6bWF4KGNoaWxkLm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgp
LCBncmlkQXJlYVNpemUpKSA6IFdURjo6bnVsbG9wdDsKICAgICByZXR1cm4gZ3JpZEFyZWFTaXpl
OwogfQogCi1MYXlvdXRVbml0IEdyaWRUcmFja1NpemluZ0FsZ29yaXRobTo6Z3JpZEFyZWFCcmVh
ZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW9uIGRpcmVjdGlvbikgY29uc3QKK09wdGlvbmFsPExheW91dFVuaXQ+IEdyaWRUcmFja1Npemlu
Z0FsZ29yaXRobTo6Z3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGls
ZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKIHsKICAgICBib29s
IGFkZENvbnRlbnRBbGlnbm1lbnRPZmZzZXQgPQogICAgICAgICBkaXJlY3Rpb24gPT0gRm9yQ29s
dW1ucyAmJiBtX3NpemluZ1N0YXRlID09IFJvd1NpemluZ0ZpcnN0SXRlcmF0aW9uOwpAQCAtNzU1
LDcgKzc1MCw3IEBAIExheW91dFVuaXQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtU3RyYXRlZ3k6
OmxvZ2ljYWxIZWlnaHRGb3JDaGlsZChSZW5kZXJCb3gmIGNoCiB7CiAgICAgR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uIGNoaWxkQmxvY2tEaXJlY3Rpb24gPSBHcmlkTGF5b3V0RnVuY3Rpb25zOjpm
bG93QXdhcmVEaXJlY3Rpb25Gb3JDaGlsZCgqcmVuZGVyR3JpZCgpLCBjaGlsZCwgRm9yUm93cyk7
CiAgICAgLy8gSWYgfGNoaWxkfCBoYXMgYSByZWxhdGl2ZSBsb2dpY2FsIGhlaWdodCwgd2Ugc2hv
dWxkbid0IGxldCBpdCBvdmVycmlkZSBpdHMgaW50cmluc2ljIGhlaWdodCwgd2hpY2ggaXMKLSAg
ICAvLyB3aGF0IHdlIGFyZSBpbnRlcmVzdGVkIGluIGhlcmUuIFRodXMgd2UgbmVlZCB0byBzZXQg
dGhlIGJsb2NrLWF4aXMgb3ZlcnJpZGUgc2l6ZSB0byAtMSAobm8gcG9zc2libGUgcmVzb2x1dGlv
bikuCisgICAgLy8gd2hhdCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiBoZXJlLiBUaHVzIHdlIG5lZWQg
dG8gc2V0IHRoZSBibG9jay1heGlzIG92ZXJyaWRlIHNpemUgdG8gbnVsbG9wdCAobm8gcG9zc2li
bGUgcmVzb2x1dGlvbikuCiAgICAgaWYgKHNob3VsZENsZWFyT3ZlcnJpZGluZ0NvbnRhaW5pbmdC
bG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQoY2hpbGQsIEZvclJvd3MpKSB7CiAgICAgICAgIHNldE92
ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxkKGNoaWxkLCBjaGlsZEJs
b2NrRGlyZWN0aW9uLCBXVEY6Om51bGxvcHQpOwogICAgICAgICBjaGlsZC5zZXROZWVkc0xheW91
dChNYXJrT25seVRoaXMpOwpAQCAtODMxLDcgKzgyNiw3IEBAIExheW91dFVuaXQgR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtU3RyYXRlZ3k6Om1pblNpemVGb3JDaGlsZChSZW5kZXJCb3gmIGNoaWxk
KSBjCiAgICAgICAgIHJldHVybiBtaW5TaXplOwogICAgIH0KIAotICAgIExheW91dFVuaXQgZ3Jp
ZEFyZWFTaXplID0gbV9hbGdvcml0aG0uZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY2hpbGQsIGNo
aWxkSW5saW5lRGlyZWN0aW9uKTsKKyAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBncmlkQXJlYVNp
emUgPSBtX2FsZ29yaXRobS5ncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjaGlsZCwgY2hpbGRJbmxp
bmVEaXJlY3Rpb24pOwogICAgIHJldHVybiBtaW5Mb2dpY2FsU2l6ZUZvckNoaWxkKGNoaWxkLCBj
aGlsZE1pblNpemUsIGdyaWRBcmVhU2l6ZSkgKyBiYXNlbGluZVNoaW07CiB9CiAKQEAgLTkxNCwx
MiArOTA5LDEyIEBAIGJvb2wgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtU3RyYXRlZ3k6OnVwZGF0
ZU92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLUxheW91dFVuaXQgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtU3RyYXRlZ3k6Om1pbkxvZ2lj
YWxTaXplRm9yQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgY29uc3QgTGVuZ3RoJiBjaGlsZE1pblNp
emUsIExheW91dFVuaXQgYXZhaWxhYmxlU2l6ZSkgY29uc3QKK0xheW91dFVuaXQgR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtU3RyYXRlZ3k6Om1pbkxvZ2ljYWxTaXplRm9yQ2hpbGQoUmVuZGVyQm94
JiBjaGlsZCwgY29uc3QgTGVuZ3RoJiBjaGlsZE1pblNpemUsIE9wdGlvbmFsPExheW91dFVuaXQ+
IGF2YWlsYWJsZVNpemUpIGNvbnN0CiB7CiAgICAgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGNo
aWxkSW5saW5lRGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0
aW9uRm9yQ2hpbGQoKnJlbmRlckdyaWQoKSwgY2hpbGQsIEZvckNvbHVtbnMpOwogICAgIGJvb2wg
aXNSb3dBeGlzID0gZGlyZWN0aW9uKCkgPT0gY2hpbGRJbmxpbmVEaXJlY3Rpb247CiAgICAgaWYg
KGlzUm93QXhpcykKLSAgICAgICAgcmV0dXJuIGNoaWxkLmNvbXB1dGVMb2dpY2FsV2lkdGhJbkZy
YWdtZW50VXNpbmcoTWluU2l6ZSwgY2hpbGRNaW5TaXplLCBhdmFpbGFibGVTaXplLCAqcmVuZGVy
R3JpZCgpLCBudWxscHRyKSArIEdyaWRMYXlvdXRGdW5jdGlvbnM6Om1hcmdpbkxvZ2ljYWxTaXpl
Rm9yQ2hpbGQoKnJlbmRlckdyaWQoKSwgY2hpbGRJbmxpbmVEaXJlY3Rpb24sIGNoaWxkKTsKKyAg
ICAgICAgcmV0dXJuIGNoaWxkLmNvbXB1dGVMb2dpY2FsV2lkdGhJbkZyYWdtZW50VXNpbmcoTWlu
U2l6ZSwgY2hpbGRNaW5TaXplLCBhdmFpbGFibGVTaXplLnZhbHVlT3IoMCksICpyZW5kZXJHcmlk
KCksIG51bGxwdHIpICsgR3JpZExheW91dEZ1bmN0aW9uczo6bWFyZ2luTG9naWNhbFNpemVGb3JD
aGlsZCgqcmVuZGVyR3JpZCgpLCBjaGlsZElubGluZURpcmVjdGlvbiwgY2hpbGQpOwogICAgIGJv
b2wgb3ZlcnJpZGVTaXplSGFzQ2hhbmdlZCA9IHVwZGF0ZU92ZXJyaWRpbmdDb250YWluaW5nQmxv
Y2tDb250ZW50U2l6ZUZvckNoaWxkKGNoaWxkLCBjaGlsZElubGluZURpcmVjdGlvbiwgYXZhaWxh
YmxlU2l6ZSk7CiAgICAgbGF5b3V0R3JpZEl0ZW1Gb3JNaW5TaXplQ29tcHV0YXRpb24oY2hpbGQs
IG92ZXJyaWRlU2l6ZUhhc0NoYW5nZWQpOwogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBj
aGlsZEJsb2NrRGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0
aW9uRm9yQ2hpbGQoKnJlbmRlckdyaWQoKSwgY2hpbGQsIEZvclJvd3MpOwpAQCAtMTAzNCw3ICsx
MDI5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlY29tcHV0ZVVzZWRGbGV4RnJhY3Rpb25JZk5l
ZWRlZChkb3VibGUmIGZsZXhGcmFjdGlvbiwgTGF5b3V0VW5pdCYgdG90YWxHcm93dGgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgZnJlZVNwYWNlRm9yU3RyZXRjaEF1dG9UcmFja3NT
dGVwKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBtaW5Db250ZW50Rm9yQ2hpbGQo
UmVuZGVyQm94JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTGF5b3V0VW5pdCBtaW5Mb2dpY2FsU2l6
ZUZvckNoaWxkKFJlbmRlckJveCYsIGNvbnN0IExlbmd0aCYgY2hpbGRNaW5TaXplLCBMYXlvdXRV
bml0IGF2YWlsYWJsZVNpemUpIGNvbnN0IG92ZXJyaWRlOworICAgIExheW91dFVuaXQgbWluTG9n
aWNhbFNpemVGb3JDaGlsZChSZW5kZXJCb3gmLCBjb25zdCBMZW5ndGgmIGNoaWxkTWluU2l6ZSwg
T3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxhYmxlU2l6ZSkgY29uc3Qgb3ZlcnJpZGU7CiB9Owog
CiBMYXlvdXRVbml0IEluZGVmaW5pdGVTaXplU3RyYXRlZ3k6OmZyZWVTcGFjZUZvclN0cmV0Y2hB
dXRvVHJhY2tzU3RlcCgpIGNvbnN0CkBAIC0xMDQ5LDEzICsxMDQ0LDE0IEBAIExheW91dFVuaXQg
SW5kZWZpbml0ZVNpemVTdHJhdGVneTo6ZnJlZVNwYWNlRm9yU3RyZXRjaEF1dG9UcmFja3NTdGVw
KCkgY29uc3QKICAgICByZXR1cm4gbWluU2l6ZS52YWx1ZSgpIC0gY29tcHV0ZVRyYWNrQmFzZWRT
aXplKCk7CiB9CiAKLUxheW91dFVuaXQgRGVmaW5pdGVTaXplU3RyYXRlZ3k6Om1pbkxvZ2ljYWxT
aXplRm9yQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgY29uc3QgTGVuZ3RoJiBjaGlsZE1pblNpemUs
IExheW91dFVuaXQgYXZhaWxhYmxlU2l6ZSkgY29uc3QKK0xheW91dFVuaXQgRGVmaW5pdGVTaXpl
U3RyYXRlZ3k6Om1pbkxvZ2ljYWxTaXplRm9yQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgY29uc3Qg
TGVuZ3RoJiBjaGlsZE1pblNpemUsIE9wdGlvbmFsPExheW91dFVuaXQ+IGF2YWlsYWJsZVNpemUp
IGNvbnN0CiB7CiAgICAgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGNoaWxkSW5saW5lRGlyZWN0
aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0aW9uRm9yQ2hpbGQoKnJl
bmRlckdyaWQoKSwgY2hpbGQsIEZvckNvbHVtbnMpOwotICAgIExheW91dFVuaXQgaW5kZWZpbml0
ZVNpemUgPSBkaXJlY3Rpb24oKSA9PSBjaGlsZElubGluZURpcmVjdGlvbiA/IExheW91dFVuaXQo
KSA6IExheW91dFVuaXQoLTEpOwogICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBmbG93QXdh
cmVEaXJlY3Rpb24gPSBHcmlkTGF5b3V0RnVuY3Rpb25zOjpmbG93QXdhcmVEaXJlY3Rpb25Gb3JD
aGlsZCgqcmVuZGVyR3JpZCgpLCBjaGlsZCwgZGlyZWN0aW9uKCkpOwotICAgIGlmIChoYXNSZWxh
dGl2ZU1hcmdpbk9yUGFkZGluZ0ZvckNoaWxkKGNoaWxkLCBmbG93QXdhcmVEaXJlY3Rpb24pIHx8
IChkaXJlY3Rpb24oKSAhPSBjaGlsZElubGluZURpcmVjdGlvbiAmJiBoYXNSZWxhdGl2ZU9ySW50
cmluc2ljU2l6ZUZvckNoaWxkKGNoaWxkLCBmbG93QXdhcmVEaXJlY3Rpb24pKSkKKyAgICBpZiAo
aGFzUmVsYXRpdmVNYXJnaW5PclBhZGRpbmdGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGlyZWN0
aW9uKSB8fCAoZGlyZWN0aW9uKCkgIT0gY2hpbGRJbmxpbmVEaXJlY3Rpb24gJiYgaGFzUmVsYXRp
dmVPckludHJpbnNpY1NpemVGb3JDaGlsZChjaGlsZCwgZmxvd0F3YXJlRGlyZWN0aW9uKSkpIHsK
KyAgICAgICAgYXV0byBpbmRlZmluaXRlU2l6ZSA9IGRpcmVjdGlvbigpID09IGNoaWxkSW5saW5l
RGlyZWN0aW9uID8gbWFrZU9wdGlvbmFsKDBfbHUpIDogV1RGOjpudWxsb3B0OwogICAgICAgICBz
ZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpemVGb3JDaGlsZChjaGlsZCwgZGly
ZWN0aW9uKCksIGluZGVmaW5pdGVTaXplKTsKKyAgICB9CiAgICAgcmV0dXJuIEdyaWRUcmFja1Np
emluZ0FsZ29yaXRobVN0cmF0ZWd5OjptaW5Mb2dpY2FsU2l6ZUZvckNoaWxkKGNoaWxkLCBjaGls
ZE1pblNpemUsIGF2YWlsYWJsZVNpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtLmgKaW5kZXggNDljZjVmNzY4N2NlYzM3
NTc1YTVhMTM2OTliY2ZmNTcyMzcyNzU2Mi4uNzRlNjYwZWI0YjA4ZjQxMmY4ZWEyYTUwMTM2ZWY1
YWJmNWI4YjJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRUcmFj
a1NpemluZ0FsZ29yaXRobS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkVHJh
Y2tTaXppbmdBbGdvcml0aG0uaApAQCAtMTE4LDggKzExOCw4IEBAIHB1YmxpYzoKICAgICBMYXlv
dXRVbml0IG1pbkNvbnRlbnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9taW5Db250ZW50U2l6ZTsg
fTsKICAgICBMYXlvdXRVbml0IG1heENvbnRlbnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhD
b250ZW50U2l6ZTsgfTsKIAotICAgIExheW91dFNpemUgZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRo
Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBiYXNlbGlu
ZU9mZnNldEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRBeGlzKSBjb25zdDsKKyAgICBP
cHRpb25hbDxMYXlvdXRVbml0PiBlc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25z
dCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwogCiAgICAgdm9p
ZCBjYWNoZUJhc2VsaW5lQWxpZ25lZEl0ZW0oY29uc3QgUmVuZGVyQm94JiwgR3JpZEF4aXMpOwog
ICAgIHZvaWQgY29weUJhc2VsaW5lSXRlbXNDYWNoZShjb25zdCBHcmlkVHJhY2tTaXppbmdBbGdv
cml0aG0mLCBHcmlkQXhpcyk7CkBAIC0xNTksOCArMTU5LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1w
bGF0ZSA8VHJhY2tTaXplQ29tcHV0YXRpb25QaGFzZSBwaGFzZT4gdm9pZCBpbmNyZWFzZVNpemVz
VG9BY2NvbW1vZGF0ZVNwYW5uaW5nSXRlbXMoY29uc3QgR3JpZEl0ZW1zU3Bhbkdyb3VwUmFuZ2Um
IGdyaWRJdGVtc1dpdGhTcGFuKTsKICAgICBMYXlvdXRVbml0IGl0ZW1TaXplRm9yVHJhY2tTaXpl
Q29tcHV0YXRpb25QaGFzZShUcmFja1NpemVDb21wdXRhdGlvblBoYXNlLCBSZW5kZXJCb3gmKSBj
b25zdDsKICAgICB0ZW1wbGF0ZSA8VHJhY2tTaXplQ29tcHV0YXRpb25QaGFzZSBwaGFzZT4gdm9p
ZCBkaXN0cmlidXRlU3BhY2VUb1RyYWNrcyhWZWN0b3I8R3JpZFRyYWNrKj4mIHRyYWNrcywgVmVj
dG9yPEdyaWRUcmFjayo+KiBncm93QmV5b25kR3Jvd3RoTGltaXRzVHJhY2tzLCBMYXlvdXRVbml0
JiBhdmFpbGFibGVMb2dpY2FsU3BhY2UpIGNvbnN0OwotICAgIExheW91dFVuaXQgZXN0aW1hdGVk
R3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5n
RGlyZWN0aW9uKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGdyaWRBcmVhQnJlYWR0aEZvckNoaWxk
KGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CisgICAg
T3B0aW9uYWw8TGF5b3V0VW5pdD4gZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVy
Qm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKIAogICAgIHZvaWQgY29tcHV0
ZUJhc2VsaW5lQWxpZ25tZW50Q29udGV4dCgpOwogICAgIHZvaWQgdXBkYXRlQmFzZWxpbmVBbGln
bm1lbnRDb250ZXh0KGNvbnN0IFJlbmRlckJveCYsIEdyaWRBeGlzKTsKQEAgLTI2Nyw3ICsyNjYs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtU3RyYXRlZ3koR3Jp
ZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBhbGdvcml0aG0pCiAgICAgICAgIDogbV9hbGdvcml0aG0o
YWxnb3JpdGhtKSB7IH0KIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtaW5Mb2dpY2FsU2l6ZUZv
ckNoaWxkKFJlbmRlckJveCYsIGNvbnN0IExlbmd0aCYgY2hpbGRNaW5TaXplLCBMYXlvdXRVbml0
IGF2YWlsYWJsZVNpemUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtaW5Mb2dpY2Fs
U2l6ZUZvckNoaWxkKFJlbmRlckJveCYsIGNvbnN0IExlbmd0aCYgY2hpbGRNaW5TaXplLCBPcHRp
b25hbDxMYXlvdXRVbml0PiBhdmFpbGFibGVTaXplKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
bGF5b3V0R3JpZEl0ZW1Gb3JNaW5TaXplQ29tcHV0YXRpb24oUmVuZGVyQm94JiwgYm9vbCBvdmVy
cmlkZVNpemVIYXNDaGFuZ2VkKSBjb25zdCA9IDA7CiAKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxI
ZWlnaHRGb3JDaGlsZChSZW5kZXJCb3gmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKaW5kZXggNWRjZWJhYWJlZDk0Zjc3MTYzYTdmNGIzZGIwNWNmMTYzNGFlZWNm
NC4uMWMzYmU3NjViZGRjZGI2NzdmMzljNjNhZTI5MTg5ZDBkZGY1MjUzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTMyNjAsNyArMzI2MCw3IEBAIGJvb2wgUmVu
ZGVyQm94OjpyZXBsYWNlZE1pbk1heExvZ2ljYWxIZWlnaHRDb21wdXRlc0FzTm9uZShTaXplVHlw
ZSBzaXplVHlwZSkgY29uCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIGlmIChsb2dp
Y2FsSGVpZ2h0LmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpICYmIGhhc092ZXJyaWRpbmdDb250YWlu
aW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCgpKQotICAgICAgICByZXR1cm4gb3ZlcnJpZGlu
Z0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgPT0gTGF5b3V0VW5pdCgtMSk7
CisgICAgICAgIHJldHVybiBvdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxI
ZWlnaHQoKSA9PSBXVEY6Om51bGxvcHQ7CiAKICAgICAvLyBNYWtlIHN1cmUgJSBtaW4taGVpZ2h0
IGFuZCAlIG1heC1oZWlnaHQgcmVzb2x2ZSB0byBub25lIGlmIHRoZSBjb250YWluaW5nIGJsb2Nr
IGhhcyBhdXRvIGhlaWdodC4KICAgICAvLyBOb3RlIHRoYXQgdGhlICJoZWlnaHQiIGNhc2UgZm9y
IHJlcGxhY2VkIGVsZW1lbnRzIHdhcyBoYW5kbGVkIGJ5IGhhc1JlcGxhY2VkTG9naWNhbEhlaWdo
dCwgd2hpY2ggaXMgd2h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5k
ZXggNjJlY2UzY2MwNTUwZGUzYWJhNWIyYWRkMWJlM2M2YWQ5NDM1NWFjNi4uNjBlYjAxZTI1MDU2
MTZkNDJjNjhjNzkwNGFlYTc5MGI0NTc2OGQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcApAQCAtNjEzLDcgKzYxMyw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJ
dGVtc09uR3JpZChHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0mIGFsZ29yaXRobSwgT3B0aW9uYWw8
CiAgICAgICAgIGlmICghY2hpbGQtPmhhc092ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50
TG9naWNhbFdpZHRoKCkpCiAgICAgICAgICAgICBjaGlsZC0+c2V0T3ZlcnJpZGluZ0NvbnRhaW5p
bmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoTGF5b3V0VW5pdCgpKTsKICAgICAgICAgaWYgKCFj
aGlsZC0+aGFzT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkp
Ci0gICAgICAgICAgICBjaGlsZC0+c2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRM
b2dpY2FsSGVpZ2h0KExheW91dFVuaXQoLTEpKTsKKyAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVy
cmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoV1RGOjpudWxsb3B0KTsK
IAogICAgICAgICBHcmlkQXJlYSBhcmVhID0gZ3JpZC5ncmlkSXRlbUFyZWEoKmNoaWxkKTsKICAg
ICAgICAgaWYgKCFhcmVhLnJvd3MuaXNJbmRlZmluaXRlKCkpCkBAIC02NzIsNyArNjcyLDcgQEAg
dm9pZCBSZW5kZXJHcmlkOjpwZXJmb3JtR3JpZEl0ZW1zUHJlTGF5b3V0KGNvbnN0IEdyaWRUcmFj
a1NpemluZ0FsZ29yaXRobSYgYWxnb3IKICAgICAgICAgLy8gT3J0aG9nb25hbCBpdGVtcyBzaG91
bGQgYmUgbGFpZCBvdXQgaW4gb3JkZXIgdG8gcHJvcGVybHkgY29tcHV0ZSBjb250ZW50LXNpemVk
IHRyYWNrcyB0aGF0IG1heSBkZXBlbmQgb24gaXRlbSdzIGludHJpbnNpYyBzaXplLgogICAgICAg
ICAvLyBXZSBhbHNvIG5lZWQgdG8gcHJvcGVybHkgZXN0aW1hdGUgaXRzIGdyaWQgYXJlYSBzaXpl
LCBzaW5jZSBpdCBtYXkgYWZmZWN0IHRvIHRoZSBiYXNlbGluZSBzaGltcyBpZiBzdWNoIGl0ZW0g
cGFydGljaWFwdGVzIGluIGJhc2VsaW5lIGFsaWdubWVudC4gCiAgICAgICAgIGlmIChHcmlkTGF5
b3V0RnVuY3Rpb25zOjppc09ydGhvZ29uYWxDaGlsZCgqdGhpcywgKmNoaWxkKSkgewotICAgICAg
ICAgICAgdXBkYXRlR3JpZEFyZWFMb2dpY2FsU2l6ZSgqY2hpbGQsIGFsZ29yaXRobS5lc3RpbWF0
ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZCgqY2hpbGQpKTsKKyAgICAgICAgICAgIHVwZGF0ZUdy
aWRBcmVhTG9naWNhbFNpemUoKmNoaWxkLCBhbGdvcml0aG0uZXN0aW1hdGVkR3JpZEFyZWFCcmVh
ZHRoRm9yQ2hpbGQoKmNoaWxkLCBGb3JDb2x1bW5zKSwgYWxnb3JpdGhtLmVzdGltYXRlZEdyaWRB
cmVhQnJlYWR0aEZvckNoaWxkKCpjaGlsZCwgRm9yUm93cykpOwogICAgICAgICAgICAgY2hpbGQt
PmxheW91dElmTmVlZGVkKCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAt
NjgwLDcgKzY4MCw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGVyZm9ybUdyaWRJdGVtc1ByZUxheW91
dChjb25zdCBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0mIGFsZ29yCiAgICAgICAgIC8vIGJhc2Vs
aW5lIG9yIG5vdCwgd2hpY2ggbWF5IGltcGx5IGEgY3ljbGljIHNpemluZyBkZXBlbmRlbmN5Lgog
ICAgICAgICAvLyBGSVhNRTogQ2FuIHdlIGF2b2lkIGl0ID8KICAgICAgICAgaWYgKGlzQmFzZWxp
bmVBbGlnbm1lbnRGb3JDaGlsZCgqY2hpbGQpKSB7Ci0gICAgICAgICAgICB1cGRhdGVHcmlkQXJl
YUxvZ2ljYWxTaXplKCpjaGlsZCwgYWxnb3JpdGhtLmVzdGltYXRlZEdyaWRBcmVhQnJlYWR0aEZv
ckNoaWxkKCpjaGlsZCkpOworICAgICAgICAgICAgdXBkYXRlR3JpZEFyZWFMb2dpY2FsU2l6ZSgq
Y2hpbGQsIGFsZ29yaXRobS5lc3RpbWF0ZWRHcmlkQXJlYUJyZWFkdGhGb3JDaGlsZCgqY2hpbGQs
IEZvckNvbHVtbnMpLCBhbGdvcml0aG0uZXN0aW1hdGVkR3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQo
KmNoaWxkLCBGb3JSb3dzKSk7CiAgICAgICAgICAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTg5OSwxMSArODk5LDExIEBAIHN0YXRpYyBjb25zdCBTdHls
ZUNvbnRlbnRBbGlnbm1lbnREYXRhJiBjb250ZW50QWxpZ25tZW50Tm9ybWFsQmVoYXZpb3JHcmlk
KCkKICAgICByZXR1cm4gbm9ybWFsQmVoYXZpb3I7CiB9CiAKLXN0YXRpYyBib29sIG92ZXJyaWRl
U2l6ZUNoYW5nZWQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW9uIGRpcmVjdGlvbiwgTGF5b3V0U2l6ZSBzaXplKQorc3RhdGljIGJvb2wgb3ZlcnJpZGVTaXpl
Q2hhbmdlZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBPcHRpb25hbDxMYXlvdXRVbml0PiB3aWR0aCwgT3B0aW9uYWw8TGF5b3V0VW5p
dD4gaGVpZ2h0KQogewogICAgIGlmIChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykKLSAgICAgICAg
cmV0dXJuICFjaGlsZC5oYXNPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxX
aWR0aCgpIHx8IGNoaWxkLm92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdp
ZHRoKCkgIT0gc2l6ZS53aWR0aCgpOwotICAgIHJldHVybiAhY2hpbGQuaGFzT3ZlcnJpZGluZ0Nv
bnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgfHwgY2hpbGQub3ZlcnJpZGluZ0Nv
bnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgIT0gc2l6ZS5oZWlnaHQoKTsKKyAg
ICAgICAgcmV0dXJuICFjaGlsZC5oYXNPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExv
Z2ljYWxXaWR0aCgpIHx8IGNoaWxkLm92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9n
aWNhbFdpZHRoKCkgIT0gd2lkdGg7CisgICAgcmV0dXJuICFjaGlsZC5oYXNPdmVycmlkaW5nQ29u
dGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKSB8fCBjaGlsZC5vdmVycmlkaW5nQ29u
dGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoKSAhPSBoZWlnaHQ7CiB9CiAKIHN0YXRp
YyBib29sIGhhc1JlbGF0aXZlQmxvY2tBeGlzU2l6ZShjb25zdCBSZW5kZXJHcmlkJiBncmlkLCBj
b25zdCBSZW5kZXJCb3gmIGNoaWxkKQpAQCAtOTExLDE3ICs5MTEsMTcgQEAgc3RhdGljIGJvb2wg
aGFzUmVsYXRpdmVCbG9ja0F4aXNTaXplKGNvbnN0IFJlbmRlckdyaWQmIGdyaWQsIGNvbnN0IFJl
bmRlckJveCYgY2gKICAgICByZXR1cm4gR3JpZExheW91dEZ1bmN0aW9uczo6aXNPcnRob2dvbmFs
Q2hpbGQoZ3JpZCwgY2hpbGQpID8gY2hpbGQuaGFzUmVsYXRpdmVMb2dpY2FsV2lkdGgoKSB8fCBj
aGlsZC5zdHlsZSgpLmxvZ2ljYWxXaWR0aCgpLmlzQXV0bygpIDogY2hpbGQuaGFzUmVsYXRpdmVM
b2dpY2FsSGVpZ2h0KCk7CiB9CiAKLXZvaWQgUmVuZGVyR3JpZDo6dXBkYXRlR3JpZEFyZWFMb2dp
Y2FsU2l6ZShSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRTaXplIGdyaWRBcmVhTG9naWNhbFNpemUp
IGNvbnN0Cit2b2lkIFJlbmRlckdyaWQ6OnVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoUmVuZGVy
Qm94JiBjaGlsZCwgT3B0aW9uYWw8TGF5b3V0VW5pdD4gd2lkdGgsIE9wdGlvbmFsPExheW91dFVu
aXQ+IGhlaWdodCkgY29uc3QKIHsKICAgICAvLyBCZWNhdXNlIHRoZSBncmlkIGFyZWEgY2Fubm90
IGJlIHN0eWxlZCwgd2UgZG9uJ3QgbmVlZCB0byBhZGp1c3QKICAgICAvLyB0aGUgZ3JpZCBicmVh
ZHRoIHRvIGFjY291bnQgZm9yICdib3gtc2l6aW5nJy4KLSAgICBib29sIGdyaWRBcmVhV2lkdGhD
aGFuZ2VkID0gb3ZlcnJpZGVTaXplQ2hhbmdlZChjaGlsZCwgRm9yQ29sdW1ucywgZ3JpZEFyZWFM
b2dpY2FsU2l6ZSk7Ci0gICAgYm9vbCBncmlkQXJlYUhlaWdodENoYW5nZWQgPSBvdmVycmlkZVNp
emVDaGFuZ2VkKGNoaWxkLCBGb3JSb3dzLCBncmlkQXJlYUxvZ2ljYWxTaXplKTsKKyAgICBib29s
IGdyaWRBcmVhV2lkdGhDaGFuZ2VkID0gb3ZlcnJpZGVTaXplQ2hhbmdlZChjaGlsZCwgRm9yQ29s
dW1ucywgd2lkdGgsIGhlaWdodCk7CisgICAgYm9vbCBncmlkQXJlYUhlaWdodENoYW5nZWQgPSBv
dmVycmlkZVNpemVDaGFuZ2VkKGNoaWxkLCBGb3JSb3dzLCB3aWR0aCwgaGVpZ2h0KTsKICAgICBp
ZiAoZ3JpZEFyZWFXaWR0aENoYW5nZWQgfHwgKGdyaWRBcmVhSGVpZ2h0Q2hhbmdlZCAmJiBoYXNS
ZWxhdGl2ZUJsb2NrQXhpc1NpemUoKnRoaXMsIGNoaWxkKSkpCiAgICAgICAgIGNoaWxkLnNldE5l
ZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CiAKLSAgICBjaGlsZC5zZXRPdmVycmlkaW5nQ29udGFp
bmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aChncmlkQXJlYUxvZ2ljYWxTaXplLndpZHRoKCkp
OwotICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhl
aWdodChncmlkQXJlYUxvZ2ljYWxTaXplLmhlaWdodCgpKTsKKyAgICBjaGlsZC5zZXRPdmVycmlk
aW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCh3aWR0aCk7CisgICAgY2hpbGQu
c2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KGhlaWdodCk7
CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0R3JpZEl0ZW1zKCkKQEAgLTk0MCw3ICs5NDAs
NyBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcygpCiAgICAgICAgIC8vIFNldHRp
bmcgdGhlIGRlZmluaXRlIGdyaWQgYXJlYSdzIHNpemVzLiBJdCBtYXkgaW1wbHkgdGhhdCB0aGUK
ICAgICAgICAgLy8gaXRlbSBtdXN0IHBlcmZvcm0gYSBsYXlvdXQgaWYgaXRzIGFyZWEgZGlmZmVy
cyBmcm9tIHRoZSBvbmUKICAgICAgICAgLy8gdXNlZCBkdXJpbmcgdGhlIHRyYWNrIHNpemluZyBh
bGdvcml0aG0uCi0gICAgICAgIHVwZGF0ZUdyaWRBcmVhTG9naWNhbFNpemUoKmNoaWxkLCBMYXlv
dXRTaXplKGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkSW5jbHVkaW5nQWxpZ25tZW50T2Zmc2V0cygq
Y2hpbGQsIEZvckNvbHVtbnMpLCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZEluY2x1ZGluZ0FsaWdu
bWVudE9mZnNldHMoKmNoaWxkLCBGb3JSb3dzKSkpOworICAgICAgICB1cGRhdGVHcmlkQXJlYUxv
Z2ljYWxTaXplKCpjaGlsZCwgZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGRJbmNsdWRpbmdBbGlnbm1l
bnRPZmZzZXRzKCpjaGlsZCwgRm9yQ29sdW1ucyksIGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkSW5j
bHVkaW5nQWxpZ25tZW50T2Zmc2V0cygqY2hpbGQsIEZvclJvd3MpKTsKIAogICAgICAgICBMYXlv
dXRSZWN0IG9sZENoaWxkUmVjdCA9IGNoaWxkLT5mcmFtZVJlY3QoKTsKIApAQCAtMTEzNiw3ICsx
MTM2LDcgQEAgdm9pZCBSZW5kZXJHcmlkOjphcHBseVN0cmV0Y2hBbGlnbm1lbnRUb0NoaWxkSWZO
ZWVkZWQoUmVuZGVyQm94JiBjaGlsZCkKICAgICBib29sIGFsbG93ZWRUb1N0cmV0Y2hDaGlsZEJs
b2NrU2l6ZSA9IGJsb2NrRmxvd0lzQ29sdW1uQXhpcyA/IGFsbG93ZWRUb1N0cmV0Y2hDaGlsZEFs
b25nQ29sdW1uQXhpcyhjaGlsZCkgOiBhbGxvd2VkVG9TdHJldGNoQ2hpbGRBbG9uZ1Jvd0F4aXMo
Y2hpbGQpOwogICAgIGlmIChhbGxvd2VkVG9TdHJldGNoQ2hpbGRCbG9ja1NpemUpIHsKICAgICAg
ICAgTGF5b3V0VW5pdCBzdHJldGNoZWRMb2dpY2FsSGVpZ2h0ID0gYXZhaWxhYmxlQWxpZ25tZW50
U3BhY2VGb3JDaGlsZEJlZm9yZVN0cmV0Y2hpbmcoR3JpZExheW91dEZ1bmN0aW9uczo6b3ZlcnJp
ZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQoY2hpbGQsIGNoaWxkQmxvY2tE
aXJlY3Rpb24pLnZhbHVlKCksIGNoaWxkKTsKLSAgICAgICAgTGF5b3V0VW5pdCBkZXNpcmVkTG9n
aWNhbEhlaWdodCA9IGNoaWxkLmNvbnN0cmFpbkxvZ2ljYWxIZWlnaHRCeU1pbk1heChzdHJldGNo
ZWRMb2dpY2FsSGVpZ2h0LCAtMV9sdSk7CisgICAgICAgIExheW91dFVuaXQgZGVzaXJlZExvZ2lj
YWxIZWlnaHQgPSBjaGlsZC5jb25zdHJhaW5Mb2dpY2FsSGVpZ2h0QnlNaW5NYXgoc3RyZXRjaGVk
TG9naWNhbEhlaWdodCwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgY2hpbGQuc2V0T3ZlcnJpZGlu
Z0xvZ2ljYWxIZWlnaHQoZGVzaXJlZExvZ2ljYWxIZWlnaHQpOwogCiAgICAgICAgIC8vIENoZWNr
aW5nIHRoZSBsb2dpY2FsLWhlaWdodCBvZiBhIGNoaWxkIGlzbid0IGVub3VnaC4gU2V0dGluZyBh
biBvdmVycmlkZSBsb2dpY2FsLWhlaWdodApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmgKaW5kZXggN2NiZDhkZGU2NGZlZGZlMjg1NThhOGIzMzQ2NDgwNGZjMmEwZmEwYy4uYmI4NWM2
N2M4ODI0NWM3MTU5M2UwMGIxZmJiNjQ5MWQ0ZDYyOGUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5oCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0
IGd1dHRlcnNTaXplKGNvbnN0IEdyaWQmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIHVuc2ln
bmVkIHN0YXJ0TGluZSwgdW5zaWduZWQgc3BhbiwgT3B0aW9uYWw8TGF5b3V0VW5pdD4gYXZhaWxh
YmxlU2l6ZSkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBncmlkSXRlbU9mZnNldChHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24pIGNvbnN0OwogCi0gICAgdm9pZCB1cGRhdGVHcmlkQXJlYUxvZ2ljYWxT
aXplKFJlbmRlckJveCYsIExheW91dFNpemUpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlR3JpZEFy
ZWFMb2dpY2FsU2l6ZShSZW5kZXJCb3gmLCBPcHRpb25hbDxMYXlvdXRVbml0PiB3aWR0aCwgT3B0
aW9uYWw8TGF5b3V0VW5pdD4gaGVpZ2h0KSBjb25zdDsKICAgICBib29sIGlzQmFzZWxpbmVBbGln
bm1lbnRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmKSBjb25zdDsKICAgICBib29sIGlzQmFzZWxp
bmVBbGlnbm1lbnRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmLCBHcmlkQXhpcykgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDgzNGU0
NTY2NDdmNDNiNDc3NGY3NTZhZTYwNDcxZTU5NDcyMDQzNjYuLjk0YTBiMGQ1OTAwZjZmZjI4ZDM4
NGMwN2E2NWUwYTRlZTAyNTZkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcApAQCAtMzUwLDExICszNTAsMTEgQEAgYm9vbCBSZW5kZXJSZXBsYWNlZDo6
aGFzUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3QKICAgICBpZiAoc3R5bGUoKS5sb2dpY2Fs
SGVpZ2h0KCkuaXNBdXRvKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChzdHls
ZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc1NwZWNpZmllZCgpKSB7Ci0gICAgICAgIGlmIChoYXNBdXRv
SGVpZ2h0T3JDb250YWluaW5nQmxvY2tXaXRoQXV0b0hlaWdodCgpKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmIChzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc0ZpeGVkKCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KKworICAgIGlmIChzdHlsZSgpLmxvZ2ljYWxIZWln
aHQoKS5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSkKKyAgICAgICAgcmV0dXJuICFoYXNBdXRvSGVp
Z2h0T3JDb250YWluaW5nQmxvY2tXaXRoQXV0b0hlaWdodCgpOwogCiAgICAgaWYgKHN0eWxlKCku
bG9naWNhbEhlaWdodCgpLmlzSW50cmluc2ljKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNzBlMzhlODcxNWNiZGEzZWU1MDczZTNlYWI5
YTU4NWFhNjZkYjJjZi4uNzc0NDA1ZDNhZjQwN2IxMzk2MDM0NGRjYjc3ZTBjZmVhZWMzZDg0OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDMt
MTIgIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWdyaWRdIFJl
cGxhY2UgdGhlIHVzZSBvZiAtMSB3aXRoIFdURjo6bnVsbG9wdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMzc2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgSmF2aWVyIEZlcm5hbmRlei4KKworICAgICAgICBVcGRhdGUgZmFpbGVkIGV4cGVjdGF0aW9u
cyBvZiB0aGUgZmFpbGluZyB0ZXN0LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9hbGlnbm1lbnQvZ3JpZC1zZWxmLWJhc2VsaW5lLW5vdC1hcHBsaWVkLWlmLXNp
emluZy1jeWNsaWMtZGVwZW5kZW5jeS0wMDEtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAzLTA4ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFNlbGVjdCBDU1Mg
cHJvcGVydGllcyBhbmltYXRpbmcgYXMgZmxvYXQgc2hvdWxkIG5vdCBhbGxvdyBuZWdhdGl2ZSB2
YWx1ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1ncmlkL2FsaWdubWVudC9ncmlkLXNlbGYtYmFzZWxpbmUtbm90LWFwcGxp
ZWQtaWYtc2l6aW5nLWN5Y2xpYy1kZXBlbmRlbmN5LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9hbGlnbm1l
bnQvZ3JpZC1zZWxmLWJhc2VsaW5lLW5vdC1hcHBsaWVkLWlmLXNpemluZy1jeWNsaWMtZGVwZW5k
ZW5jeS0wMDEtZXhwZWN0ZWQudHh0CmluZGV4IGVkZDc4OTdiNzVkOWZhYTI2OTE2NzA0ZTcyODY0
ZjAxYWY2ZmI3ZDYuLjM4NDhhMDA0OTNiNDQ5ODQxMTk4ZmJhOGZjNmM0NWMyMjQxZjFjZmQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1ncmlkL2FsaWdubWVudC9ncmlkLXNlbGYtYmFzZWxpbmUtbm90LWFwcGxpZWQtaWYtc2l6
aW5nLWN5Y2xpYy1kZXBlbmRlbmN5LTAwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvYWxpZ25tZW50L2dy
aWQtc2VsZi1iYXNlbGluZS1ub3QtYXBwbGllZC1pZi1zaXppbmctY3ljbGljLWRlcGVuZGVuY3kt
MDAxLWV4cGVjdGVkLnR4dApAQCAtNjUsNSArNjUsNSBAQCBGQUlMIC5pbmxpbmUtZ3JpZCAxMiBh
c3NlcnRfZXF1YWxzOgogICAgICAgICA8ZGl2IGNsYXNzPSJzZWNvbmRSb3dGaXJzdENvbHVtbiB2
ZXJ0aWNhbFJMIHdpZHRoMjAwUGVyY2VudCIgZGF0YS1vZmZzZXQteD0iLTUwIiBkYXRhLW9mZnNl
dC15PSIxMDAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjEwMCI+PC9kaXY+CiAgICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93U3Bhbm5pbmcyQXV0b0Nv
bHVtbiB2ZXJ0aWNhbFJMIHdpZHRoMjUiIGRhdGEtb2Zmc2V0LXg9IjUwIiBkYXRhLW9mZnNldC15
PSIwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIyNSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+
PC9kaXY+CiAgICAgPC9kaXY+Ci13aWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAzMDAKK29mZnNl
dExlZnQgZXhwZWN0ZWQgMCBidXQgZ290IDEwMAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>