<?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>209066</bug_id>
          
          <creation_ts>2020-03-13 10:49:36 -0700</creation_ts>
          <short_desc>Take into account referrer-policy in append Origin header algorithm</short_desc>
          <delta_ts>2021-12-01 06:52:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211122</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>211122</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1629699</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-13 10:49:36 -0700</bug_when>
    <thetext>The spec states that for the append Origin header algorithm [1] the referrer-policy has to be taken
into account in the case of response tainting not being &quot;cors&quot; and the request is not GET or HEAD.

[1] https://fetch.spec.whatwg.org/#append-a-request-origin-header</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630379</commentid>
    <comment_count>1</comment_count>
      <attachid>393665</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-16 10:58:50 -0700</bug_when>
    <thetext>Created attachment 393665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632044</commentid>
    <comment_count>2</comment_count>
      <attachid>394074</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-20 03:41:19 -0700</bug_when>
    <thetext>Created attachment 394074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632829</commentid>
    <comment_count>3</comment_count>
      <attachid>394074</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-23 07:19:03 -0700</bug_when>
    <thetext>Comment on attachment 394074
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:-2982
&gt; -    addHTTPOriginIfNeeded(request, String());

Why do we do not need this call but we still apparently need applyUserAgentIfNeeded?
Ideally, we would only update user agent and origin as part of CachedResourceLoader::updateHTTPRequestHeaders.

&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:-240
&gt; -    FrameLoader::addHTTPOriginIfNeeded(m_resourceRequest, outgoingOrigin);

It seems we could compute the referrer policy and then call FrameLoader::addHTTPOriginIfNeeded unconditionally.
Again, it would be good to make addHTTPOriginIfNeeded take a Function returning a String, but only called if actually needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632836</commentid>
    <comment_count>4</comment_count>
      <attachid>394074</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-23 07:29:14 -0700</bug_when>
    <thetext>Comment on attachment 394074
Patch

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

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:-2982
&gt;&gt; -    addHTTPOriginIfNeeded(request, String());
&gt; 
&gt; Why do we do not need this call but we still apparently need applyUserAgentIfNeeded?
&gt; Ideally, we would only update user agent and origin as part of CachedResourceLoader::updateHTTPRequestHeaders.

I noticed the same thing, I plan to fix that in a follow up patch.

&gt;&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:-240
&gt;&gt; -    FrameLoader::addHTTPOriginIfNeeded(m_resourceRequest, outgoingOrigin);
&gt; 
&gt; It seems we could compute the referrer policy and then call FrameLoader::addHTTPOriginIfNeeded unconditionally.
&gt; Again, it would be good to make addHTTPOriginIfNeeded take a Function returning a String, but only called if actually needed.

Ah, I did not get that idea before, will work on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633294</commentid>
    <comment_count>5</comment_count>
      <attachid>394364</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-24 07:24:21 -0700</bug_when>
    <thetext>Created attachment 394364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633301</commentid>
    <comment_count>6</comment_count>
      <attachid>394074</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-24 08:09:18 -0700</bug_when>
    <thetext>Comment on attachment 394074
Patch

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

&gt;&gt;&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:-240
&gt;&gt;&gt; -    FrameLoader::addHTTPOriginIfNeeded(m_resourceRequest, outgoingOrigin);
&gt;&gt; 
&gt;&gt; It seems we could compute the referrer policy and then call FrameLoader::addHTTPOriginIfNeeded unconditionally.
&gt;&gt; Again, it would be good to make addHTTPOriginIfNeeded take a Function returning a String, but only called if actually needed.
&gt; 
&gt; Ah, I did not get that idea before, will work on that.

I made that change in the latest upload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633330</commentid>
    <comment_count>7</comment_count>
      <attachid>394364</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-24 09:22:46 -0700</bug_when>
    <thetext>Comment on attachment 394364
Patch

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

&gt; Source/WebCore/loader/FrameLoader.h:227
&gt; +    static void addHTTPOriginIfNeeded(ResourceRequest&amp;, const ReferrerPolicy&amp;, WTF::Function&lt;RefPtr&lt;SecurityOrigin&gt;()&gt;);

I don’t understand the rationale for using a function here; is it important optimize the case where the function isn’t called? Couldn’t we take the SecurityOrigin and ignore it if not needed. When is the function called? I don’t see anything in the code that makes this clear. Nor the change log!

I suggest just passing the information in, unless it’s critical to save the work for performance.

Or maybe the timing of calling the function is important for some other reason?

Why is the return type RefPtr instead of Ref? That’s not good since the code can’t handle a null result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633334</commentid>
    <comment_count>8</comment_count>
      <attachid>394364</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-24 09:24:24 -0700</bug_when>
    <thetext>Comment on attachment 394364
Patch

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

&gt;&gt; Source/WebCore/loader/FrameLoader.h:227
&gt;&gt; +    static void addHTTPOriginIfNeeded(ResourceRequest&amp;, const ReferrerPolicy&amp;, WTF::Function&lt;RefPtr&lt;SecurityOrigin&gt;()&gt;);
&gt; 
&gt; I don’t understand the rationale for using a function here; is it important optimize the case where the function isn’t called? Couldn’t we take the SecurityOrigin and ignore it if not needed. When is the function called? I don’t see anything in the code that makes this clear. Nor the change log!
&gt; 
&gt; I suggest just passing the information in, unless it’s critical to save the work for performance.
&gt; 
&gt; Or maybe the timing of calling the function is important for some other reason?
&gt; 
&gt; Why is the return type RefPtr instead of Ref? That’s not good since the code can’t handle a null result.

I see that Youenn suggested this (passing a function instead of a security origin value), but I still don’t think it’s an easy-to-understand pattern without more comments, and I think the optimization isn’t necessarily a valuable one.

I think it’s also not great to take a WTF::Function by value since that means we’ll be copying it as part of passing it in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633353</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-24 09:40:07 -0700</bug_when>
    <thetext>&gt; I see that Youenn suggested this (passing a function instead of a security
&gt; origin value), but I still don’t think it’s an easy-to-understand pattern
&gt; without more comments, and I think the optimization isn’t necessarily a
&gt; valuable one.

If we do not do that, we might create a temporary SecurityOrigin without actually using it.

In many fetch/xhr, the Origin header is already set, form submissions might use POST quite a bit.

That is why for instance, we have an early return in CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders, to prevent creating this object for every load.
I guess the early return is good enough for most cases so maybe this is overkill.

Or we could add a routine that returns whether we should set the origin header or not and then call setHTTPOrigin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633369</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-24 10:01:31 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #9)
&gt; &gt; I see that Youenn suggested this (passing a function instead of a security
&gt; &gt; origin value), but I still don’t think it’s an easy-to-understand pattern
&gt; &gt; without more comments, and I think the optimization isn’t necessarily a
&gt; &gt; valuable one.
&gt; 
&gt; If we do not do that, we might create a temporary SecurityOrigin without
&gt; actually using it.

Yes, understood.

&gt; In many fetch/xhr, the Origin header is already set, form submissions might
&gt; use POST quite a bit.
&gt; 
&gt; That is why for instance, we have an early return in
&gt; CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders, to prevent
&gt; creating this object for every load.
&gt; I guess the early return is good enough for most cases so maybe this is
&gt; overkill.

Typically the best way to optimize performance is to actually measure it.

I think that this is a particularly subtle and hard to understand pattern. We don’t typically pass functions to compute things synchronously. Maybe it’s the start of a new pattern, but I think it’s quite peculiar.

&gt; Or we could add a routine that returns whether we should set the origin
&gt; header or not and then call setHTTPOrigin.

Sure, just not sure what problem we are solving.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633810</commentid>
    <comment_count>11</comment_count>
      <attachid>394476</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-25 02:01:33 -0700</bug_when>
    <thetext>Created attachment 394476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633822</commentid>
    <comment_count>12</comment_count>
      <attachid>394476</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-25 03:12:22 -0700</bug_when>
    <thetext>Comment on attachment 394476
Patch

After the discussion yesterday, I had a new idea, to add a canSetHTTPOrigin method in ResourceRequest.

This will allow the computing of the SecurityOrigin to be done only if needed.

I inlined addHTTPOriginIfNeeded in place, if that is too much we can keep addHTTPOriginIfNeeded and make the call sites a bit smaller. addHTTPOriginIfNeeded would assert canSetHTTPOrigin is true and then compute SecurityOrigin and call setHTTPOrigin.

Note that the ultimate goal is too minimize the number of places where we set the origin, ideally it will just be in updateReferrerOriginAndUserAgentHeaders and loadResourceSynchronously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633857</commentid>
    <comment_count>13</comment_count>
      <attachid>394476</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-25 07:31:44 -0700</bug_when>
    <thetext>Comment on attachment 394476
Patch

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

&gt; Source/WebCore/loader/FormSubmission.cpp:253
&gt; +        String origin = SecurityPolicy::generateOriginHeader(frameRequest.requester().referrerPolicy(), frameRequest.resourceRequest().url(), securityOrigin);

Could be auto here and below.
Or directly passed to setHTTPOrigin if we at some point make setHTTPOrigin use a String&amp;&amp;.

&gt; Source/WebCore/platform/network/ResourceRequestBase.cpp:406
&gt; +bool ResourceRequestBase::canSetHTTPOrigin() const

s/canSetHTTPOrigin/needsHTTPOrigin.
Could also be a free function: bool doesRequestNeedHTTPOriginHeader(const ResourceRequest&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633869</commentid>
    <comment_count>14</comment_count>
      <attachid>394496</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-25 08:10:23 -0700</bug_when>
    <thetext>Created attachment 394496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633897</commentid>
    <comment_count>15</comment_count>
      <attachid>394476</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-25 09:19:54 -0700</bug_when>
    <thetext>Comment on attachment 394476
Patch

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

&gt;&gt; Source/WebCore/loader/FormSubmission.cpp:253
&gt;&gt; +        String origin = SecurityPolicy::generateOriginHeader(frameRequest.requester().referrerPolicy(), frameRequest.resourceRequest().url(), securityOrigin);
&gt; 
&gt; Could be auto here and below.
&gt; Or directly passed to setHTTPOrigin if we at some point make setHTTPOrigin use a String&amp;&amp;.

Made it auto for now.

&gt;&gt; Source/WebCore/platform/network/ResourceRequestBase.cpp:406
&gt;&gt; +bool ResourceRequestBase::canSetHTTPOrigin() const
&gt; 
&gt; s/canSetHTTPOrigin/needsHTTPOrigin.
&gt; Could also be a free function: bool doesRequestNeedHTTPOriginHeader(const ResourceRequest&amp;)

I chose the free function solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634030</commentid>
    <comment_count>16</comment_count>
      <attachid>394496</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-25 13:33:13 -0700</bug_when>
    <thetext>Comment on attachment 394496
Patch

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

&gt; Source/WebCore/loader/PingLoader.cpp:140
&gt; +        String origin = SecurityPolicy::generateOriginHeader(document.referrerPolicy(), request.url(), document.securityOrigin());

auto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634031</commentid>
    <comment_count>17</comment_count>
      <attachid>394540</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-03-25 13:36:09 -0700</bug_when>
    <thetext>Created attachment 394540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634232</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-26 00:38:32 -0700</bug_when>
    <thetext>Committed r259036: &lt;https://trac.webkit.org/changeset/259036&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394540.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634233</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-26 00:39:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/60908874&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647502</commentid>
    <comment_count>20</comment_count>
      <attachid>394540</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-30 12:38:53 -0700</bug_when>
    <thetext>Comment on attachment 394540
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Take into account referrer-policy in append Origin header algorithm

I assume this has a behavior change. Why no tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647505</commentid>
    <comment_count>21</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-30 12:48:56 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #20)
&gt; Comment on attachment 394540 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394540&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Take into account referrer-policy in append Origin header algorithm
&gt; 
&gt; I assume this has a behavior change. Why no tests?

This is tested by fetch/origin/assorted.window.js. It got imported after this patch, so possibly at the time this patch landed it was not enough to pass that test and I had to fix something else before finally importing that test (which needed an update later on). Sorry my memory is bad on these things, I do too much context switching to remember :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647507</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-30 12:50:47 -0700</bug_when>
    <thetext>(In reply to Rob Buis from comment #21)
&gt; (In reply to Chris Dumez from comment #20)
&gt; &gt; Comment on attachment 394540 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=394540&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; &gt; +        Take into account referrer-policy in append Origin header algorithm
&gt; &gt; 
&gt; &gt; I assume this has a behavior change. Why no tests?
&gt; 
&gt; This is tested by fetch/origin/assorted.window.js. It got imported after
&gt; this patch, so possibly at the time this patch landed it was not enough to
&gt; pass that test and I had to fix something else before finally importing that
&gt; test (which needed an update later on). Sorry my memory is bad on these
&gt; things, I do too much context switching to remember :)

Yes, I am looking into this test right now and we seem to be failing:
http://w3c-test.org/fetch/origin/assorted.window.html

We time out on:
Origin header and POST cross-origin navigation with Referrer-Policy origin-when-cross-origin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647509</commentid>
    <comment_count>23</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-30 12:55:50 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #22)
&gt; (In reply to Rob Buis from comment #21)
&gt; &gt; (In reply to Chris Dumez from comment #20)
&gt; &gt; &gt; Comment on attachment 394540 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=394540&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; &gt; &gt; +        Take into account referrer-policy in append Origin header algorithm
&gt; &gt; &gt; 
&gt; &gt; &gt; I assume this has a behavior change. Why no tests?
&gt; &gt; 
&gt; &gt; This is tested by fetch/origin/assorted.window.js. It got imported after
&gt; &gt; this patch, so possibly at the time this patch landed it was not enough to
&gt; &gt; pass that test and I had to fix something else before finally importing that
&gt; &gt; test (which needed an update later on). Sorry my memory is bad on these
&gt; &gt; things, I do too much context switching to remember :)
&gt; 
&gt; Yes, I am looking into this test right now and we seem to be failing:
&gt; http://w3c-test.org/fetch/origin/assorted.window.html
&gt; 
&gt; We time out on:
&gt; Origin header and POST cross-origin navigation with Referrer-Policy
&gt; origin-when-cross-origin

I will also note that Chrome&apos;s behavior on this test is different and might explain regressions such as Bug 211122 in Safari only.
I understand we match the spec. However, it does not mean the change is Web-Compatible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648132</commentid>
    <comment_count>24</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-01 16:09:49 -0700</bug_when>
    <thetext>Reopening since this was reverted in https://trac.webkit.org/changeset/261036 due to Jira breakage.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393665</attachid>
            <date>2020-03-16 10:58:50 -0700</date>
            <delta_ts>2020-03-20 03:41:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209066-20200316185848.patch</filename>
            <type>text/plain</type>
            <size>11148</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTMxNDU1NDkwMjM0YjRh
ODFlNjY2YWRlNjZhZDdhNzc5OWYxY2VhNi4uMjAwYTllMjZkOGIyODkwZTNmZGY4NWExNTk1OTkz
ZmZiZTNjOGQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTE2ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBpbnRvIGFjY291bnQgcmVm
ZXJyZXItcG9saWN5IGluIGFwcGVuZCBPcmlnaW4gaGVhZGVyIGFsZ29yaXRobQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0lQCisKKyAgICAgICAgKiBs
b2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Np
b246OnBvcHVsYXRlRnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxkc1Rv
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklm
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50
RG9jdW1lbnRJdGVtKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHA6CisgICAgICAgICogbG9hZGVyL1BpbmdM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2VuZFBpbmcpOgorICAg
ICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tSZWRpcmVjdGlvbkNyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVJlZmVycmVyT3Jp
Z2luQW5kVXNlckFnZW50SGVhZGVycyk6CisKIDIwMjAtMDMtMTYgIFJvYiBCdWlzICA8cmJ1aXNA
aWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgYWRkSFRUUE9yaWdpbklmTmVlZGVkIGNhbGxz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCAwZjkyNDZmODEx
OGQzN2MzYmNmYTcyYjFjOWY0Nzc2MjE2YTFlN2I5Li5iNmY3MjBjYjc5ZmZiOWY5ZGNjZjc1YzFj
YjFmOTBmM2NmZjY2ZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1
Ym1pc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5j
cHAKQEAgLTI0Nyw3ICsyNDcsOCBAQCB2b2lkIEZvcm1TdWJtaXNzaW9uOjpwb3B1bGF0ZUZyYW1l
TG9hZFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYgZnJhbWVSZXF1ZXN0KQogICAgIH0KIAogICAg
IGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwocmVxdWVzdFVSTCgpKTsKLSAg
ICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKGZyYW1lUmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKSwgbV9vcmlnaW4pOworICAgIGF1dG8gcmV0ID0gU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZUZyb21TdHJpbmcobV9vcmlnaW4pOworICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2lu
SWZOZWVkZWQoZnJhbWVSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBmcmFtZVJlcXVlc3QucmVx
dWVzdGVyKCkucmVmZXJyZXJQb2xpY3koKSwgcmV0LmdldCgpKTsKICAgICBGcmFtZUxvYWRlcjo6
YWRkSFRUUFVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzSWZOZWVkZWQoZnJhbWVSZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5k
ZXggZDU4M2VkZWU5NzQ2ZWZlZDIyZTZiMjA0MjE5ZmY5OTdmMmE2NmE2Ni4uMzc1NGIyYjJlM2Fm
MzdmN2ZmZmM5MzQ4MjgwMTE0ZTE1ZWZhOGZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCkBAIC0yOTc4LDkgKzI5NzgsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjphZGRFeHRy
YUZpZWxkc1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lTG9hZFR5cAog
CiAgICAgYXBwbHlVc2VyQWdlbnRJZk5lZWRlZChyZXF1ZXN0KTsKIAotICAgIC8vIE1ha2Ugc3Vy
ZSB3ZSBzZW5kIHRoZSBPcmlnaW4gaGVhZGVyLgotICAgIGFkZEhUVFBPcmlnaW5JZk5lZWRlZChy
ZXF1ZXN0LCBTdHJpbmcoKSk7Ci0KICAgICAvLyBPbmx5IHNldCBmYWxsYmFjayBhcnJheSBpZiBp
dCdzIHN0aWxsIGVtcHR5IChsYXRlciBhdHRlbXB0cyBtYXkgYmUgaW5jb3JyZWN0LCBzZWUgYnVn
IDExNzgxOCkuCiAgICAgaWYgKHJlcXVlc3QucmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNv
ZGluZ0ZhbGxiYWNrQXJyYXkoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gQWx3YXlzIHRyeSBV
VEYtOC4gSWYgdGhhdCBmYWlscywgdHJ5IGZyYW1lIGVuY29kaW5nIChpZiBhbnkpIGFuZCB0aGVu
IHRoZSBkZWZhdWx0LgpAQCAtMjk4OCw3ICsyOTg1LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6YWRk
RXh0cmFGaWVsZHNUb1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZUxvYWRU
eXAKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgb3JpZ2luKQordm9pZCBGcmFt
ZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgUmVmZXJyZXJQb2xpY3kmIHJlZmVycmVyUG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdp
biYgc2VjdXJpdHlPcmlnaW4pCiB7CiAgICAgaWYgKCFyZXF1ZXN0Lmh0dHBPcmlnaW4oKS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsgIC8vIFJlcXVlc3QgYWxyZWFkeSBoYXMgYW4gT3JpZ2lu
IGhlYWRlci4KQEAgLTMwMDIsMTkgKzI5OTksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjphZGRIVFRQ
T3JpZ2luSWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmCiAg
ICAgaWYgKHJlcXVlc3QuaHR0cE1ldGhvZCgpID09ICJHRVQiIHx8IHJlcXVlc3QuaHR0cE1ldGhv
ZCgpID09ICJIRUFEIikKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IHRha2UgcmVm
ZXJyZXItcG9saWN5IGludG8gYWNjb3VudC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDY2Ci0KLSAgICAvLyBGb3Igbm9uLUdFVCBhbmQgbm9uLUhF
QUQgbWV0aG9kcywgYWx3YXlzIHNlbmQgYW4gT3JpZ2luIGhlYWRlciBzbyB0aGUKLSAgICAvLyBz
ZXJ2ZXIga25vd3Mgd2Ugc3VwcG9ydCB0aGlzIGZlYXR1cmUuCi0KLSAgICBpZiAob3JpZ2luLmlz
RW1wdHkoKSkgewotICAgICAgICAvLyBJZiB3ZSBkb24ndCBrbm93IHdoYXQgb3JpZ2luIGhlYWRl
ciB0byBhdHRhY2gsIHdlIGF0dGFjaCB0aGUgdmFsdWUKLSAgICAgICAgLy8gZm9yIGFuIGVtcHR5
IG9yaWdpbi4KLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVVbmlxdWUoKS0+dG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KKyAg
ICBTdHJpbmcgb3JpZ2luID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlT3JpZ2luSGVhZGVyKHJl
ZmVycmVyUG9saWN5LCByZXF1ZXN0LnVybCgpLCBzZWN1cml0eU9yaWdpbik7CiAgICAgcmVxdWVz
dC5zZXRIVFRQT3JpZ2luKG9yaWdpbik7CiB9CiAKQEAgLTMxMTMsNyArMzA5OCw3IEBAIHVuc2ln
bmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1CiAgICAgCiAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkpCiAg
ICAgICAgIGluaXRpYWxSZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7Ci0gICAgYWRk
SFRUUE9yaWdpbklmTmVlZGVkKGluaXRpYWxSZXF1ZXN0LCBvdXRnb2luZ09yaWdpbigpKTsKKyAg
ICBhZGRIVFRQT3JpZ2luSWZOZWVkZWQoaW5pdGlhbFJlcXVlc3QsIG1fZnJhbWUuZG9jdW1lbnQo
KS0+cmVmZXJyZXJQb2xpY3koKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
KTsKIAogICAgIGluaXRpYWxSZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKG1fZnJhbWUu
bWFpbkZyYW1lKCkubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdCgpLnVybCgpKTsK
ICAgICAKQEAgLTM4MTIsNyArMzc5Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJl
bnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEhpc3RvcnlJdGVtKiBmcm9tCiAgICAg
ICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV1RGTW92ZShmb3JtRGF0YSkpOwogICAgICAgICByZXF1
ZXN0LnNldEhUVFBDb250ZW50VHlwZShpdGVtLmZvcm1Db250ZW50VHlwZSgpKTsKICAgICAgICAg
YXV0byBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0
ZW0ucmVmZXJyZXIoKSk7Ci0gICAgICAgIGFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBz
ZWN1cml0eU9yaWdpbi0+dG9TdHJpbmcoKSk7CisgICAgICAgIGFkZEhUVFBPcmlnaW5JZk5lZWRl
ZChyZXF1ZXN0LCBtX2ZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHNlY3VyaXR5
T3JpZ2luKTsKICAgICAgICAgYWRkSFRUUFVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzSWZOZWVkZWQo
cmVxdWVzdCk7CiAKICAgICAgICAgLy8gTWFrZSBzdXJlIHRvIGFkZCBleHRyYSBmaWVsZHMgdG8g
dGhlIHJlcXVlc3QgYWZ0ZXIgdGhlIE9yaWdpbiBoZWFkZXIgaXMgYWRkZWQgZm9yIHRoZSBGb3Jt
RGF0YSBjYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA0MzAxYmIyYmIw
NTU5OGI0M2MxZThmNDk3NjEwMzRhMTk0ZGM2MjgxLi4wZGRkODE2Yjg1Y2UwMTlhMTEwMWVhMjhi
MGVkZDhhMWZlM2FhM2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMjI0
LDcgKzIyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJj
ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdm9pZCBhZGRFeHRyYUZpZWxkc1RvTWFp
blJlc291cmNlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmKTsKICAgICAKLSAgICBzdGF0aWMgdm9p
ZCBhZGRIVFRQT3JpZ2luSWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBv
cmlnaW4pOworICAgIHN0YXRpYyB2b2lkIGFkZEhUVFBPcmlnaW5JZk5lZWRlZChSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZWZlcnJlclBvbGljeSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJik7CiAg
ICAgc3RhdGljIHZvaWQgYWRkSFRUUFVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzSWZOZWVkZWQoUmVz
b3VyY2VSZXF1ZXN0Jik7CiAgICAgc3RhdGljIHZvaWQgYWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0
SWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgRG9jdW1lbnQqIGluaXRpYXRvciA9IG51
bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNj
aGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5j
cHAKaW5kZXggODkzOWUyZmEzMzY3NWZmNGVmNDEwNjAwMDc2MzM4NWVjYTI0OTBmYi4uY2Y1MjRl
YjVmNWQxOGEzM2I2OTIyNTgyYzA1NDMxOGFkZDY1YTZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcApAQCAtMjg5LDcgKzI4OSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgYXV0byYgcmVxdWVzdGluZ0RvY3VtZW50ID0gbV9zdWJtaXNzaW9uLT5zdGF0
ZSgpLnNvdXJjZURvY3VtZW50KCk7CiAgICAgICAgIGlmICghcmVxdWVzdGluZ0RvY3VtZW50LmNh
bk5hdmlnYXRlKCZmcmFtZSkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIEZyYW1lTG9h
ZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IHJlcXVlc3RpbmdEb2N1bWVudCwgcmVxdWVzdGlu
Z0RvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIHsgfSwgeyB9LCBsb2NrSGlzdG9yeSgpLCBsb2Nr
QmFja0ZvcndhcmRMaXN0KCksIFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZywgQWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgc2hv
dWxkT3BlbkV4dGVybmFsVVJMcygpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSgpIH07CisgICAgICAg
IEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IHJlcXVlc3RpbmdEb2N1bWVudCwg
cmVxdWVzdGluZ0RvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIHsgfSwgeyB9LCBsb2NrSGlzdG9y
eSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIHJlcXVlc3RpbmdEb2N1bWVudC5yZWZlcnJlclBv
bGljeSgpLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQ
b2xpY3k6OkFsbG93LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzKCksIGluaXRpYXRlZEJ5TWFpbkZy
YW1lKCkgfTsKICAgICAgICAgbV9zdWJtaXNzaW9uLT5wb3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3Qo
ZnJhbWVMb2FkUmVxdWVzdCk7CiAgICAgICAgIGZyYW1lLmxvYWRlcigpLmxvYWRGcmFtZVJlcXVl
c3QoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwgbV9zdWJtaXNzaW9uLT5ldmVudCgpLCBtX3N1
Ym1pc3Npb24tPnRha2VTdGF0ZSgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRl
ci5jcHAKaW5kZXggMTk0MjRiMmY5ODc3MjYzODM5ZWY4NjY3MWIwMWY5Mjk1NjYwZTI1MS4uZjYy
NDk0YzljNGFhNzQwMzg3MDkyZmYyYTlhMTllNjQzNjZlMmVjNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmNwcApAQCAtMTM2LDggKzEzNiw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2Vu
ZFBpbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGlu
YXRpCiAKICAgICBIVFRQSGVhZGVyTWFwIG9yaWdpbmFsUmVxdWVzdEhlYWRlciA9IHJlcXVlc3Qu
aHR0cEhlYWRlckZpZWxkcygpOwogCi0gICAgYXV0byYgc291cmNlT3JpZ2luID0gZG9jdW1lbnQu
c2VjdXJpdHlPcmlnaW4oKTsKLSAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVk
KHJlcXVlc3QsIFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZU9yaWdpbkhlYWRlcihkb2N1bWVudC5y
ZWZlcnJlclBvbGljeSgpLCByZXF1ZXN0LnVybCgpLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBGcmFt
ZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIGRvY3VtZW50LnJlZmVycmVy
UG9saWN5KCksIGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpOwogICAgIGZyYW1lLmxvYWRlcigp
LmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CiAgICAgcmVxdWVz
dC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlBpbmdUbywgZGVzdGluYXRpb25V
UkwpOwogICAgIGlmICghU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihwaW5nVVJM
LCBmcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZWEyYjg5NTdiMjNlZWQxOTM5MDdlOGYx
MjBmMTNjYTI0YTg1NmUxNi4uNDdmMDI0ZjI2NzNlYTc5OWZkODBkNzliNmRkYmNkNTVlYWI4NmMy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCkBAIC02
NjEsMTUgKzY2MSwxNSBAQCBFeHBlY3RlZDx2b2lkLCBTdHJpbmc+IFN1YnJlc291cmNlTG9hZGVy
OjpjaGVja1JlZGlyZWN0aW9uQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cgogCiAgICAgLy8gSW1wbGVt
ZW50aW5nIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWh0dHAtcmVkaXJl
Y3QtZmV0Y2ggc3RlcCAxNC4KICAgICB1cGRhdGVSZWZlcnJlclBvbGljeShyZWRpcmVjdFJlc3Bv
bnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmVmZXJyZXJQb2xpY3kpKTsKLSAg
ICAKKwogICAgIGlmIChvcHRpb25zKCkubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMg
JiYgcmVkaXJlY3RpbmdUb05ld09yaWdpbikgewogICAgICAgICBjbGVhbkhUVFBSZXF1ZXN0SGVh
ZGVyc0ZvckFjY2Vzc0NvbnRyb2wobmV3UmVxdWVzdCwgb3B0aW9ucygpLmh0dHBIZWFkZXJzVG9L
ZWVwKTsKICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wobmV3UmVxdWVzdCwg
Km1fb3JpZ2luLCBvcHRpb25zKCkuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogICAgIH0KLSAg
ICAKKwogICAgIHVwZGF0ZVJlcXVlc3RSZWZlcnJlcihuZXdSZXF1ZXN0LCByZWZlcnJlclBvbGlj
eSgpLCBwcmV2aW91c1JlcXVlc3QuaHR0cFJlZmVycmVyKCkpOwogCi0gICAgRnJhbWVMb2FkZXI6
OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChuZXdSZXF1ZXN0LCBtX29yaWdpbiA/IG1fb3JpZ2luLT50
b1N0cmluZygpIDogU3RyaW5nKCkpOworICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZO
ZWVkZWQobmV3UmVxdWVzdCwgcmVmZXJyZXJQb2xpY3koKSwgbV9vcmlnaW4gPyAqbV9vcmlnaW4g
OiBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkuZ2V0KCkpOwogCiAgICAgcmV0dXJuIHsg
fTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAKaW5kZXggYWZmNjU0ODNlODlkYzJkNmNlOTFkYmVjY2U2MjMwMTE5Njkz
YTY5NC4uMjA1MjE4MTQ1NGE1ZTJmY2E4ZTU4NDdlOGFkZmM4ZTgzNGE2MmQzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKQEAgLTIzMiwxMiArMjMyLDEzIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojp1cGRh
dGVSZWZlcnJlck9yaWdpbkFuZFVzZXJBZ2VudEhlYWRlcnMoRnJhbWVMb2FkZXImCiAKICAgICBp
ZiAoIW1fcmVzb3VyY2VSZXF1ZXN0Lmh0dHBPcmlnaW4oKS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBTdHJpbmcgb3V0Z29pbmdPcmlnaW47Ci0gICAgaWYgKG1fb3B0aW9ucy5tb2Rl
ID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykKLSAgICAgICAgb3V0Z29pbmdPcmlnaW4gPSBT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvdXRnb2luZ1JlZmVycmVyKS0+dG9TdHJp
bmcoKTsKLSAgICBlbHNlCi0gICAgICAgIG91dGdvaW5nT3JpZ2luID0gU2VjdXJpdHlQb2xpY3k6
OmdlbmVyYXRlT3JpZ2luSGVhZGVyKG1fb3B0aW9ucy5yZWZlcnJlclBvbGljeSwgbV9yZXNvdXJj
ZVJlcXVlc3QudXJsKCksIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG91dGdvaW5n
UmVmZXJyZXIpKTsKLSAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKG1fcmVz
b3VyY2VSZXF1ZXN0LCBvdXRnb2luZ09yaWdpbik7CisgICAgaWYgKG1fb3B0aW9ucy5tb2RlID09
IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykgeworICAgICAgICBhdXRvIG91dGdvaW5nT3JpZ2lu
ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3V0Z29pbmdSZWZlcnJlcik7Cisg
ICAgICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQobV9yZXNvdXJjZVJlcXVl
c3QsIFJlZmVycmVyUG9saWN5OjpVbnNhZmVVcmwsIG91dGdvaW5nT3JpZ2luKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBhdXRvIG91dGdvaW5nT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZUZyb21TdHJpbmcob3V0Z29pbmdSZWZlcnJlcik7CisgICAgICAgIEZyYW1lTG9hZGVyOjphZGRI
VFRQT3JpZ2luSWZOZWVkZWQobV9yZXNvdXJjZVJlcXVlc3QsIG1fb3B0aW9ucy5yZWZlcnJlclBv
bGljeSwgb3V0Z29pbmdPcmlnaW4pOworICAgIH0KIH0KIAogYm9vbCBpc1JlcXVlc3RDcm9zc09y
aWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394074</attachid>
            <date>2020-03-20 03:41:19 -0700</date>
            <delta_ts>2020-03-24 07:24:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209066-20200320114117.patch</filename>
            <type>text/plain</type>
            <size>11226</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU2M2M2NjgzOThiOTAz
NmIxY2FmMzllMWE0ZGQwNjMxYjkyNTBkOC4uZTI1ZTczNDEyMmQ2ZWUwYzQ3OGUxNTc5ZmJmMjNk
MTNjZjZiYTI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTIwICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBpbnRvIGFjY291bnQgcmVm
ZXJyZXItcG9saWN5IGluIGFwcGVuZCBPcmlnaW4gaGVhZGVyIGFsZ29yaXRobQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0lQCisKKyAgICAgICAgKiBs
b2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1pc3Np
b246OnBvcHVsYXRlRnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxkc1Rv
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklm
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50
RG9jdW1lbnRJdGVtKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHA6CisgICAgICAgICogbG9hZGVyL1BpbmdM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2VuZFBpbmcpOgorICAg
ICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tSZWRpcmVjdGlvbkNyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVJlZmVycmVyT3Jp
Z2luQW5kVXNlckFnZW50SGVhZGVycyk6CisKIDIwMjAtMDMtMjAgIEphY2sgTGVlICA8c2hpaGNo
aWVoX2xlZUBhcHBsZS5jb20+CiAKICAgICAgICAgTnVsbHB0ciBjcmFzaCBpbiBSZW5kZXJPYmpl
Y3Q6OlJlbmRlck9iamVjdEJpdGZpZWxkczo6aXNCb3ggd2hlbiBjdXJyZW50IHJlbmRlcmVyIGlz
IHRoZSBSZW5kZXJWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1
Ym1pc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcApp
bmRleCA0MGYzNWM0OTZhYTlmOGIxOGE0ODU4YzAzYzk1NjRhYjQyNGI4OGU5Li5hNGEyMGY0OTJj
MDNmZjNiNTZhOWNkNjM2MGQ4ZTM4OGIwNzMwNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
b3JtU3VibWlzc2lvbi5jcHAKQEAgLTI0Nyw3ICsyNDcsOCBAQCB2b2lkIEZvcm1TdWJtaXNzaW9u
Ojpwb3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYgZnJhbWVSZXF1ZXN0
KQogICAgIH0KIAogICAgIGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwocmVx
dWVzdFVSTCgpKTsKLSAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKGZyYW1l
UmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgbV9vcmlnaW4pOworICAgIGF1dG8gb3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcobV9vcmlnaW4pOworICAgIEZyYW1lTG9h
ZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQoZnJhbWVSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LCBmcmFtZVJlcXVlc3QucmVxdWVzdGVyKCkucmVmZXJyZXJQb2xpY3koKSwgb3JpZ2luLmdldCgp
KTsKICAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUFVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzSWZOZWVk
ZWQoZnJhbWVSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZDU4M2VkZWU5NzQ2ZWZlZDIyZTZiMjA0MjE5ZmY5OTdm
MmE2NmE2Ni4uMmVkYjIxMGVmMmI3ODQzMmM4NmMyOWVmMGZlODA5YWIyYzE5OTI3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yOTc4LDkgKzI5NzgsNiBAQCB2b2lk
IEZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxkc1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIEZyYW1lTG9hZFR5cAogCiAgICAgYXBwbHlVc2VyQWdlbnRJZk5lZWRlZChyZXF1ZXN0
KTsKIAotICAgIC8vIE1ha2Ugc3VyZSB3ZSBzZW5kIHRoZSBPcmlnaW4gaGVhZGVyLgotICAgIGFk
ZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBTdHJpbmcoKSk7Ci0KICAgICAvLyBPbmx5IHNl
dCBmYWxsYmFjayBhcnJheSBpZiBpdCdzIHN0aWxsIGVtcHR5IChsYXRlciBhdHRlbXB0cyBtYXkg
YmUgaW5jb3JyZWN0LCBzZWUgYnVnIDExNzgxOCkuCiAgICAgaWYgKHJlcXVlc3QucmVzcG9uc2VD
b250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkoKS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgLy8gQWx3YXlzIHRyeSBVVEYtOC4gSWYgdGhhdCBmYWlscywgdHJ5IGZyYW1lIGVuY29k
aW5nIChpZiBhbnkpIGFuZCB0aGVuIHRoZSBkZWZhdWx0LgpAQCAtMjk4OCw3ICsyOTg1LDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6YWRkRXh0cmFGaWVsZHNUb1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBGcmFtZUxvYWRUeXAKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmFk
ZEhUVFBPcmlnaW5JZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luKQordm9pZCBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVmZXJyZXJQb2xpY3kmIHJlZmVycmVyUG9saWN5
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4pCiB7CiAgICAgaWYgKCFyZXF1
ZXN0Lmh0dHBPcmlnaW4oKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsgIC8vIFJlcXVlc3Qg
YWxyZWFkeSBoYXMgYW4gT3JpZ2luIGhlYWRlci4KQEAgLTMwMDIsMjAgKzI5OTksNyBAQCB2b2lk
IEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTdHJpbmcmCiAgICAgaWYgKHJlcXVlc3QuaHR0cE1ldGhvZCgpID09ICJHRVQi
IHx8IHJlcXVlc3QuaHR0cE1ldGhvZCgpID09ICJIRUFEIikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gRklYTUU6IHRha2UgcmVmZXJyZXItcG9saWN5IGludG8gYWNjb3VudC4KLSAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDY2Ci0KLSAgICAvLyBG
b3Igbm9uLUdFVCBhbmQgbm9uLUhFQUQgbWV0aG9kcywgYWx3YXlzIHNlbmQgYW4gT3JpZ2luIGhl
YWRlciBzbyB0aGUKLSAgICAvLyBzZXJ2ZXIga25vd3Mgd2Ugc3VwcG9ydCB0aGlzIGZlYXR1cmUu
Ci0KLSAgICBpZiAob3JpZ2luLmlzRW1wdHkoKSkgewotICAgICAgICAvLyBJZiB3ZSBkb24ndCBr
bm93IHdoYXQgb3JpZ2luIGhlYWRlciB0byBhdHRhY2gsIHdlIGF0dGFjaCB0aGUgdmFsdWUKLSAg
ICAgICAgLy8gZm9yIGFuIGVtcHR5IG9yaWdpbi4KLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQT3Jp
Z2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUoKS0+dG9TdHJpbmcoKSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICByZXF1ZXN0LnNldEhUVFBPcmlnaW4ob3JpZ2luKTsKKyAg
ICByZXF1ZXN0LnNldEhUVFBPcmlnaW4oU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlT3JpZ2luSGVh
ZGVyKHJlZmVycmVyUG9saWN5LCByZXF1ZXN0LnVybCgpLCBzZWN1cml0eU9yaWdpbikpOwogfQog
CiAvLyBJbXBsZW1lbnRzIHRoZSAiJ1NhbWUtc2l0ZScgYW5kICdjcm9zcy1zaXRlJyBSZXF1ZXN0
cyIgYWxnb3JpdGhtIGZyb20gPGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRm
LWh0dHBiaXMtY29va2llLXNhbWUtc2l0ZS0wMCNzZWN0aW9uLTIuMT4uCkBAIC0zMTEzLDcgKzMw
OTcsNyBAQCB1bnNpZ25lZCBsb25nIEZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdQogICAgIAogICAgIGlmICghcmVmZXJyZXIu
aXNFbXB0eSgpKQogICAgICAgICBpbml0aWFsUmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVmZXJy
ZXIpOwotICAgIGFkZEhUVFBPcmlnaW5JZk5lZWRlZChpbml0aWFsUmVxdWVzdCwgb3V0Z29pbmdP
cmlnaW4oKSk7CisgICAgYWRkSFRUUE9yaWdpbklmTmVlZGVkKGluaXRpYWxSZXF1ZXN0LCBtX2Zy
YW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSk7CiAKICAgICBpbml0aWFsUmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29v
a2llcyhtX2ZyYW1lLm1haW5GcmFtZSgpLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlcXVl
c3QoKS51cmwoKSk7CiAgICAgCkBAIC0zODEyLDcgKzM3OTYsNyBAQCB2b2lkIEZyYW1lTG9hZGVy
Ojpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRl
bSogZnJvbQogICAgICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KFdURk1vdmUoZm9ybURhdGEpKTsK
ICAgICAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoaXRlbS5mb3JtQ29udGVudFR5cGUo
KSk7CiAgICAgICAgIGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhpdGVtLnJlZmVycmVyKCkpOwotICAgICAgICBhZGRIVFRQT3JpZ2luSWZOZWVk
ZWQocmVxdWVzdCwgc2VjdXJpdHlPcmlnaW4tPnRvU3RyaW5nKCkpOworICAgICAgICBhZGRIVFRQ
T3JpZ2luSWZOZWVkZWQocmVxdWVzdCwgbV9mcmFtZS5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGlj
eSgpLCBzZWN1cml0eU9yaWdpbik7CiAgICAgICAgIGFkZEhUVFBVcGdyYWRlSW5zZWN1cmVSZXF1
ZXN0c0lmTmVlZGVkKHJlcXVlc3QpOwogCiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0byBhZGQgZXh0
cmEgZmllbGRzIHRvIHRoZSByZXF1ZXN0IGFmdGVyIHRoZSBPcmlnaW4gaGVhZGVyIGlzIGFkZGVk
IGZvciB0aGUgRm9ybURhdGEgY2FzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5k
ZXggNDMwMWJiMmJiMDU1OThiNDNjMWU4ZjQ5NzYxMDM0YTE5NGRjNjI4MS4uMGRkZDgxNmI4NWNl
MDE5YTExMDFlYTI4YjBlZGQ4YTFmZTNhYTNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKQEAgLTIyNCw3ICsyMjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRFeHRyYUZpZWxk
c1RvU3VicmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgYWRkRXh0
cmFGaWVsZHNUb01haW5SZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgCi0g
ICAgc3RhdGljIHZvaWQgYWRkSFRUUE9yaWdpbklmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFN0cmluZyYgb3JpZ2luKTsKKyAgICBzdGF0aWMgdm9pZCBhZGRIVFRQT3JpZ2luSWZOZWVk
ZWQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVmZXJyZXJQb2xpY3kmLCBjb25zdCBTZWN1cml0
eU9yaWdpbiYpOwogICAgIHN0YXRpYyB2b2lkIGFkZEhUVFBVcGdyYWRlSW5zZWN1cmVSZXF1ZXN0
c0lmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYpOwogICAgIHN0YXRpYyB2b2lkIGFkZFNhbWVTaXRl
SW5mb1RvUmVxdWVzdElmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IERvY3VtZW50KiBp
bml0aWF0b3IgPSBudWxscHRyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwCmluZGV4IDg5MzllMmZhMzM2NzVmZjRlZjQxMDYwMDA3NjMzODVlY2Ey
NDkwZmIuLmNmNTI0ZWI1ZjVkMThhMzNiNjkyMjU4MmMwNTQzMThhZGQ2NWE2YjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTI4OSw3ICsy
ODksNyBAQCBwdWJsaWM6CiAgICAgICAgIGF1dG8mIHJlcXVlc3RpbmdEb2N1bWVudCA9IG1fc3Vi
bWlzc2lvbi0+c3RhdGUoKS5zb3VyY2VEb2N1bWVudCgpOwogICAgICAgICBpZiAoIXJlcXVlc3Rp
bmdEb2N1bWVudC5jYW5OYXZpZ2F0ZSgmZnJhbWUpKQogICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyByZXF1ZXN0aW5nRG9jdW1l
bnQsIHJlcXVlc3RpbmdEb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCB7IH0sIHsgfSwgbG9ja0hp
c3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJp
bmcsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGlj
eTo6QWxsb3csIHNob3VsZE9wZW5FeHRlcm5hbFVSTHMoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUo
KSB9OworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyByZXF1ZXN0
aW5nRG9jdW1lbnQsIHJlcXVlc3RpbmdEb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCB7IH0sIHsg
fSwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCByZXF1ZXN0aW5nRG9jdW1l
bnQucmVmZXJyZXJQb2xpY3koKSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5l
d0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgc2hvdWxkT3BlbkV4dGVybmFsVVJMcygpLCBpbml0
aWF0ZWRCeU1haW5GcmFtZSgpIH07CiAgICAgICAgIG1fc3VibWlzc2lvbi0+cG9wdWxhdGVGcmFt
ZUxvYWRSZXF1ZXN0KGZyYW1lTG9hZFJlcXVlc3QpOwogICAgICAgICBmcmFtZS5sb2FkZXIoKS5s
b2FkRnJhbWVSZXF1ZXN0KFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCksIG1fc3VibWlzc2lvbi0+
ZXZlbnQoKSwgbV9zdWJtaXNzaW9uLT50YWtlU3RhdGUoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BpbmdMb2FkZXIuY3BwCmluZGV4IDE5NDI0YjJmOTg3NzI2MzgzOWVmODY2NzFiMDFmOTI5
NTY2MGUyNTEuLmY2MjQ5NGM5YzRhYTc0MDM4NzA5MmZmMmE5YTE5ZTY0MzY2ZTJlYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKQEAgLTEzNiw4ICsxMzYsNyBAQCB2b2lkIFBp
bmdMb2FkZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25z
dCBVUkwmIGRlc3RpbmF0aQogCiAgICAgSFRUUEhlYWRlck1hcCBvcmlnaW5hbFJlcXVlc3RIZWFk
ZXIgPSByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKTsKIAotICAgIGF1dG8mIHNvdXJjZU9yaWdp
biA9IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBP
cmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVPcmlnaW5IZWFk
ZXIoZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcmVxdWVzdC51cmwoKSwgc291cmNlT3JpZ2lu
KSk7CisgICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBkb2N1
bWVudC5yZWZlcnJlclBvbGljeSgpLCBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKTsKICAgICBm
cmFtZS5sb2FkZXIoKS5hZGRFeHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3Qp
OwogICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpQaW5nVG8s
IGRlc3RpbmF0aW9uVVJMKTsKICAgICBpZiAoIVNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVm
ZXJyZXIocGluZ1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGVhMmI4OTU3YjIz
ZWVkMTkzOTA3ZThmMTIwZjEzY2EyNGE4NTZlMTYuLjQ3ZjAyNGYyNjczZWE3OTlmZDgwZDc5YjZk
ZGJjZDU1ZWFiODZjMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmNwcApAQCAtNjYxLDE1ICs2NjEsMTUgQEAgRXhwZWN0ZWQ8dm9pZCwgU3RyaW5nPiBTdWJy
ZXNvdXJjZUxvYWRlcjo6Y2hlY2tSZWRpcmVjdGlvbkNyb3NzT3JpZ2luQWNjZXNzQ29udHIKIAog
ICAgIC8vIEltcGxlbWVudGluZyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2Vw
dC1odHRwLXJlZGlyZWN0LWZldGNoIHN0ZXAgMTQuCiAgICAgdXBkYXRlUmVmZXJyZXJQb2xpY3ko
cmVkaXJlY3RSZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJlZmVycmVy
UG9saWN5KSk7Ci0gICAgCisKICAgICBpZiAob3B0aW9ucygpLm1vZGUgPT0gRmV0Y2hPcHRpb25z
OjpNb2RlOjpDb3JzICYmIHJlZGlyZWN0aW5nVG9OZXdPcmlnaW4pIHsKICAgICAgICAgY2xlYW5I
VFRQUmVxdWVzdEhlYWRlcnNGb3JBY2Nlc3NDb250cm9sKG5ld1JlcXVlc3QsIG9wdGlvbnMoKS5o
dHRwSGVhZGVyc1RvS2VlcCk7CiAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9s
KG5ld1JlcXVlc3QsICptX29yaWdpbiwgb3B0aW9ucygpLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5
KTsKICAgICB9Ci0gICAgCisKICAgICB1cGRhdGVSZXF1ZXN0UmVmZXJyZXIobmV3UmVxdWVzdCwg
cmVmZXJyZXJQb2xpY3koKSwgcHJldmlvdXNSZXF1ZXN0Lmh0dHBSZWZlcnJlcigpKTsKIAotICAg
IEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQobmV3UmVxdWVzdCwgbV9vcmlnaW4g
PyBtX29yaWdpbi0+dG9TdHJpbmcoKSA6IFN0cmluZygpKTsKKyAgICBGcmFtZUxvYWRlcjo6YWRk
SFRUUE9yaWdpbklmTmVlZGVkKG5ld1JlcXVlc3QsIHJlZmVycmVyUG9saWN5KCksIG1fb3JpZ2lu
ID8gKm1fb3JpZ2luIDogU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpLmdldCgpKTsKIAog
ICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IGFmZjY1NDgzZTg5ZGMyZDZjZTkxZGJl
Y2NlNjIzMDExOTY5M2E2OTQuLjM0ZWQyNDQ0N2FkMjJjZWE0OTg1MDcwNjk3YmJlZjhkODY5N2U0
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuY3BwCkBAIC0yMzIsMTIgKzIzMiwxMSBAQCB2b2lkIENhY2hlZFJlc291cmNl
UmVxdWVzdDo6dXBkYXRlUmVmZXJyZXJPcmlnaW5BbmRVc2VyQWdlbnRIZWFkZXJzKEZyYW1lTG9h
ZGVyJgogCiAgICAgaWYgKCFtX3Jlc291cmNlUmVxdWVzdC5odHRwT3JpZ2luKCkuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm47Ci0gICAgU3RyaW5nIG91dGdvaW5nT3JpZ2luOworICAgIGF1dG8g
b3V0Z29pbmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvdXRnb2lu
Z1JlZmVycmVyKTsKICAgICBpZiAobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpDb3JzKQotICAgICAgICBvdXRnb2luZ09yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVG
cm9tU3RyaW5nKG91dGdvaW5nUmVmZXJyZXIpLT50b1N0cmluZygpOworICAgICAgICBGcmFtZUxv
YWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKG1fcmVzb3VyY2VSZXF1ZXN0LCBSZWZlcnJlclBv
bGljeTo6VW5zYWZlVXJsLCBvdXRnb2luZ09yaWdpbik7CiAgICAgZWxzZQotICAgICAgICBvdXRn
b2luZ09yaWdpbiA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZU9yaWdpbkhlYWRlcihtX29wdGlv
bnMucmVmZXJyZXJQb2xpY3ksIG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpLCBTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlRnJvbVN0cmluZyhvdXRnb2luZ1JlZmVycmVyKSk7Ci0gICAgRnJhbWVMb2FkZXI6
OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChtX3Jlc291cmNlUmVxdWVzdCwgb3V0Z29pbmdPcmlnaW4p
OworICAgICAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKG1fcmVzb3VyY2VS
ZXF1ZXN0LCBtX29wdGlvbnMucmVmZXJyZXJQb2xpY3ksIG91dGdvaW5nT3JpZ2luKTsKIH0KIAog
Ym9vbCBpc1JlcXVlc3RDcm9zc09yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBV
UkwmIHJlcXVlc3RVUkwsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394364</attachid>
            <date>2020-03-24 07:24:21 -0700</date>
            <delta_ts>2020-03-25 02:01:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209066-20200324152420.patch</filename>
            <type>text/plain</type>
            <size>11804</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwOTdkNDViYjhkYzQ0
ZDAwNjIxMThiOGQyMDYxMjJlOTY2OGE3Yy4uYmEwOGI1ZDA5NmE1ZWVkOTgxMjM0NGEwNzU0NGZi
YzVkMmYzYTEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAzLTI0ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBpbnRvIGFjY291bnQgcmVm
ZXJyZXItcG9saWN5IGluIGFwcGVuZCBPcmlnaW4gaGVhZGVyIGFsZ29yaXRobQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgdGFraW5nIGludG8g
YWNjb3VudCByZWZlcnJlci1wb2xpY3kgaW4gYSBjZW50cmFsIHBsYWNlIHdoZW4gd2UKKyAgICAg
ICAgYXBwZW5kIHRoZSBvcmlnaW4gaGVhZGVyIFsxXS4KKworICAgICAgICBbMV0gaHR0cHM6Ly9m
ZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2FwcGVuZC1hLXJlcXVlc3Qtb3JpZ2luLWhlYWRlcgorCisg
ICAgICAgICogbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
cm1TdWJtaXNzaW9uOjpwb3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6YWRkRXh0
cmFGaWVsZHNUb1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmFkZEhU
VFBPcmlnaW5JZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9h
ZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6
CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwOgorICAgICAgICAqIGxv
YWRlci9QaW5nTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRQ
aW5nKToKKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmNoZWNrUmVkaXJlY3Rpb25Dcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVS
ZWZlcnJlck9yaWdpbkFuZFVzZXJBZ2VudEhlYWRlcnMpOgorCiAyMDIwLTAzLTIzICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNhZmFyaSBqZXRzYW1z
IHdpdGggcmVwZWF0ZWQgZHJhd0ltYWdlL2dldEltYWdlRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggNDBmMzVjNDk2YWE5ZjhiMThhNDg1OGMwM2M5NTY0
YWI0MjRiODhlOS4uZmRiY2JlNjRlOGEyNzNlOTJhMGFhNTQ4YTQ3NjgzZjhmYWE0YWViNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC0yNDcsNyArMjQ3LDkg
QEAgdm9pZCBGb3JtU3VibWlzc2lvbjo6cG9wdWxhdGVGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lTG9h
ZFJlcXVlc3QmIGZyYW1lUmVxdWVzdCkKICAgICB9CiAKICAgICBmcmFtZVJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkuc2V0VVJMKHJlcXVlc3RVUkwoKSk7Ci0gICAgRnJhbWVMb2FkZXI6OmFkZEhU
VFBPcmlnaW5JZk5lZWRlZChmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIG1fb3JpZ2lu
KTsKKyAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKGZyYW1lUmVxdWVzdC5y
ZXNvdXJjZVJlcXVlc3QoKSwgZnJhbWVSZXF1ZXN0LnJlcXVlc3RlcigpLnJlZmVycmVyUG9saWN5
KCksIFt0aGlzXSAoKSB7CisgICAgICAgIHJldHVybiBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJv
bVN0cmluZyhtX29yaWdpbik7IH0KKyAgICApOwogICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQVXBn
cmFkZUluc2VjdXJlUmVxdWVzdHNJZk5lZWRlZChmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA4NDk0NmZk
Y2JhMzE3MmY0ZjlhYjNlNmNiNmM0ODBlNTUxNzA5ZWExLi4xZmM3NTE4YTE4NDlkZTdlMWMxM2I5
ZTdhOGEyYzgwODhhOTNmM2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
QEAgLTI5NzgsOSArMjk3OCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmFkZEV4dHJhRmllbGRzVG9S
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWVMb2FkVHlwCiAKICAgICBhcHBs
eVVzZXJBZ2VudElmTmVlZGVkKHJlcXVlc3QpOwogCi0gICAgLy8gTWFrZSBzdXJlIHdlIHNlbmQg
dGhlIE9yaWdpbiBoZWFkZXIuCi0gICAgYWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIFN0
cmluZygpKTsKLQogICAgIC8vIE9ubHkgc2V0IGZhbGxiYWNrIGFycmF5IGlmIGl0J3Mgc3RpbGwg
ZW1wdHkgKGxhdGVyIGF0dGVtcHRzIG1heSBiZSBpbmNvcnJlY3QsIHNlZSBidWcgMTE3ODE4KS4K
ICAgICBpZiAocmVxdWVzdC5yZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJh
Y2tBcnJheSgpLmlzRW1wdHkoKSkgewogICAgICAgICAvLyBBbHdheXMgdHJ5IFVURi04LiBJZiB0
aGF0IGZhaWxzLCB0cnkgZnJhbWUgZW5jb2RpbmcgKGlmIGFueSkgYW5kIHRoZW4gdGhlIGRlZmF1
bHQuCkBAIC0yOTg4LDcgKzI5ODUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxk
c1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lTG9hZFR5cAogICAgIH0K
IH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBvcmlnaW4pCit2b2lkIEZyYW1lTG9hZGVyOjph
ZGRIVFRQT3JpZ2luSWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZWZl
cnJlclBvbGljeSYgcmVmZXJyZXJQb2xpY3ksIFdURjo6RnVuY3Rpb248UmVmUHRyPFNlY3VyaXR5
T3JpZ2luPigpPiBzZWN1cml0eU9yaWdpbikKIHsKICAgICBpZiAoIXJlcXVlc3QuaHR0cE9yaWdp
bigpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOyAgLy8gUmVxdWVzdCBhbHJlYWR5IGhhcyBh
biBPcmlnaW4gaGVhZGVyLgpAQCAtMzAwMiwyMCArMjk5OSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0
cmluZyYKICAgICBpZiAocmVxdWVzdC5odHRwTWV0aG9kKCkgPT0gIkdFVCIgfHwgcmVxdWVzdC5o
dHRwTWV0aG9kKCkgPT0gIkhFQUQiKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTog
dGFrZSByZWZlcnJlci1wb2xpY3kgaW50byBhY2NvdW50LgotICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNjYKLQotICAgIC8vIEZvciBub24tR0VUIGFu
ZCBub24tSEVBRCBtZXRob2RzLCBhbHdheXMgc2VuZCBhbiBPcmlnaW4gaGVhZGVyIHNvIHRoZQot
ICAgIC8vIHNlcnZlciBrbm93cyB3ZSBzdXBwb3J0IHRoaXMgZmVhdHVyZS4KLQotICAgIGlmIChv
cmlnaW4uaXNFbXB0eSgpKSB7Ci0gICAgICAgIC8vIElmIHdlIGRvbid0IGtub3cgd2hhdCBvcmln
aW4gaGVhZGVyIHRvIGF0dGFjaCwgd2UgYXR0YWNoIHRoZSB2YWx1ZQotICAgICAgICAvLyBmb3Ig
YW4gZW1wdHkgb3JpZ2luLgotICAgICAgICByZXF1ZXN0LnNldEhUVFBPcmlnaW4oU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZVVuaXF1ZSgpLT50b1N0cmluZygpKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIHJlcXVlc3Quc2V0SFRUUE9yaWdpbihvcmlnaW4pOworICAgIHJlcXVlc3Quc2V0
SFRUUE9yaWdpbihTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVPcmlnaW5IZWFkZXIocmVmZXJyZXJQ
b2xpY3ksIHJlcXVlc3QudXJsKCksICpzZWN1cml0eU9yaWdpbigpKSk7CiB9CiAKIC8vIEltcGxl
bWVudHMgdGhlICInU2FtZS1zaXRlJyBhbmQgJ2Nyb3NzLXNpdGUnIFJlcXVlc3RzIiBhbGdvcml0
aG0gZnJvbSA8aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaHR0cGJpcy1j
b29raWUtc2FtZS1zaXRlLTAwI3NlY3Rpb24tMi4xPi4KQEAgLTMxMTMsNyArMzA5Nyw5IEBAIHVu
c2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAgICAgCiAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkp
CiAgICAgICAgIGluaXRpYWxSZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7Ci0gICAg
YWRkSFRUUE9yaWdpbklmTmVlZGVkKGluaXRpYWxSZXF1ZXN0LCBvdXRnb2luZ09yaWdpbigpKTsK
KyAgICBhZGRIVFRQT3JpZ2luSWZOZWVkZWQoaW5pdGlhbFJlcXVlc3QsIG1fZnJhbWUuZG9jdW1l
bnQoKS0+cmVmZXJyZXJQb2xpY3koKSwgW3RoaXNdICgpIHsKKyAgICAgICAgcmV0dXJuICZtX2Zy
YW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgfSk7CiAKICAgICBpbml0aWFs
UmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhtX2ZyYW1lLm1haW5GcmFtZSgpLmxvYWRl
cigpLmRvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKS51cmwoKSk7CiAgICAgCkBAIC0zODExLDgg
KzM3OTcsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhp
c3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbQogICAgICAgICByZXF1ZXN0LnNldEhU
VFBNZXRob2QoIlBPU1QiKTsKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQQm9keShXVEZNb3ZlKGZv
cm1EYXRhKSk7CiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKGl0ZW0uZm9ybUNv
bnRlbnRUeXBlKCkpOwotICAgICAgICBhdXRvIHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcoaXRlbS5yZWZlcnJlcigpKTsKLSAgICAgICAgYWRkSFRUUE9y
aWdpbklmTmVlZGVkKHJlcXVlc3QsIHNlY3VyaXR5T3JpZ2luLT50b1N0cmluZygpKTsKKyAgICAg
ICAgYWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIG1fZnJhbWUuZG9jdW1lbnQoKS0+cmVm
ZXJyZXJQb2xpY3koKSwgWyZpdGVtXSAoKSB7CisgICAgICAgICAgICByZXR1cm4gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXRlbS5yZWZlcnJlcigpKTsKKyAgICAgICAgfSk7CiAg
ICAgICAgIGFkZEhUVFBVcGdyYWRlSW5zZWN1cmVSZXF1ZXN0c0lmTmVlZGVkKHJlcXVlc3QpOwog
CiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0byBhZGQgZXh0cmEgZmllbGRzIHRvIHRoZSByZXF1ZXN0
IGFmdGVyIHRoZSBPcmlnaW4gaGVhZGVyIGlzIGFkZGVkIGZvciB0aGUgRm9ybURhdGEgY2FzZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggNDMwMWJiMmJiMDU1OThiNDNjMWU4
ZjQ5NzYxMDM0YTE5NGRjNjI4MS4uZDcyZTBiMzUyYjIzN2NkYmFhZTU3NWU2MWVjYTFlMDgzZWY5
OTZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTIyNCw3ICsyMjQsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhZGRFeHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KFJl
c291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgYWRkRXh0cmFGaWVsZHNUb01haW5SZXNvdXJjZVJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgCi0gICAgc3RhdGljIHZvaWQgYWRkSFRUUE9y
aWdpbklmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgb3JpZ2luKTsKKyAg
ICBzdGF0aWMgdm9pZCBhZGRIVFRQT3JpZ2luSWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVmZXJyZXJQb2xpY3kmLCBXVEY6OkZ1bmN0aW9uPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4o
KT4pOwogICAgIHN0YXRpYyB2b2lkIGFkZEhUVFBVcGdyYWRlSW5zZWN1cmVSZXF1ZXN0c0lmTmVl
ZGVkKFJlc291cmNlUmVxdWVzdCYpOwogICAgIHN0YXRpYyB2b2lkIGFkZFNhbWVTaXRlSW5mb1Rv
UmVxdWVzdElmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IERvY3VtZW50KiBpbml0aWF0
b3IgPSBudWxscHRyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmln
YXRpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hl
ZHVsZXIuY3BwCmluZGV4IDg5MzllMmZhMzM2NzVmZjRlZjQxMDYwMDA3NjMzODVlY2EyNDkwZmIu
LmNmNTI0ZWI1ZjVkMThhMzNiNjkyMjU4MmMwNTQzMThhZGQ2NWE2YjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTI4OSw3ICsyODksNyBA
QCBwdWJsaWM6CiAgICAgICAgIGF1dG8mIHJlcXVlc3RpbmdEb2N1bWVudCA9IG1fc3VibWlzc2lv
bi0+c3RhdGUoKS5zb3VyY2VEb2N1bWVudCgpOwogICAgICAgICBpZiAoIXJlcXVlc3RpbmdEb2N1
bWVudC5jYW5OYXZpZ2F0ZSgmZnJhbWUpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBG
cmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyByZXF1ZXN0aW5nRG9jdW1lbnQsIHJl
cXVlc3RpbmdEb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCB7IH0sIHsgfSwgbG9ja0hpc3Rvcnko
KSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcsIEFs
bG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxs
b3csIHNob3VsZE9wZW5FeHRlcm5hbFVSTHMoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9Owor
ICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyByZXF1ZXN0aW5nRG9j
dW1lbnQsIHJlcXVlc3RpbmdEb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCB7IH0sIHsgfSwgbG9j
a0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCByZXF1ZXN0aW5nRG9jdW1lbnQucmVm
ZXJyZXJQb2xpY3koKSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpBbGxvdywgc2hvdWxkT3BlbkV4dGVybmFsVVJMcygpLCBpbml0aWF0ZWRC
eU1haW5GcmFtZSgpIH07CiAgICAgICAgIG1fc3VibWlzc2lvbi0+cG9wdWxhdGVGcmFtZUxvYWRS
ZXF1ZXN0KGZyYW1lTG9hZFJlcXVlc3QpOwogICAgICAgICBmcmFtZS5sb2FkZXIoKS5sb2FkRnJh
bWVSZXF1ZXN0KFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCksIG1fc3VibWlzc2lvbi0+ZXZlbnQo
KSwgbV9zdWJtaXNzaW9uLT50YWtlU3RhdGUoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuY3BwCmluZGV4IDE5NDI0YjJmOTg3NzI2MzgzOWVmODY2NzFiMDFmOTI5NTY2MGUy
NTEuLjZjN2EwNWNmMTk3MDY3ZGFjNjQxNDE3NGQxOTI4NTNkNTQ2OWQ5NjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKQEAgLTEzNiw4ICsxMzYsOSBAQCB2b2lkIFBpbmdMb2Fk
ZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwm
IGRlc3RpbmF0aQogCiAgICAgSFRUUEhlYWRlck1hcCBvcmlnaW5hbFJlcXVlc3RIZWFkZXIgPSBy
ZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKTsKIAotICAgIGF1dG8mIHNvdXJjZU9yaWdpbiA9IGRv
Y3VtZW50LnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5J
Zk5lZWRlZChyZXF1ZXN0LCBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVPcmlnaW5IZWFkZXIoZG9j
dW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcmVxdWVzdC51cmwoKSwgc291cmNlT3JpZ2luKSk7Cisg
ICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBkb2N1bWVudC5y
ZWZlcnJlclBvbGljeSgpLCBbJmRvY3VtZW50XSAoKSB7CisgICAgICAgIHJldHVybiAmZG9jdW1l
bnQuc2VjdXJpdHlPcmlnaW4oKTsKKyAgICB9KTsKICAgICBmcmFtZS5sb2FkZXIoKS5hZGRFeHRy
YUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOwogICAgIHJlcXVlc3Quc2V0SFRU
UEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpQaW5nVG8sIGRlc3RpbmF0aW9uVVJMKTsKICAg
ICBpZiAoIVNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIocGluZ1VSTCwgZnJhbWUu
bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
cmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGVhMmI4OTU3YjIzZWVkMTkzOTA3ZThmMTIwZjEzY2Ey
NGE4NTZlMTYuLmZlNjcxODRjNDkyOGU1YjBlZWU5YTAxN2NkYTEzMWMxMGM1M2QzMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtNjYxLDE1ICs2
NjEsMTcgQEAgRXhwZWN0ZWQ8dm9pZCwgU3RyaW5nPiBTdWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tS
ZWRpcmVjdGlvbkNyb3NzT3JpZ2luQWNjZXNzQ29udHIKIAogICAgIC8vIEltcGxlbWVudGluZyBo
dHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1odHRwLXJlZGlyZWN0LWZldGNo
IHN0ZXAgMTQuCiAgICAgdXBkYXRlUmVmZXJyZXJQb2xpY3kocmVkaXJlY3RSZXNwb25zZS5odHRw
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJlZmVycmVyUG9saWN5KSk7Ci0gICAgCisKICAg
ICBpZiAob3B0aW9ucygpLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzICYmIHJlZGly
ZWN0aW5nVG9OZXdPcmlnaW4pIHsKICAgICAgICAgY2xlYW5IVFRQUmVxdWVzdEhlYWRlcnNGb3JB
Y2Nlc3NDb250cm9sKG5ld1JlcXVlc3QsIG9wdGlvbnMoKS5odHRwSGVhZGVyc1RvS2VlcCk7CiAg
ICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKG5ld1JlcXVlc3QsICptX29yaWdp
biwgb3B0aW9ucygpLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKICAgICB9Ci0gICAgCisKICAg
ICB1cGRhdGVSZXF1ZXN0UmVmZXJyZXIobmV3UmVxdWVzdCwgcmVmZXJyZXJQb2xpY3koKSwgcHJl
dmlvdXNSZXF1ZXN0Lmh0dHBSZWZlcnJlcigpKTsKIAotICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQ
T3JpZ2luSWZOZWVkZWQobmV3UmVxdWVzdCwgbV9vcmlnaW4gPyBtX29yaWdpbi0+dG9TdHJpbmco
KSA6IFN0cmluZygpKTsKKyAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKG5l
d1JlcXVlc3QsIHJlZmVycmVyUG9saWN5KCksIFt0aGlzXSAoKSB7CisgICAgICAgIHJldHVybiBt
X29yaWdpbiA/IG1fb3JpZ2luIDogU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpOworICAg
IH0pOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggYWZmNjU0ODNlODlkYzJk
NmNlOTFkYmVjY2U2MjMwMTE5NjkzYTY5NC4uNTg1NzI5NGY5ODAwY2VhMjc0OWExNjcwODJlOTYy
MmQ2Y2Y3MTJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTIzMiwxMiArMjMyLDExIEBAIHZvaWQgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVSZWZlcnJlck9yaWdpbkFuZFVzZXJBZ2VudEhlYWRlcnMo
RnJhbWVMb2FkZXImCiAKICAgICBpZiAoIW1fcmVzb3VyY2VSZXF1ZXN0Lmh0dHBPcmlnaW4oKS5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBTdHJpbmcgb3V0Z29pbmdPcmlnaW47Ci0g
ICAgaWYgKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykKLSAgICAg
ICAgb3V0Z29pbmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvdXRn
b2luZ1JlZmVycmVyKS0+dG9TdHJpbmcoKTsKLSAgICBlbHNlCi0gICAgICAgIG91dGdvaW5nT3Jp
Z2luID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlT3JpZ2luSGVhZGVyKG1fb3B0aW9ucy5yZWZl
cnJlclBvbGljeSwgbV9yZXNvdXJjZVJlcXVlc3QudXJsKCksIFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKG91dGdvaW5nUmVmZXJyZXIpKTsKLSAgICBGcmFtZUxvYWRlcjo6YWRkSFRU
UE9yaWdpbklmTmVlZGVkKG1fcmVzb3VyY2VSZXF1ZXN0LCBvdXRnb2luZ09yaWdpbik7CisgICAg
Ly8gRklYTUU6IFNob3VsZCB0YWtlIHJlZmVycmVyLXBvbGljeSBpbnRvIGFjY291bnQgaW4gc29t
ZSBjYXNlcywgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lz
c3Vlcy8yMjI5OC4KKyAgICBhdXRvIHJlZmVycmVyUG9saWN5ID0gKG1fb3B0aW9ucy5tb2RlID09
IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykgPyBSZWZlcnJlclBvbGljeTo6VW5zYWZlVXJsIDog
bV9vcHRpb25zLnJlZmVycmVyUG9saWN5OworICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2lu
SWZOZWVkZWQobV9yZXNvdXJjZVJlcXVlc3QsIHJlZmVycmVyUG9saWN5LCBbb3V0Z29pbmdSZWZl
cnJlciA9IFdURk1vdmUob3V0Z29pbmdSZWZlcnJlcildICgpIHsKKyAgICAgICAgcmV0dXJuIFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG91dGdvaW5nUmVmZXJyZXIpOworICAgIH0p
OwogfQogCiBib29sIGlzUmVxdWVzdENyb3NzT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4s
IGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRp
b25zKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394476</attachid>
            <date>2020-03-25 02:01:33 -0700</date>
            <delta_ts>2020-03-25 08:10:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209066-20200325100131.patch</filename>
            <type>text/plain</type>
            <size>15127</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTgyZDQ1Mzg1ZDQ2ZjJi
YTdiMmNiYmVhMTkwZTljMjg5YjdmZjFkZS4uMDNiMjFkMDVkN2ExYWM2OGFjZTRjODE5MzBmYzlk
ZmE3YWEzMDRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAzLTI1ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBpbnRvIGFjY291bnQgcmVm
ZXJyZXItcG9saWN5IGluIGFwcGVuZCBPcmlnaW4gaGVhZGVyIGFsZ29yaXRobQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgdGFraW5nIGludG8g
YWNjb3VudCByZWZlcnJlci1wb2xpY3kgaW4gbW9yZSBwbGFjZXMgd2hlbiB3ZQorICAgICAgICBh
cHBlbmQgdGhlIG9yaWdpbiBoZWFkZXIgWzFdLgorCisgICAgICAgIFsxXSBodHRwczovL2ZldGNo
LnNwZWMud2hhdHdnLm9yZy8jYXBwZW5kLWEtcmVxdWVzdC1vcmlnaW4taGVhZGVyCisKKyAgICAg
ICAgKiBsb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1
Ym1pc3Npb246OnBvcHVsYXRlRnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjphZGRFeHRyYUZp
ZWxkc1RvUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZERp
ZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6YWRk
SFRUUE9yaWdpbklmTmVlZGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHA6CisgICAgICAg
ICogbG9hZGVyL1BpbmdMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6
c2VuZFBpbmcpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tSZWRpcmVjdGlvbkNyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnVw
ZGF0ZVJlZmVycmVyT3JpZ2luQW5kVXNlckFnZW50SGVhZGVycyk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdEJhc2U6OmNhblNldEhUVFBPcmlnaW4gY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorCiAyMDIwLTAzLTI0ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBtdWx0
aXBsZSB1bm5lY2Vzc2FyeSB1cGRhdGVzIG9mIHRoZSBJc29sYXRlZFRyZWUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAppbmRleCA0MGYzNWM0OTZhYTlmOGIxOGE0ODU4
YzAzYzk1NjRhYjQyNGI4OGU5Li5jOGEzZDQzNGZiODBmM2Y4NzZjMTM4N2UwMTY3MDM2MzIxZDQz
MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKQEAgLTQ4LDYg
KzQ4LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRp
b21zLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCisjaW5jbHVkZSAiU2Vj
dXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KIApAQCAtMjQ3LDcgKzI0OCwxMSBAQCB2b2lkIEZvcm1TdWJtaXNzaW9uOjpw
b3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYgZnJhbWVSZXF1ZXN0KQog
ICAgIH0KIAogICAgIGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwocmVxdWVz
dFVSTCgpKTsKLSAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKGZyYW1lUmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgbV9vcmlnaW4pOworICAgIGlmIChmcmFtZVJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkuY2FuU2V0SFRUUE9yaWdpbigpKSB7CisgICAgICAgIGF1dG8gc2Vj
dXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX29yaWdpbik7
CisgICAgICAgIFN0cmluZyBvcmlnaW4gPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVPcmlnaW5I
ZWFkZXIoZnJhbWVSZXF1ZXN0LnJlcXVlc3RlcigpLnJlZmVycmVyUG9saWN5KCksIGZyYW1lUmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSwgc2VjdXJpdHlPcmlnaW4pOworICAgICAgICBm
cmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUE9yaWdpbihvcmlnaW4pOworICAg
IH0KICAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUFVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzSWZOZWVk
ZWQoZnJhbWVSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggODQ5NDZmZGNiYTMxNzJmNGY5YWIzZTZjYjZjNDgwZTU1
MTcwOWVhMS4uNGQxYzgxNThlMDkwYjRhMWI2YzQ2NWQ0NDgxMWNiNjBjMzA5YTcyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yOTc4LDkgKzI5NzgsNiBAQCB2b2lk
IEZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxkc1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIEZyYW1lTG9hZFR5cAogCiAgICAgYXBwbHlVc2VyQWdlbnRJZk5lZWRlZChyZXF1ZXN0
KTsKIAotICAgIC8vIE1ha2Ugc3VyZSB3ZSBzZW5kIHRoZSBPcmlnaW4gaGVhZGVyLgotICAgIGFk
ZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBTdHJpbmcoKSk7Ci0KICAgICAvLyBPbmx5IHNl
dCBmYWxsYmFjayBhcnJheSBpZiBpdCdzIHN0aWxsIGVtcHR5IChsYXRlciBhdHRlbXB0cyBtYXkg
YmUgaW5jb3JyZWN0LCBzZWUgYnVnIDExNzgxOCkuCiAgICAgaWYgKHJlcXVlc3QucmVzcG9uc2VD
b250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkoKS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgLy8gQWx3YXlzIHRyeSBVVEYtOC4gSWYgdGhhdCBmYWlscywgdHJ5IGZyYW1lIGVuY29k
aW5nIChpZiBhbnkpIGFuZCB0aGVuIHRoZSBkZWZhdWx0LgpAQCAtMjk4OCwzNiArMjk4NSw2IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgRnJhbWVMb2FkVHlwCiAgICAgfQogfQogCi12b2lkIEZyYW1lTG9hZGVyOjph
ZGRIVFRQT3JpZ2luSWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIG9yaWdpbikKLXsKLSAgICBpZiAoIXJlcXVlc3QuaHR0cE9yaWdpbigpLmlzRW1wdHkoKSkK
LSAgICAgICAgcmV0dXJuOyAgLy8gUmVxdWVzdCBhbHJlYWR5IGhhcyBhbiBPcmlnaW4gaGVhZGVy
LgotCi0gICAgLy8gRG9uJ3Qgc2VuZCBhbiBPcmlnaW4gaGVhZGVyIGZvciBHRVQgb3IgSEVBRCB0
byBhdm9pZCBwcml2YWN5IGlzc3Vlcy4KLSAgICAvLyBGb3IgZXhhbXBsZSwgaWYgYW4gaW50cmFu
ZXQgcGFnZSBoYXMgYSBoeXBlcmxpbmsgdG8gYW4gZXh0ZXJuYWwgd2ViCi0gICAgLy8gc2l0ZSwg
d2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSBPcmlnaW4gb2YgdGhlIHJlcXVlc3QgYmVjYXVz
ZSBpdAotICAgIC8vIHdpbGwgbGVhayB0aGUgaW50ZXJuYWwgaG9zdCBuYW1lLiBTaW1pbGFyIHBy
aXZhY3kgY29uY2VybnMgaGF2ZSBsZWFkCi0gICAgLy8gdG8gdGhlIHdpZGVzcHJlYWQgc3VwcHJl
c3Npb24gb2YgdGhlIFJlZmVyZXIgaGVhZGVyIGF0IHRoZSBuZXR3b3JrCi0gICAgLy8gbGF5ZXIu
Ci0gICAgaWYgKHJlcXVlc3QuaHR0cE1ldGhvZCgpID09ICJHRVQiIHx8IHJlcXVlc3QuaHR0cE1l
dGhvZCgpID09ICJIRUFEIikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRklYTUU6IHRha2Ug
cmVmZXJyZXItcG9saWN5IGludG8gYWNjb3VudC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDY2Ci0KLSAgICAvLyBGb3Igbm9uLUdFVCBhbmQgbm9u
LUhFQUQgbWV0aG9kcywgYWx3YXlzIHNlbmQgYW4gT3JpZ2luIGhlYWRlciBzbyB0aGUKLSAgICAv
LyBzZXJ2ZXIga25vd3Mgd2Ugc3VwcG9ydCB0aGlzIGZlYXR1cmUuCi0KLSAgICBpZiAob3JpZ2lu
LmlzRW1wdHkoKSkgewotICAgICAgICAvLyBJZiB3ZSBkb24ndCBrbm93IHdoYXQgb3JpZ2luIGhl
YWRlciB0byBhdHRhY2gsIHdlIGF0dGFjaCB0aGUgdmFsdWUKLSAgICAgICAgLy8gZm9yIGFuIGVt
cHR5IG9yaWdpbi4KLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQT3JpZ2luKFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGVVbmlxdWUoKS0+dG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICByZXF1ZXN0LnNldEhUVFBPcmlnaW4ob3JpZ2luKTsKLX0KLQogLy8gSW1wbGVtZW50cyB0
aGUgIidTYW1lLXNpdGUnIGFuZCAnY3Jvc3Mtc2l0ZScgUmVxdWVzdHMiIGFsZ29yaXRobSBmcm9t
IDxodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1odHRwYmlzLWNvb2tpZS1z
YW1lLXNpdGUtMDAjc2VjdGlvbi0yLjE+LgogLy8gVGhlIGFsZ29yaXRobSBpcyBhbW1lbmRlZCB0
byB0cmVhdCBVUkxzIHRoYXQgaW5oZXJpdCB0aGVpciBzZWN1cml0eSBvcmlnaW4gZnJvbSB0aGVp
ciBvd25lciAoZS5nLiBhYm91dDpibGFuaykKIC8vIGFzIHNhbWUtc2l0ZS4gVGhpcyBtYXRjaGVz
IHRoZSBiZWhhdmlvciBvZiBDaHJvbWUgYW5kIEZpcmVmb3guCkBAIC0zMTEzLDcgKzMwODAsMTAg
QEAgdW5zaWduZWQgbG9uZyBGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXUKICAgICAKICAgICBpZiAoIXJlZmVycmVyLmlzRW1w
dHkoKSkKICAgICAgICAgaW5pdGlhbFJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsK
LSAgICBhZGRIVFRQT3JpZ2luSWZOZWVkZWQoaW5pdGlhbFJlcXVlc3QsIG91dGdvaW5nT3JpZ2lu
KCkpOworICAgIGlmIChpbml0aWFsUmVxdWVzdC5jYW5TZXRIVFRQT3JpZ2luKCkpIHsKKyAgICAg
ICAgU3RyaW5nIG9yaWdpbiA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZU9yaWdpbkhlYWRlciht
X2ZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIGluaXRpYWxSZXF1ZXN0LnVybCgp
LCBtX2ZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICBpbml0aWFs
UmVxdWVzdC5zZXRIVFRQT3JpZ2luKG9yaWdpbik7CisgICAgfQogCiAgICAgaW5pdGlhbFJlcXVl
c3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMobV9mcmFtZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5k
b2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCkudXJsKCkpOwogICAgIApAQCAtMzgxMSw4ICszNzgx
LDExIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9y
eUl0ZW0mIGl0ZW0sIEhpc3RvcnlJdGVtKiBmcm9tCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZCgiUE9TVCIpOwogICAgICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KFdURk1vdmUoZm9ybURh
dGEpKTsKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoaXRlbS5mb3JtQ29udGVu
dFR5cGUoKSk7Ci0gICAgICAgIGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlRnJvbVN0cmluZyhpdGVtLnJlZmVycmVyKCkpOwotICAgICAgICBhZGRIVFRQT3JpZ2lu
SWZOZWVkZWQocmVxdWVzdCwgc2VjdXJpdHlPcmlnaW4tPnRvU3RyaW5nKCkpOworICAgICAgICBp
ZiAocmVxdWVzdC5jYW5TZXRIVFRQT3JpZ2luKCkpIHsKKyAgICAgICAgICAgIGF1dG8gc2VjdXJp
dHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhpdGVtLnJlZmVycmVy
KCkpOworICAgICAgICAgICAgU3RyaW5nIG9yaWdpbiA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0
ZU9yaWdpbkhlYWRlcihtX2ZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHJlcXVl
c3QudXJsKCksIHNlY3VyaXR5T3JpZ2luKTsKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUE9y
aWdpbihvcmlnaW4pOworICAgICAgICB9CiAgICAgICAgIGFkZEhUVFBVcGdyYWRlSW5zZWN1cmVS
ZXF1ZXN0c0lmTmVlZGVkKHJlcXVlc3QpOwogCiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0byBhZGQg
ZXh0cmEgZmllbGRzIHRvIHRoZSByZXF1ZXN0IGFmdGVyIHRoZSBPcmlnaW4gaGVhZGVyIGlzIGFk
ZGVkIGZvciB0aGUgRm9ybURhdGEgY2FzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgK
aW5kZXggNDMwMWJiMmJiMDU1OThiNDNjMWU4ZjQ5NzYxMDM0YTE5NGRjNjI4MS4uOThkMmI1ZWU1
NGQ3NWNhMDA3ZDNmZTYyOWM0ZjYwMDc5NmE4N2YzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKQEAgLTIyNCw3ICsyMjQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRFeHRyYUZp
ZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgYWRk
RXh0cmFGaWVsZHNUb01haW5SZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAg
Ci0gICAgc3RhdGljIHZvaWQgYWRkSFRUUE9yaWdpbklmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFN0cmluZyYgb3JpZ2luKTsKICAgICBzdGF0aWMgdm9pZCBhZGRIVFRQVXBncmFkZUlu
c2VjdXJlUmVxdWVzdHNJZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmKTsKICAgICBzdGF0aWMgdm9p
ZCBhZGRTYW1lU2l0ZUluZm9Ub1JlcXVlc3RJZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBEb2N1bWVudCogaW5pdGlhdG9yID0gbnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCA4OTM5ZTJmYTMzNjc1ZmY0ZWY0MTA2
MDAwNzYzMzg1ZWNhMjQ5MGZiLi5jZjUyNGViNWY1ZDE4YTMzYjY5MjI1ODJjMDU0MzE4YWRkNjVh
NmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3Bw
CkBAIC0yODksNyArMjg5LDcgQEAgcHVibGljOgogICAgICAgICBhdXRvJiByZXF1ZXN0aW5nRG9j
dW1lbnQgPSBtX3N1Ym1pc3Npb24tPnN0YXRlKCkuc291cmNlRG9jdW1lbnQoKTsKICAgICAgICAg
aWYgKCFyZXF1ZXN0aW5nRG9jdW1lbnQuY2FuTmF2aWdhdGUoJmZyYW1lKSkKICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgcmVx
dWVzdGluZ0RvY3VtZW50LCByZXF1ZXN0aW5nRG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSwgeyB9
LCB7IH0sIGxvY2tIaXN0b3J5KCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSwgUmVmZXJyZXJQb2xp
Y3k6OkVtcHR5U3RyaW5nLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJh
bWVPcGVuZXJQb2xpY3k6OkFsbG93LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzKCksIGluaXRpYXRl
ZEJ5TWFpbkZyYW1lKCkgfTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1
ZXN0IHsgcmVxdWVzdGluZ0RvY3VtZW50LCByZXF1ZXN0aW5nRG9jdW1lbnQuc2VjdXJpdHlPcmln
aW4oKSwgeyB9LCB7IH0sIGxvY2tIaXN0b3J5KCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSwgcmVx
dWVzdGluZ0RvY3VtZW50LnJlZmVycmVyUG9saWN5KCksIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIHNob3VsZE9wZW5FeHRlcm5h
bFVSTHMoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OwogICAgICAgICBtX3N1Ym1pc3Npb24t
PnBvcHVsYXRlRnJhbWVMb2FkUmVxdWVzdChmcmFtZUxvYWRSZXF1ZXN0KTsKICAgICAgICAgZnJh
bWUubG9hZGVyKCkubG9hZEZyYW1lUmVxdWVzdChXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpLCBt
X3N1Ym1pc3Npb24tPmV2ZW50KCksIG1fc3VibWlzc2lvbi0+dGFrZVN0YXRlKCkpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAppbmRleCAxOTQyNGIyZjk4NzcyNjM4Mzll
Zjg2NjcxYjAxZjkyOTU2NjBlMjUxLi4xMDIwNTg1ODU4MGQyNjYwMjFiOTVjZjJmOTQ3ZjI5NjRl
NjlkM2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCkBAIC0xMzYsOCArMTM2
LDEwIEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwm
IHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGluYXRpCiAKICAgICBIVFRQSGVhZGVyTWFwIG9yaWdp
bmFsUmVxdWVzdEhlYWRlciA9IHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpOwogCi0gICAgYXV0
byYgc291cmNlT3JpZ2luID0gZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKTsKLSAgICBGcmFtZUxv
YWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIFNlY3VyaXR5UG9saWN5OjpnZW5l
cmF0ZU9yaWdpbkhlYWRlcihkb2N1bWVudC5yZWZlcnJlclBvbGljeSgpLCByZXF1ZXN0LnVybCgp
LCBzb3VyY2VPcmlnaW4pKTsKKyAgICBpZiAocmVxdWVzdC5jYW5TZXRIVFRQT3JpZ2luKCkpIHsK
KyAgICAgICAgU3RyaW5nIG9yaWdpbiA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZU9yaWdpbkhl
YWRlcihkb2N1bWVudC5yZWZlcnJlclBvbGljeSgpLCByZXF1ZXN0LnVybCgpLCBkb2N1bWVudC5z
ZWN1cml0eU9yaWdpbigpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRIVFRQT3JpZ2luKG9yaWdpbik7
CisgICAgfQogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJl
cXVlc3QocmVxdWVzdCk7CiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRl
ck5hbWU6OlBpbmdUbywgZGVzdGluYXRpb25VUkwpOwogICAgIGlmICghU2VjdXJpdHlQb2xpY3k6
OnNob3VsZEhpZGVSZWZlcnJlcihwaW5nVVJMLCBmcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVy
cmVyKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKaW5k
ZXggZWEyYjg5NTdiMjNlZWQxOTM5MDdlOGYxMjBmMTNjYTI0YTg1NmUxNi4uNjYyNWUzZWMwM2Q2
ZDUzZGVlOTk4MjVlYjM3YTIyOGQ0ZGViZWE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVRpbWluZy5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNjYxLDE1ICs2NjIsMTggQEAgRXhwZWN0ZWQ8dm9p
ZCwgU3RyaW5nPiBTdWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tSZWRpcmVjdGlvbkNyb3NzT3JpZ2lu
QWNjZXNzQ29udHIKIAogICAgIC8vIEltcGxlbWVudGluZyBodHRwczovL2ZldGNoLnNwZWMud2hh
dHdnLm9yZy8jY29uY2VwdC1odHRwLXJlZGlyZWN0LWZldGNoIHN0ZXAgMTQuCiAgICAgdXBkYXRl
UmVmZXJyZXJQb2xpY3kocmVkaXJlY3RSZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRl
ck5hbWU6OlJlZmVycmVyUG9saWN5KSk7Ci0gICAgCisKICAgICBpZiAob3B0aW9ucygpLm1vZGUg
PT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzICYmIHJlZGlyZWN0aW5nVG9OZXdPcmlnaW4pIHsK
ICAgICAgICAgY2xlYW5IVFRQUmVxdWVzdEhlYWRlcnNGb3JBY2Nlc3NDb250cm9sKG5ld1JlcXVl
c3QsIG9wdGlvbnMoKS5odHRwSGVhZGVyc1RvS2VlcCk7CiAgICAgICAgIHVwZGF0ZVJlcXVlc3RG
b3JBY2Nlc3NDb250cm9sKG5ld1JlcXVlc3QsICptX29yaWdpbiwgb3B0aW9ucygpLnN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5KTsKICAgICB9Ci0gICAgCisKICAgICB1cGRhdGVSZXF1ZXN0UmVmZXJy
ZXIobmV3UmVxdWVzdCwgcmVmZXJyZXJQb2xpY3koKSwgcHJldmlvdXNSZXF1ZXN0Lmh0dHBSZWZl
cnJlcigpKTsKIAotICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQobmV3UmVx
dWVzdCwgbV9vcmlnaW4gPyBtX29yaWdpbi0+dG9TdHJpbmcoKSA6IFN0cmluZygpKTsKKyAgICBp
ZiAobmV3UmVxdWVzdC5jYW5TZXRIVFRQT3JpZ2luKCkpIHsKKyAgICAgICAgU3RyaW5nIG9yaWdp
biA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZU9yaWdpbkhlYWRlcihyZWZlcnJlclBvbGljeSgp
LCBuZXdSZXF1ZXN0LnVybCgpLCBtX29yaWdpbiA/ICptX29yaWdpbiA6IFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGVVbmlxdWUoKS5nZXQoKSk7CisgICAgICAgIG5ld1JlcXVlc3Quc2V0SFRUUE9yaWdp
bihvcmlnaW4pOworICAgIH0KIAogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IGFm
ZjY1NDgzZTg5ZGMyZDZjZTkxZGJlY2NlNjIzMDExOTY5M2E2OTQuLmY5MGU4NmFmZmNlZGE0YzM0
NTcxNzNmYjllNmNkMDU1MWZhYzEzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC0yMzAsMTQgKzIzMCwxMyBA
QCB2b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6dXBkYXRlUmVmZXJyZXJPcmlnaW5BbmRVc2Vy
QWdlbnRIZWFkZXJzKEZyYW1lTG9hZGVyJgogICAgIHVwZGF0ZVJlcXVlc3RSZWZlcnJlcihtX3Jl
c291cmNlUmVxdWVzdCwgbV9vcHRpb25zLnJlZmVycmVyUG9saWN5LCBvdXRnb2luZ1JlZmVycmVy
KTsKICAgICBmcmFtZUxvYWRlci5hcHBseVVzZXJBZ2VudElmTmVlZGVkKG1fcmVzb3VyY2VSZXF1
ZXN0KTsKIAotICAgIGlmICghbV9yZXNvdXJjZVJlcXVlc3QuaHR0cE9yaWdpbigpLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIFN0cmluZyBvdXRnb2luZ09yaWdpbjsKLSAgICBpZiAo
bV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKQotICAgICAgICBvdXRn
b2luZ09yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG91dGdvaW5nUmVm
ZXJyZXIpLT50b1N0cmluZygpOwotICAgIGVsc2UKLSAgICAgICAgb3V0Z29pbmdPcmlnaW4gPSBT
ZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVPcmlnaW5IZWFkZXIobV9vcHRpb25zLnJlZmVycmVyUG9s
aWN5LCBtX3Jlc291cmNlUmVxdWVzdC51cmwoKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21T
dHJpbmcob3V0Z29pbmdSZWZlcnJlcikpOwotICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2lu
SWZOZWVkZWQobV9yZXNvdXJjZVJlcXVlc3QsIG91dGdvaW5nT3JpZ2luKTsKKyAgICBpZiAobV9y
ZXNvdXJjZVJlcXVlc3QuY2FuU2V0SFRUUE9yaWdpbigpKSB7CisgICAgICAgIGF1dG8gb3V0Z29p
bmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvdXRnb2luZ1JlZmVy
cmVyKTsKKyAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0YWtlIHJlZmVycmVyLXBvbGljeSBpbnRv
IGFjY291bnQgaW4gc29tZSBjYXNlcywgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2lzc3Vlcy8yMjI5OC4KKyAgICAgICAgYXV0byByZWZlcnJlclBvbGljeSA9
IChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpID8gUmVmZXJyZXJQ
b2xpY3k6OlVuc2FmZVVybCA6IG1fb3B0aW9ucy5yZWZlcnJlclBvbGljeTsKKyAgICAgICAgU3Ry
aW5nIG9yaWdpbiA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZU9yaWdpbkhlYWRlcihyZWZlcnJl
clBvbGljeSwgbV9yZXNvdXJjZVJlcXVlc3QudXJsKCksIG91dGdvaW5nT3JpZ2luKTsKKyAgICAg
ICAgbV9yZXNvdXJjZVJlcXVlc3Quc2V0SFRUUE9yaWdpbihvcmlnaW4pOworICAgIH0KIH0KIAog
Ym9vbCBpc1JlcXVlc3RDcm9zc09yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBV
UkwmIHJlcXVlc3RVUkwsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVz
dEJhc2UuY3BwCmluZGV4IGQyOWJlMDBhM2Q3NDk0NDgzOGJmODMzMWJlZjYxMjFkOWEwMDkzMzEu
LjY0MDJlMWMzMjllZGZmNjk5MGIxMTE1NTVhYjJmNmZiMTU1ZDBmMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNw
cApAQCAtNDAzLDYgKzQwMywyMCBAQCBTdHJpbmcgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6aHR0cE9y
aWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIGh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
T3JpZ2luKTsKIH0KIAorYm9vbCBSZXNvdXJjZVJlcXVlc3RCYXNlOjpjYW5TZXRIVFRQT3JpZ2lu
KCkgY29uc3QKK3sKKyAgICBpZiAoIWh0dHBPcmlnaW4oKS5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsgLy8gUmVxdWVzdCBhbHJlYWR5IGhhcyBhbiBPcmlnaW4gaGVhZGVyLgorCisg
ICAgLy8gRG9uJ3Qgc2VuZCBhbiBPcmlnaW4gaGVhZGVyIGZvciBHRVQgb3IgSEVBRCB0byBhdm9p
ZCBwcml2YWN5IGlzc3Vlcy4KKyAgICAvLyBGb3IgZXhhbXBsZSwgaWYgYW4gaW50cmFuZXQgcGFn
ZSBoYXMgYSBoeXBlcmxpbmsgdG8gYW4gZXh0ZXJuYWwgd2ViCisgICAgLy8gc2l0ZSwgd2UgZG9u
J3Qgd2FudCB0byBpbmNsdWRlIHRoZSBPcmlnaW4gb2YgdGhlIHJlcXVlc3QgYmVjYXVzZSBpdAor
ICAgIC8vIHdpbGwgbGVhayB0aGUgaW50ZXJuYWwgaG9zdCBuYW1lLiBTaW1pbGFyIHByaXZhY3kg
Y29uY2VybnMgaGF2ZSBsZWFkCisgICAgLy8gdG8gdGhlIHdpZGVzcHJlYWQgc3VwcHJlc3Npb24g
b2YgdGhlIFJlZmVyZXIgaGVhZGVyIGF0IHRoZSBuZXR3b3JrCisgICAgLy8gbGF5ZXIuCisgICAg
cmV0dXJuIGh0dHBNZXRob2QoKSAhPSAiR0VUIiAmJiBodHRwTWV0aG9kKCkgIT0gIkhFQUQiOwor
fQorCiB2b2lkIFJlc291cmNlUmVxdWVzdEJhc2U6OnNldEhUVFBPcmlnaW4oY29uc3QgU3RyaW5n
JiBodHRwT3JpZ2luKQogewogICAgIHNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
T3JpZ2luLCBodHRwT3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKaW5kZXggN2RkN2JiMTg2NDgzY2I5YWM2NDc0
MTEyNWI5ODA4NmIxNzYwMzRmYi4uYzE4NzFiOWQ1M2I2NDJlZTZhNWNlYThlNWY1MjBjYjdjYTQ2
Y2NhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlcXVlc3RCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlcXVlc3RCYXNlLmgKQEAgLTEyOCw2ICsxMjgsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgaHR0cE9yaWdpbigpIGNvbnN0OwogICAgIGJvb2wgaGFzSFRUUE9y
aWdpbigpIGNvbnN0OworICAgIGJvb2wgY2FuU2V0SFRUUE9yaWdpbigpIGNvbnN0OwogICAgIHZv
aWQgc2V0SFRUUE9yaWdpbihjb25zdCBTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGNsZWFySFRUUE9yaWdpbigpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394496</attachid>
            <date>2020-03-25 08:10:23 -0700</date>
            <delta_ts>2020-03-25 13:36:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209066-20200325161020.patch</filename>
            <type>text/plain</type>
            <size>15311</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVhZTgyODhjYjkwNjZi
NDU3NjNkZjFlMGI0OTY0NGQxMDA3ZTRlYi4uODU2MzIyYTdiODc3OWJiZTZlNGU4NWJmYjllMzAx
OGEzOTA3Y2VmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAzLTI1ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBpbnRvIGFjY291bnQgcmVm
ZXJyZXItcG9saWN5IGluIGFwcGVuZCBPcmlnaW4gaGVhZGVyIGFsZ29yaXRobQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgdGFraW5nIGludG8g
YWNjb3VudCByZWZlcnJlci1wb2xpY3kgaW4gbW9yZSBwbGFjZXMgd2hlbiB3ZQorICAgICAgICBh
cHBlbmQgdGhlIG9yaWdpbiBoZWFkZXIgWzFdLiBUbyBwcmV2ZW50IGNvbXB1dGluZyBTZWN1cml0
eU9yaWdpbgorICAgICAgICBuZWVkbGVzc2x5IGFkZCBhIGhlbHBlciBmdW5jdGlvbiBkb2VzUmVx
dWVzdE5lZWRIVFRQT3JpZ2luSGVhZGVyLgorCisgICAgICAgIFsxXSBodHRwczovL2ZldGNoLnNw
ZWMud2hhdHdnLm9yZy8jYXBwZW5kLWEtcmVxdWVzdC1vcmlnaW4taGVhZGVyCisKKyAgICAgICAg
KiBsb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybVN1Ym1p
c3Npb246OnBvcHVsYXRlRnJhbWVMb2FkUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxk
c1RvUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZERpZmZl
cmVudERvY3VtZW50SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6YWRkSFRU
UE9yaWdpbklmTmVlZGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIu
aDoKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHA6CisgICAgICAgICog
bG9hZGVyL1BpbmdMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2Vu
ZFBpbmcpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tSZWRpcmVjdGlvbkNyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0
ZVJlZmVycmVyT3JpZ2luQW5kVXNlckFnZW50SGVhZGVycyk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRvZXNS
ZXF1ZXN0TmVlZEhUVFBPcmlnaW5IZWFkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorCiAyMDIwLTAzLTI1ICBUaW5nLVdlaSBMYW4gIDxsYW50
dzQ0QGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgdXNlciBhZ2VudCBxdWlyayBmb3Ig
YXV0aC5tYXlvaHIuY29tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1
Ym1pc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcApp
bmRleCA0MGYzNWM0OTZhYTlmOGIxOGE0ODU4YzAzYzk1NjRhYjQyNGI4OGU5Li44NmFmYjdlNzEy
NmQ3NjZhMDAxYTMzMDI5MDQ0NjI4NTNkNTdkNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
b3JtU3VibWlzc2lvbi5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxs
b3dlZFNjb3BlLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJUZXh0
RW5jb2RpbmcuaCIKICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIApAQCAtMjQ3LDcgKzI0OCwx
MSBAQCB2b2lkIEZvcm1TdWJtaXNzaW9uOjpwb3B1bGF0ZUZyYW1lTG9hZFJlcXVlc3QoRnJhbWVM
b2FkUmVxdWVzdCYgZnJhbWVSZXF1ZXN0KQogICAgIH0KIAogICAgIGZyYW1lUmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKS5zZXRVUkwocmVxdWVzdFVSTCgpKTsKLSAgICBGcmFtZUxvYWRlcjo6YWRk
SFRUUE9yaWdpbklmTmVlZGVkKGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgbV9vcmln
aW4pOworICAgIGlmIChkb2VzUmVxdWVzdE5lZWRIVFRQT3JpZ2luSGVhZGVyKGZyYW1lUmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKSkpIHsKKyAgICAgICAgYXV0byBzZWN1cml0eU9yaWdpbiA9IFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG1fb3JpZ2luKTsKKyAgICAgICAgYXV0byBv
cmlnaW4gPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVPcmlnaW5IZWFkZXIoZnJhbWVSZXF1ZXN0
LnJlcXVlc3RlcigpLnJlZmVycmVyUG9saWN5KCksIGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKS51cmwoKSwgc2VjdXJpdHlPcmlnaW4pOworICAgICAgICBmcmFtZVJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkuc2V0SFRUUE9yaWdpbihvcmlnaW4pOworICAgIH0KICAgICBGcmFtZUxvYWRl
cjo6YWRkSFRUUFVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzSWZOZWVkZWQoZnJhbWVSZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggODQ5NDZmZGNiYTMxNzJmNGY5YWIzZTZjYjZjNDgwZTU1MTcwOWVhMS4uODc5YTBkMzhi
NTQ0YmM0ZDc5ZTQ0ZGE1YTg1NWVlNDlkNDAzMDZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCkBAIC0yOTc4LDkgKzI5NzgsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjphZGRF
eHRyYUZpZWxkc1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lTG9hZFR5
cAogCiAgICAgYXBwbHlVc2VyQWdlbnRJZk5lZWRlZChyZXF1ZXN0KTsKIAotICAgIC8vIE1ha2Ug
c3VyZSB3ZSBzZW5kIHRoZSBPcmlnaW4gaGVhZGVyLgotICAgIGFkZEhUVFBPcmlnaW5JZk5lZWRl
ZChyZXF1ZXN0LCBTdHJpbmcoKSk7Ci0KICAgICAvLyBPbmx5IHNldCBmYWxsYmFjayBhcnJheSBp
ZiBpdCdzIHN0aWxsIGVtcHR5IChsYXRlciBhdHRlbXB0cyBtYXkgYmUgaW5jb3JyZWN0LCBzZWUg
YnVnIDExNzgxOCkuCiAgICAgaWYgKHJlcXVlc3QucmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25F
bmNvZGluZ0ZhbGxiYWNrQXJyYXkoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gQWx3YXlzIHRy
eSBVVEYtOC4gSWYgdGhhdCBmYWlscywgdHJ5IGZyYW1lIGVuY29kaW5nIChpZiBhbnkpIGFuZCB0
aGVuIHRoZSBkZWZhdWx0LgpAQCAtMjk4OCwzNiArMjk4NSw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWVM
b2FkVHlwCiAgICAgfQogfQogCi12b2lkIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVk
ZWQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbikKLXsKLSAg
ICBpZiAoIXJlcXVlc3QuaHR0cE9yaWdpbigpLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOyAg
Ly8gUmVxdWVzdCBhbHJlYWR5IGhhcyBhbiBPcmlnaW4gaGVhZGVyLgotCi0gICAgLy8gRG9uJ3Qg
c2VuZCBhbiBPcmlnaW4gaGVhZGVyIGZvciBHRVQgb3IgSEVBRCB0byBhdm9pZCBwcml2YWN5IGlz
c3Vlcy4KLSAgICAvLyBGb3IgZXhhbXBsZSwgaWYgYW4gaW50cmFuZXQgcGFnZSBoYXMgYSBoeXBl
cmxpbmsgdG8gYW4gZXh0ZXJuYWwgd2ViCi0gICAgLy8gc2l0ZSwgd2UgZG9uJ3Qgd2FudCB0byBp
bmNsdWRlIHRoZSBPcmlnaW4gb2YgdGhlIHJlcXVlc3QgYmVjYXVzZSBpdAotICAgIC8vIHdpbGwg
bGVhayB0aGUgaW50ZXJuYWwgaG9zdCBuYW1lLiBTaW1pbGFyIHByaXZhY3kgY29uY2VybnMgaGF2
ZSBsZWFkCi0gICAgLy8gdG8gdGhlIHdpZGVzcHJlYWQgc3VwcHJlc3Npb24gb2YgdGhlIFJlZmVy
ZXIgaGVhZGVyIGF0IHRoZSBuZXR3b3JrCi0gICAgLy8gbGF5ZXIuCi0gICAgaWYgKHJlcXVlc3Qu
aHR0cE1ldGhvZCgpID09ICJHRVQiIHx8IHJlcXVlc3QuaHR0cE1ldGhvZCgpID09ICJIRUFEIikK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRklYTUU6IHRha2UgcmVmZXJyZXItcG9saWN5IGlu
dG8gYWNjb3VudC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA5MDY2Ci0KLSAgICAvLyBGb3Igbm9uLUdFVCBhbmQgbm9uLUhFQUQgbWV0aG9kcywgYWx3
YXlzIHNlbmQgYW4gT3JpZ2luIGhlYWRlciBzbyB0aGUKLSAgICAvLyBzZXJ2ZXIga25vd3Mgd2Ug
c3VwcG9ydCB0aGlzIGZlYXR1cmUuCi0KLSAgICBpZiAob3JpZ2luLmlzRW1wdHkoKSkgewotICAg
ICAgICAvLyBJZiB3ZSBkb24ndCBrbm93IHdoYXQgb3JpZ2luIGhlYWRlciB0byBhdHRhY2gsIHdl
IGF0dGFjaCB0aGUgdmFsdWUKLSAgICAgICAgLy8gZm9yIGFuIGVtcHR5IG9yaWdpbi4KLSAgICAg
ICAgcmVxdWVzdC5zZXRIVFRQT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUoKS0+
dG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICByZXF1ZXN0LnNldEhU
VFBPcmlnaW4ob3JpZ2luKTsKLX0KLQogLy8gSW1wbGVtZW50cyB0aGUgIidTYW1lLXNpdGUnIGFu
ZCAnY3Jvc3Mtc2l0ZScgUmVxdWVzdHMiIGFsZ29yaXRobSBmcm9tIDxodHRwczovL3Rvb2xzLmll
dGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1odHRwYmlzLWNvb2tpZS1zYW1lLXNpdGUtMDAjc2VjdGlv
bi0yLjE+LgogLy8gVGhlIGFsZ29yaXRobSBpcyBhbW1lbmRlZCB0byB0cmVhdCBVUkxzIHRoYXQg
aW5oZXJpdCB0aGVpciBzZWN1cml0eSBvcmlnaW4gZnJvbSB0aGVpciBvd25lciAoZS5nLiBhYm91
dDpibGFuaykKIC8vIGFzIHNhbWUtc2l0ZS4gVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBD
aHJvbWUgYW5kIEZpcmVmb3guCkBAIC0zMTEzLDcgKzMwODAsMTAgQEAgdW5zaWduZWQgbG9uZyBG
cmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXUKICAgICAKICAgICBpZiAoIXJlZmVycmVyLmlzRW1wdHkoKSkKICAgICAgICAgaW5p
dGlhbFJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKLSAgICBhZGRIVFRQT3JpZ2lu
SWZOZWVkZWQoaW5pdGlhbFJlcXVlc3QsIG91dGdvaW5nT3JpZ2luKCkpOworICAgIGlmIChkb2Vz
UmVxdWVzdE5lZWRIVFRQT3JpZ2luSGVhZGVyKGluaXRpYWxSZXF1ZXN0KSkgeworICAgICAgICBh
dXRvIG9yaWdpbiA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZU9yaWdpbkhlYWRlcihtX2ZyYW1l
LmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIGluaXRpYWxSZXF1ZXN0LnVybCgpLCBtX2Zy
YW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICBpbml0aWFsUmVxdWVz
dC5zZXRIVFRQT3JpZ2luKG9yaWdpbik7CisgICAgfQogCiAgICAgaW5pdGlhbFJlcXVlc3Quc2V0
Rmlyc3RQYXJ0eUZvckNvb2tpZXMobV9mcmFtZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5kb2N1bWVu
dExvYWRlcigpLT5yZXF1ZXN0KCkudXJsKCkpOwogICAgIApAQCAtMzgxMSw4ICszNzgxLDExIEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0m
IGl0ZW0sIEhpc3RvcnlJdGVtKiBmcm9tCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgi
UE9TVCIpOwogICAgICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KFdURk1vdmUoZm9ybURhdGEpKTsK
ICAgICAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoaXRlbS5mb3JtQ29udGVudFR5cGUo
KSk7Ci0gICAgICAgIGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhpdGVtLnJlZmVycmVyKCkpOwotICAgICAgICBhZGRIVFRQT3JpZ2luSWZOZWVk
ZWQocmVxdWVzdCwgc2VjdXJpdHlPcmlnaW4tPnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoZG9l
c1JlcXVlc3ROZWVkSFRUUE9yaWdpbkhlYWRlcihyZXF1ZXN0KSkgeworICAgICAgICAgICAgYXV0
byBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0ZW0u
cmVmZXJyZXIoKSk7CisgICAgICAgICAgICBhdXRvIG9yaWdpbiA9IFNlY3VyaXR5UG9saWN5Ojpn
ZW5lcmF0ZU9yaWdpbkhlYWRlcihtX2ZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCks
IHJlcXVlc3QudXJsKCksIHNlY3VyaXR5T3JpZ2luKTsKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0
SFRUUE9yaWdpbihvcmlnaW4pOworICAgICAgICB9CiAgICAgICAgIGFkZEhUVFBVcGdyYWRlSW5z
ZWN1cmVSZXF1ZXN0c0lmTmVlZGVkKHJlcXVlc3QpOwogCiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0
byBhZGQgZXh0cmEgZmllbGRzIHRvIHRoZSByZXF1ZXN0IGFmdGVyIHRoZSBPcmlnaW4gaGVhZGVy
IGlzIGFkZGVkIGZvciB0aGUgRm9ybURhdGEgY2FzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKaW5kZXggNDMwMWJiMmJiMDU1OThiNDNjMWU4ZjQ5NzYxMDM0YTE5NGRjNjI4MS4uOThk
MmI1ZWU1NGQ3NWNhMDA3ZDNmZTYyOWM0ZjYwMDc5NmE4N2YzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKQEAgLTIyNCw3ICsyMjQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRF
eHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOwogICAgIHZv
aWQgYWRkRXh0cmFGaWVsZHNUb01haW5SZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0Jik7
CiAgICAgCi0gICAgc3RhdGljIHZvaWQgYWRkSFRUUE9yaWdpbklmTmVlZGVkKFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFN0cmluZyYgb3JpZ2luKTsKICAgICBzdGF0aWMgdm9pZCBhZGRIVFRQVXBn
cmFkZUluc2VjdXJlUmVxdWVzdHNJZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmKTsKICAgICBzdGF0
aWMgdm9pZCBhZGRTYW1lU2l0ZUluZm9Ub1JlcXVlc3RJZk5lZWRlZChSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBEb2N1bWVudCogaW5pdGlhdG9yID0gbnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCA4OTM5ZTJmYTMzNjc1ZmY0
ZWY0MTA2MDAwNzYzMzg1ZWNhMjQ5MGZiLi5jZjUyNGViNWY1ZDE4YTMzYjY5MjI1ODJjMDU0MzE4
YWRkNjVhNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNj
aGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVs
ZXIuY3BwCkBAIC0yODksNyArMjg5LDcgQEAgcHVibGljOgogICAgICAgICBhdXRvJiByZXF1ZXN0
aW5nRG9jdW1lbnQgPSBtX3N1Ym1pc3Npb24tPnN0YXRlKCkuc291cmNlRG9jdW1lbnQoKTsKICAg
ICAgICAgaWYgKCFyZXF1ZXN0aW5nRG9jdW1lbnQuY2FuTmF2aWdhdGUoJmZyYW1lKSkKICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0
IHsgcmVxdWVzdGluZ0RvY3VtZW50LCByZXF1ZXN0aW5nRG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4o
KSwgeyB9LCB7IH0sIGxvY2tIaXN0b3J5KCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSwgUmVmZXJy
ZXJQb2xpY3k6OkVtcHR5U3RyaW5nLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olllcywg
TmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzKCksIGlu
aXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxv
YWRSZXF1ZXN0IHsgcmVxdWVzdGluZ0RvY3VtZW50LCByZXF1ZXN0aW5nRG9jdW1lbnQuc2VjdXJp
dHlPcmlnaW4oKSwgeyB9LCB7IH0sIGxvY2tIaXN0b3J5KCksIGxvY2tCYWNrRm9yd2FyZExpc3Qo
KSwgcmVxdWVzdGluZ0RvY3VtZW50LnJlZmVycmVyUG9saWN5KCksIEFsbG93TmF2aWdhdGlvblRv
SW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIHNob3VsZE9wZW5F
eHRlcm5hbFVSTHMoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OwogICAgICAgICBtX3N1Ym1p
c3Npb24tPnBvcHVsYXRlRnJhbWVMb2FkUmVxdWVzdChmcmFtZUxvYWRSZXF1ZXN0KTsKICAgICAg
ICAgZnJhbWUubG9hZGVyKCkubG9hZEZyYW1lUmVxdWVzdChXVEZNb3ZlKGZyYW1lTG9hZFJlcXVl
c3QpLCBtX3N1Ym1pc3Npb24tPmV2ZW50KCksIG1fc3VibWlzc2lvbi0+dGFrZVN0YXRlKCkpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAppbmRleCAxOTQyNGIyZjk4Nzcy
NjM4MzllZjg2NjcxYjAxZjkyOTU2NjBlMjUxLi4zMjM2MWYwODMwNGYwZGUwNzVmNDMxNTQ2ZWJi
YTk2YjNhN2EzZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCkBAIC0xMzYs
OCArMTM2LDEwIEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmcoRnJhbWUmIGZyYW1lLCBjb25z
dCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGluYXRpCiAKICAgICBIVFRQSGVhZGVyTWFw
IG9yaWdpbmFsUmVxdWVzdEhlYWRlciA9IHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpOwogCi0g
ICAgYXV0byYgc291cmNlT3JpZ2luID0gZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKTsKLSAgICBG
cmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIFNlY3VyaXR5UG9saWN5
OjpnZW5lcmF0ZU9yaWdpbkhlYWRlcihkb2N1bWVudC5yZWZlcnJlclBvbGljeSgpLCByZXF1ZXN0
LnVybCgpLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBpZiAoZG9lc1JlcXVlc3ROZWVkSFRUUE9yaWdp
bkhlYWRlcihyZXF1ZXN0KSkgeworICAgICAgICBTdHJpbmcgb3JpZ2luID0gU2VjdXJpdHlQb2xp
Y3k6OmdlbmVyYXRlT3JpZ2luSGVhZGVyKGRvY3VtZW50LnJlZmVycmVyUG9saWN5KCksIHJlcXVl
c3QudXJsKCksIGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICByZXF1ZXN0LnNl
dEhUVFBPcmlnaW4ob3JpZ2luKTsKKyAgICB9CiAgICAgZnJhbWUubG9hZGVyKCkuYWRkRXh0cmFG
aWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UGluZ1RvLCBkZXN0aW5hdGlvblVSTCk7CiAgICAg
aWYgKCFTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKHBpbmdVUkwsIGZyYW1lLmxv
YWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJl
c291cmNlTG9hZGVyLmNwcAppbmRleCBlYTJiODk1N2IyM2VlZDE5MzkwN2U4ZjEyMGYxM2NhMjRh
ODU2ZTE2Li41YzNiZDAzZDE4NThmMzc2YWVjOGExNzQwNGU2MDJlMWVjY2RiNzAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ3LDYgKzQ3LDcg
QEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgogI2luY2x1ZGUgIlJlc291cmNl
VGltaW5nLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUg
IlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC02NjEsMTUgKzY2
MiwxOCBAQCBFeHBlY3RlZDx2b2lkLCBTdHJpbmc+IFN1YnJlc291cmNlTG9hZGVyOjpjaGVja1Jl
ZGlyZWN0aW9uQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cgogCiAgICAgLy8gSW1wbGVtZW50aW5nIGh0
dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWh0dHAtcmVkaXJlY3QtZmV0Y2gg
c3RlcCAxNC4KICAgICB1cGRhdGVSZWZlcnJlclBvbGljeShyZWRpcmVjdFJlc3BvbnNlLmh0dHBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmVmZXJyZXJQb2xpY3kpKTsKLSAgICAKKwogICAg
IGlmIChvcHRpb25zKCkubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMgJiYgcmVkaXJl
Y3RpbmdUb05ld09yaWdpbikgewogICAgICAgICBjbGVhbkhUVFBSZXF1ZXN0SGVhZGVyc0ZvckFj
Y2Vzc0NvbnRyb2wobmV3UmVxdWVzdCwgb3B0aW9ucygpLmh0dHBIZWFkZXJzVG9LZWVwKTsKICAg
ICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wobmV3UmVxdWVzdCwgKm1fb3JpZ2lu
LCBvcHRpb25zKCkuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogICAgIH0KLSAgICAKKwogICAg
IHVwZGF0ZVJlcXVlc3RSZWZlcnJlcihuZXdSZXF1ZXN0LCByZWZlcnJlclBvbGljeSgpLCBwcmV2
aW91c1JlcXVlc3QuaHR0cFJlZmVycmVyKCkpOwogCi0gICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBP
cmlnaW5JZk5lZWRlZChuZXdSZXF1ZXN0LCBtX29yaWdpbiA/IG1fb3JpZ2luLT50b1N0cmluZygp
IDogU3RyaW5nKCkpOworICAgIGlmIChkb2VzUmVxdWVzdE5lZWRIVFRQT3JpZ2luSGVhZGVyKG5l
d1JlcXVlc3QpKSB7CisgICAgICAgIGF1dG8gb3JpZ2luID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVy
YXRlT3JpZ2luSGVhZGVyKHJlZmVycmVyUG9saWN5KCksIG5ld1JlcXVlc3QudXJsKCksIG1fb3Jp
Z2luID8gKm1fb3JpZ2luIDogU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpLmdldCgpKTsK
KyAgICAgICAgbmV3UmVxdWVzdC5zZXRIVFRQT3JpZ2luKG9yaWdpbik7CisgICAgfQogCiAgICAg
cmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggYWZmNjU0ODNlODlkYzJkNmNlOTFkYmVjY2U2
MjMwMTE5NjkzYTY5NC4uZDc2MzI0MmVhMmYxZjBkOTQ5MGMwYjM4NDJkNTEwOGQ3MTQ4M2ZlYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHAKQEAgLTIzMCwxNCArMjMwLDEzIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0Ojp1cGRhdGVSZWZlcnJlck9yaWdpbkFuZFVzZXJBZ2VudEhlYWRlcnMoRnJhbWVMb2FkZXIm
CiAgICAgdXBkYXRlUmVxdWVzdFJlZmVycmVyKG1fcmVzb3VyY2VSZXF1ZXN0LCBtX29wdGlvbnMu
cmVmZXJyZXJQb2xpY3ksIG91dGdvaW5nUmVmZXJyZXIpOwogICAgIGZyYW1lTG9hZGVyLmFwcGx5
VXNlckFnZW50SWZOZWVkZWQobV9yZXNvdXJjZVJlcXVlc3QpOwogCi0gICAgaWYgKCFtX3Jlc291
cmNlUmVxdWVzdC5odHRwT3JpZ2luKCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAg
U3RyaW5nIG91dGdvaW5nT3JpZ2luOwotICAgIGlmIChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9w
dGlvbnM6Ok1vZGU6OkNvcnMpCi0gICAgICAgIG91dGdvaW5nT3JpZ2luID0gU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcob3V0Z29pbmdSZWZlcnJlciktPnRvU3RyaW5nKCk7Ci0gICAg
ZWxzZQotICAgICAgICBvdXRnb2luZ09yaWdpbiA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZU9y
aWdpbkhlYWRlcihtX29wdGlvbnMucmVmZXJyZXJQb2xpY3ksIG1fcmVzb3VyY2VSZXF1ZXN0LnVy
bCgpLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvdXRnb2luZ1JlZmVycmVyKSk7
Ci0gICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChtX3Jlc291cmNlUmVxdWVz
dCwgb3V0Z29pbmdPcmlnaW4pOworICAgIGlmIChkb2VzUmVxdWVzdE5lZWRIVFRQT3JpZ2luSGVh
ZGVyKG1fcmVzb3VyY2VSZXF1ZXN0KSkgeworICAgICAgICBhdXRvIG91dGdvaW5nT3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3V0Z29pbmdSZWZlcnJlcik7CisgICAg
ICAgIC8vIEZJWE1FOiBTaG91bGQgdGFrZSByZWZlcnJlci1wb2xpY3kgaW50byBhY2NvdW50IGlu
IHNvbWUgY2FzZXMsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9pc3N1ZXMvMjIyOTguCisgICAgICAgIGF1dG8gcmVmZXJyZXJQb2xpY3kgPSAobV9vcHRpb25z
Lm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKSA/IFJlZmVycmVyUG9saWN5OjpVbnNh
ZmVVcmwgOiBtX29wdGlvbnMucmVmZXJyZXJQb2xpY3k7CisgICAgICAgIGF1dG8gb3JpZ2luID0g
U2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlT3JpZ2luSGVhZGVyKHJlZmVycmVyUG9saWN5LCBtX3Jl
c291cmNlUmVxdWVzdC51cmwoKSwgb3V0Z29pbmdPcmlnaW4pOworICAgICAgICBtX3Jlc291cmNl
UmVxdWVzdC5zZXRIVFRQT3JpZ2luKG9yaWdpbik7CisgICAgfQogfQogCiBib29sIGlzUmVxdWVz
dENyb3NzT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFVSTCYgcmVxdWVzdFVS
TCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5k
ZXggZDI5YmUwMGEzZDc0OTQ0ODM4YmY4MzMxYmVmNjEyMWQ5YTAwOTMzMS4uYTkzNzMyMDM1MzEy
Y2M0N2QwOTIyMGFkODRmMmZiMmU4ZjczNDJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCkBAIC03NTAsNCAr
NzUwLDE4IEBAIFN0cmluZyBSZXNvdXJjZVJlcXVlc3RCYXNlOjpwYXJ0aXRpb25OYW1lKGNvbnN0
IFN0cmluZyYgZG9tYWluKQogI2VuZGlmCiB9CiAKK2Jvb2wgZG9lc1JlcXVlc3ROZWVkSFRUUE9y
aWdpbkhlYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgaWYgKCFy
ZXF1ZXN0Lmh0dHBPcmlnaW4oKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8g
UmVxdWVzdCBhbHJlYWR5IGhhcyBhbiBPcmlnaW4gaGVhZGVyLgorCisgICAgLy8gRG9uJ3Qgc2Vu
ZCBhbiBPcmlnaW4gaGVhZGVyIGZvciBHRVQgb3IgSEVBRCB0byBhdm9pZCBwcml2YWN5IGlzc3Vl
cy4KKyAgICAvLyBGb3IgZXhhbXBsZSwgaWYgYW4gaW50cmFuZXQgcGFnZSBoYXMgYSBoeXBlcmxp
bmsgdG8gYW4gZXh0ZXJuYWwgd2ViCisgICAgLy8gc2l0ZSwgd2UgZG9uJ3Qgd2FudCB0byBpbmNs
dWRlIHRoZSBPcmlnaW4gb2YgdGhlIHJlcXVlc3QgYmVjYXVzZSBpdAorICAgIC8vIHdpbGwgbGVh
ayB0aGUgaW50ZXJuYWwgaG9zdCBuYW1lLiBTaW1pbGFyIHByaXZhY3kgY29uY2VybnMgaGF2ZSBs
ZWFkCisgICAgLy8gdG8gdGhlIHdpZGVzcHJlYWQgc3VwcHJlc3Npb24gb2YgdGhlIFJlZmVyZXIg
aGVhZGVyIGF0IHRoZSBuZXR3b3JrCisgICAgLy8gbGF5ZXIuCisgICAgcmV0dXJuIHJlcXVlc3Qu
aHR0cE1ldGhvZCgpICE9ICJHRVQiICYmIHJlcXVlc3QuaHR0cE1ldGhvZCgpICE9ICJIRUFEIjsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlcXVlc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVxdWVzdEJhc2UuaAppbmRleCA3ZGQ3YmIxODY0ODNjYjlhYzY0NzQxMTI1Yjk4MDg2YjE3
NjAzNGZiLi4zNjFiN2U5NDRmYjA3MTI0MjZkN2YyYjQwYjRkYTFjY2RlZmQyYzdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuaApAQCAtMjYyLDYgKzI2Miw4IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGRvdWJsZSBzX2RlZmF1bHRUaW1lb3V0SW50ZXJ2YWw7CiB9OwogCitib29sIGRvZXNSZXF1
ZXN0TmVlZEhUVFBPcmlnaW5IZWFkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisKIGJvb2wg
ZXF1YWxJZ25vcmluZ0hlYWRlckZpZWxkcyhjb25zdCBSZXNvdXJjZVJlcXVlc3RCYXNlJiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYpOwogCiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgYSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBiKSB7IHJldHVybiBS
ZXNvdXJjZVJlcXVlc3RCYXNlOjplcXVhbChhLCBiKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394540</attachid>
            <date>2020-03-25 13:36:09 -0700</date>
            <delta_ts>2020-03-26 00:38:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209066-20200325213607.patch</filename>
            <type>text/plain</type>
            <size>15343</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODEwNzcwMWUxMTdiMGFi
MDVjNGJlODk0MmM2Y2Y3NDhlMDUwOWZmOS4uZWM2MTJlOWI5MmIwMzcxNzFiYTQ2MmQ0ODIzYTU3
NGEwZTFlYWEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAzLTI1ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVGFrZSBpbnRvIGFjY291bnQgcmVm
ZXJyZXItcG9saWN5IGluIGFwcGVuZCBPcmlnaW4gaGVhZGVyIGFsZ29yaXRobQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MDY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBTdGFydCB0YWtpbmcgaW50byBh
Y2NvdW50IHJlZmVycmVyLXBvbGljeSBpbiBtb3JlIHBsYWNlcyB3aGVuIHdlCisgICAgICAgIGFw
cGVuZCB0aGUgb3JpZ2luIGhlYWRlciBbMV0uIFRvIHByZXZlbnQgY29tcHV0aW5nIFNlY3VyaXR5
T3JpZ2luCisgICAgICAgIG5lZWRsZXNzbHkgYWRkIGEgaGVscGVyIGZ1bmN0aW9uIGRvZXNSZXF1
ZXN0TmVlZEhUVFBPcmlnaW5IZWFkZXIuCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZmV0Y2guc3Bl
Yy53aGF0d2cub3JnLyNhcHBlbmQtYS1yZXF1ZXN0LW9yaWdpbi1oZWFkZXIKKworICAgICAgICAq
IGxvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtU3VibWlz
c2lvbjo6cG9wdWxhdGVGcmFtZUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmFkZEV4dHJhRmllbGRz
VG9SZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVy
ZW50RG9jdW1lbnRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjphZGRIVFRQ
T3JpZ2luSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5o
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKiBs
b2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpzZW5k
UGluZyk6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpjaGVja1JlZGlyZWN0aW9uQ3Jvc3NPcmlnaW5B
Y2Nlc3NDb250cm9sKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6dXBkYXRl
UmVmZXJyZXJPcmlnaW5BbmRVc2VyQWdlbnRIZWFkZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9lc1Jl
cXVlc3ROZWVkSFRUUE9yaWdpbkhlYWRlcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlcXVlc3RCYXNlLmg6CisKIDIwMjAtMDMtMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIENvbXBvc2l0aW5nQ2hhbmdlUmVw
YWludCB3aGljaCB3YXMgYWx3YXlzIENvbXBvc2l0aW5nQ2hhbmdlUmVwYWludE5vdwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKaW5kZXggNDBmMzVjNDk2YWE5ZjhiMThh
NDg1OGMwM2M5NTY0YWI0MjRiODhlOS4uODZhZmI3ZTcxMjZkNzY2YTAwMWEzMzAyOTA0NDYyODUz
ZDU3ZDQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC00
OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNl
cklkaW9tcy5oIgogI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgorI2luY2x1ZGUg
IlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSA8
d3RmL1dhbGxUaW1lLmg+CiAKQEAgLTI0Nyw3ICsyNDgsMTEgQEAgdm9pZCBGb3JtU3VibWlzc2lv
bjo6cG9wdWxhdGVGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QmIGZyYW1lUmVxdWVz
dCkKICAgICB9CiAKICAgICBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKHJl
cXVlc3RVUkwoKSk7Ci0gICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChmcmFt
ZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIG1fb3JpZ2luKTsKKyAgICBpZiAoZG9lc1JlcXVl
c3ROZWVkSFRUUE9yaWdpbkhlYWRlcihmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKSB7
CisgICAgICAgIGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJv
bVN0cmluZyhtX29yaWdpbik7CisgICAgICAgIGF1dG8gb3JpZ2luID0gU2VjdXJpdHlQb2xpY3k6
OmdlbmVyYXRlT3JpZ2luSGVhZGVyKGZyYW1lUmVxdWVzdC5yZXF1ZXN0ZXIoKS5yZWZlcnJlclBv
bGljeSgpLCBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCksIHNlY3VyaXR5T3Jp
Z2luKTsKKyAgICAgICAgZnJhbWVSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNldEhUVFBPcmln
aW4ob3JpZ2luKTsKKyAgICB9CiAgICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBVcGdyYWRlSW5zZWN1
cmVSZXF1ZXN0c0lmTmVlZGVkKGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDg0OTQ2ZmRjYmEzMTcyZjRm
OWFiM2U2Y2I2YzQ4MGU1NTE3MDllYTEuLjg3OWEwZDM4YjU0NGJjNGQ3OWU0NGRhNWE4NTVlZTQ5
ZDQwMzA2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMjk3OCw5
ICsyOTc4LDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6YWRkRXh0cmFGaWVsZHNUb1JlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZUxvYWRUeXAKIAogICAgIGFwcGx5VXNlckFnZW50
SWZOZWVkZWQocmVxdWVzdCk7CiAKLSAgICAvLyBNYWtlIHN1cmUgd2Ugc2VuZCB0aGUgT3JpZ2lu
IGhlYWRlci4KLSAgICBhZGRIVFRQT3JpZ2luSWZOZWVkZWQocmVxdWVzdCwgU3RyaW5nKCkpOwot
CiAgICAgLy8gT25seSBzZXQgZmFsbGJhY2sgYXJyYXkgaWYgaXQncyBzdGlsbCBlbXB0eSAobGF0
ZXIgYXR0ZW1wdHMgbWF5IGJlIGluY29ycmVjdCwgc2VlIGJ1ZyAxMTc4MTgpLgogICAgIGlmIChy
ZXF1ZXN0LnJlc3BvbnNlQ29udGVudERpc3Bvc2l0aW9uRW5jb2RpbmdGYWxsYmFja0FycmF5KCku
aXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIEFsd2F5cyB0cnkgVVRGLTguIElmIHRoYXQgZmFpbHMs
IHRyeSBmcmFtZSBlbmNvZGluZyAoaWYgYW55KSBhbmQgdGhlbiB0aGUgZGVmYXVsdC4KQEAgLTI5
ODgsMzYgKzI5ODUsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxkc1RvUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lTG9hZFR5cAogICAgIH0KIH0KIAotdm9p
ZCBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgU3RyaW5nJiBvcmlnaW4pCi17Ci0gICAgaWYgKCFyZXF1ZXN0Lmh0dHBPcmln
aW4oKS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsgIC8vIFJlcXVlc3QgYWxyZWFkeSBoYXMg
YW4gT3JpZ2luIGhlYWRlci4KLQotICAgIC8vIERvbid0IHNlbmQgYW4gT3JpZ2luIGhlYWRlciBm
b3IgR0VUIG9yIEhFQUQgdG8gYXZvaWQgcHJpdmFjeSBpc3N1ZXMuCi0gICAgLy8gRm9yIGV4YW1w
bGUsIGlmIGFuIGludHJhbmV0IHBhZ2UgaGFzIGEgaHlwZXJsaW5rIHRvIGFuIGV4dGVybmFsIHdl
YgotICAgIC8vIHNpdGUsIHdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgT3JpZ2luIG9mIHRo
ZSByZXF1ZXN0IGJlY2F1c2UgaXQKLSAgICAvLyB3aWxsIGxlYWsgdGhlIGludGVybmFsIGhvc3Qg
bmFtZS4gU2ltaWxhciBwcml2YWN5IGNvbmNlcm5zIGhhdmUgbGVhZAotICAgIC8vIHRvIHRoZSB3
aWRlc3ByZWFkIHN1cHByZXNzaW9uIG9mIHRoZSBSZWZlcmVyIGhlYWRlciBhdCB0aGUgbmV0d29y
awotICAgIC8vIGxheWVyLgotICAgIGlmIChyZXF1ZXN0Lmh0dHBNZXRob2QoKSA9PSAiR0VUIiB8
fCByZXF1ZXN0Lmh0dHBNZXRob2QoKSA9PSAiSEVBRCIpCi0gICAgICAgIHJldHVybjsKLQotICAg
IC8vIEZJWE1FOiB0YWtlIHJlZmVycmVyLXBvbGljeSBpbnRvIGFjY291bnQuCi0gICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA2NgotCi0gICAgLy8gRm9y
IG5vbi1HRVQgYW5kIG5vbi1IRUFEIG1ldGhvZHMsIGFsd2F5cyBzZW5kIGFuIE9yaWdpbiBoZWFk
ZXIgc28gdGhlCi0gICAgLy8gc2VydmVyIGtub3dzIHdlIHN1cHBvcnQgdGhpcyBmZWF0dXJlLgot
Ci0gICAgaWYgKG9yaWdpbi5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gSWYgd2UgZG9uJ3Qga25v
dyB3aGF0IG9yaWdpbiBoZWFkZXIgdG8gYXR0YWNoLCB3ZSBhdHRhY2ggdGhlIHZhbHVlCi0gICAg
ICAgIC8vIGZvciBhbiBlbXB0eSBvcmlnaW4uCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE9yaWdp
bihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCktPnRvU3RyaW5nKCkpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgcmVxdWVzdC5zZXRIVFRQT3JpZ2luKG9yaWdpbik7Ci19Ci0K
IC8vIEltcGxlbWVudHMgdGhlICInU2FtZS1zaXRlJyBhbmQgJ2Nyb3NzLXNpdGUnIFJlcXVlc3Rz
IiBhbGdvcml0aG0gZnJvbSA8aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYt
aHR0cGJpcy1jb29raWUtc2FtZS1zaXRlLTAwI3NlY3Rpb24tMi4xPi4KIC8vIFRoZSBhbGdvcml0
aG0gaXMgYW1tZW5kZWQgdG8gdHJlYXQgVVJMcyB0aGF0IGluaGVyaXQgdGhlaXIgc2VjdXJpdHkg
b3JpZ2luIGZyb20gdGhlaXIgb3duZXIgKGUuZy4gYWJvdXQ6YmxhbmspCiAvLyBhcyBzYW1lLXNp
dGUuIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgQ2hyb21lIGFuZCBGaXJlZm94LgpAQCAt
MzExMyw3ICszMDgwLDEwIEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAgICAgCiAgICAgaWYg
KCFyZWZlcnJlci5pc0VtcHR5KCkpCiAgICAgICAgIGluaXRpYWxSZXF1ZXN0LnNldEhUVFBSZWZl
cnJlcihyZWZlcnJlcik7Ci0gICAgYWRkSFRUUE9yaWdpbklmTmVlZGVkKGluaXRpYWxSZXF1ZXN0
LCBvdXRnb2luZ09yaWdpbigpKTsKKyAgICBpZiAoZG9lc1JlcXVlc3ROZWVkSFRUUE9yaWdpbkhl
YWRlcihpbml0aWFsUmVxdWVzdCkpIHsKKyAgICAgICAgYXV0byBvcmlnaW4gPSBTZWN1cml0eVBv
bGljeTo6Z2VuZXJhdGVPcmlnaW5IZWFkZXIobV9mcmFtZS5kb2N1bWVudCgpLT5yZWZlcnJlclBv
bGljeSgpLCBpbml0aWFsUmVxdWVzdC51cmwoKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpKTsKKyAgICAgICAgaW5pdGlhbFJlcXVlc3Quc2V0SFRUUE9yaWdpbihvcmlnaW4p
OworICAgIH0KIAogICAgIGluaXRpYWxSZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKG1f
ZnJhbWUubWFpbkZyYW1lKCkubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdCgpLnVy
bCgpKTsKICAgICAKQEAgLTM4MTEsOCArMzc4MSwxMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
RGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJv
bQogICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1QiKTsKICAgICAgICAgcmVxdWVz
dC5zZXRIVFRQQm9keShXVEZNb3ZlKGZvcm1EYXRhKSk7CiAgICAgICAgIHJlcXVlc3Quc2V0SFRU
UENvbnRlbnRUeXBlKGl0ZW0uZm9ybUNvbnRlbnRUeXBlKCkpOwotICAgICAgICBhdXRvIHNlY3Vy
aXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXRlbS5yZWZlcnJl
cigpKTsKLSAgICAgICAgYWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIHNlY3VyaXR5T3Jp
Z2luLT50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGRvZXNSZXF1ZXN0TmVlZEhUVFBPcmlnaW5I
ZWFkZXIocmVxdWVzdCkpIHsKKyAgICAgICAgICAgIGF1dG8gc2VjdXJpdHlPcmlnaW4gPSBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhpdGVtLnJlZmVycmVyKCkpOworICAgICAgICAg
ICAgYXV0byBvcmlnaW4gPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVPcmlnaW5IZWFkZXIobV9m
cmFtZS5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpLCByZXF1ZXN0LnVybCgpLCBzZWN1cml0
eU9yaWdpbik7CisgICAgICAgICAgICByZXF1ZXN0LnNldEhUVFBPcmlnaW4ob3JpZ2luKTsKKyAg
ICAgICAgfQogICAgICAgICBhZGRIVFRQVXBncmFkZUluc2VjdXJlUmVxdWVzdHNJZk5lZWRlZChy
ZXF1ZXN0KTsKIAogICAgICAgICAvLyBNYWtlIHN1cmUgdG8gYWRkIGV4dHJhIGZpZWxkcyB0byB0
aGUgcmVxdWVzdCBhZnRlciB0aGUgT3JpZ2luIGhlYWRlciBpcyBhZGRlZCBmb3IgdGhlIEZvcm1E
YXRhIGNhc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDQzMDFiYjJiYjA1
NTk4YjQzYzFlOGY0OTc2MTAzNGExOTRkYzYyODEuLjk4ZDJiNWVlNTRkNzVjYTAwN2QzZmU2Mjlj
NGY2MDA3OTZhODdmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0yMjQs
NyArMjI0LDYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNl
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGFkZEV4dHJhRmllbGRzVG9NYWlu
UmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOwogICAgIAotICAgIHN0YXRpYyB2b2lk
IGFkZEhUVFBPcmlnaW5JZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIG9y
aWdpbik7CiAgICAgc3RhdGljIHZvaWQgYWRkSFRUUFVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzSWZO
ZWVkZWQoUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgc3RhdGljIHZvaWQgYWRkU2FtZVNpdGVJbmZv
VG9SZXF1ZXN0SWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgRG9jdW1lbnQqIGluaXRp
YXRvciA9IG51bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvblNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNj
aGVkdWxlci5jcHAKaW5kZXggODkzOWUyZmEzMzY3NWZmNGVmNDEwNjAwMDc2MzM4NWVjYTI0OTBm
Yi4uY2Y1MjRlYjVmNWQxOGEzM2I2OTIyNTgyYzA1NDMxOGFkZDY1YTZiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcApAQCAtMjg5LDcgKzI4OSw3
IEBAIHB1YmxpYzoKICAgICAgICAgYXV0byYgcmVxdWVzdGluZ0RvY3VtZW50ID0gbV9zdWJtaXNz
aW9uLT5zdGF0ZSgpLnNvdXJjZURvY3VtZW50KCk7CiAgICAgICAgIGlmICghcmVxdWVzdGluZ0Rv
Y3VtZW50LmNhbk5hdmlnYXRlKCZmcmFtZSkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IHJlcXVlc3RpbmdEb2N1bWVudCwg
cmVxdWVzdGluZ0RvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIHsgfSwgeyB9LCBsb2NrSGlzdG9y
eSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZywg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpB
bGxvdywgc2hvdWxkT3BlbkV4dGVybmFsVVJMcygpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSgpIH07
CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IHJlcXVlc3RpbmdE
b2N1bWVudCwgcmVxdWVzdGluZ0RvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIHsgfSwgeyB9LCBs
b2NrSGlzdG9yeSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIHJlcXVlc3RpbmdEb2N1bWVudC5y
ZWZlcnJlclBvbGljeSgpLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJh
bWVPcGVuZXJQb2xpY3k6OkFsbG93LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzKCksIGluaXRpYXRl
ZEJ5TWFpbkZyYW1lKCkgfTsKICAgICAgICAgbV9zdWJtaXNzaW9uLT5wb3B1bGF0ZUZyYW1lTG9h
ZFJlcXVlc3QoZnJhbWVMb2FkUmVxdWVzdCk7CiAgICAgICAgIGZyYW1lLmxvYWRlcigpLmxvYWRG
cmFtZVJlcXVlc3QoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwgbV9zdWJtaXNzaW9uLT5ldmVu
dCgpLCBtX3N1Ym1pc3Npb24tPnRha2VTdGF0ZSgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UGluZ0xvYWRlci5jcHAKaW5kZXggMTk0MjRiMmY5ODc3MjYzODM5ZWY4NjY3MWIwMWY5Mjk1NjYw
ZTI1MS4uYjY0MmJjNDg2ZDkxNDM0YzljZWEwMGNiZTAwZTQxNzhmNDcxMGUzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApAQCAtMTM2LDggKzEzNiwxMCBAQCB2b2lkIFBpbmdM
b2FkZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBV
UkwmIGRlc3RpbmF0aQogCiAgICAgSFRUUEhlYWRlck1hcCBvcmlnaW5hbFJlcXVlc3RIZWFkZXIg
PSByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKTsKIAotICAgIGF1dG8mIHNvdXJjZU9yaWdpbiA9
IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmln
aW5JZk5lZWRlZChyZXF1ZXN0LCBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVPcmlnaW5IZWFkZXIo
ZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcmVxdWVzdC51cmwoKSwgc291cmNlT3JpZ2luKSk7
CisgICAgaWYgKGRvZXNSZXF1ZXN0TmVlZEhUVFBPcmlnaW5IZWFkZXIocmVxdWVzdCkpIHsKKyAg
ICAgICAgYXV0byBvcmlnaW4gPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVPcmlnaW5IZWFkZXIo
ZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcmVxdWVzdC51cmwoKSwgZG9jdW1lbnQuc2VjdXJp
dHlPcmlnaW4oKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUE9yaWdpbihvcmlnaW4pOworICAg
IH0KICAgICBmcmFtZS5sb2FkZXIoKS5hZGRFeHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0
KHJlcXVlc3QpOwogICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1l
OjpQaW5nVG8sIGRlc3RpbmF0aW9uVVJMKTsKICAgICBpZiAoIVNlY3VyaXR5UG9saWN5OjpzaG91
bGRIaWRlUmVmZXJyZXIocGluZ1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigp
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGVh
MmI4OTU3YjIzZWVkMTkzOTA3ZThmMTIwZjEzY2EyNGE4NTZlMTYuLjVjM2JkMDNkMTg1OGYzNzZh
ZWM4YTE3NDA0ZTYwMmUxZWNjZGI3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJl
c291cmNlTG9hZGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9h
ZE9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VUaW1pbmcuaCIKICNpbmNsdWRlICJSdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTY2MSwxNSArNjYyLDE4IEBAIEV4cGVjdGVkPHZvaWQsIFN0
cmluZz4gU3VicmVzb3VyY2VMb2FkZXI6OmNoZWNrUmVkaXJlY3Rpb25Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyCiAKICAgICAvLyBJbXBsZW1lbnRpbmcgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5v
cmcvI2NvbmNlcHQtaHR0cC1yZWRpcmVjdC1mZXRjaCBzdGVwIDE0LgogICAgIHVwZGF0ZVJlZmVy
cmVyUG9saWN5KHJlZGlyZWN0UmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1l
OjpSZWZlcnJlclBvbGljeSkpOwotICAgIAorCiAgICAgaWYgKG9wdGlvbnMoKS5tb2RlID09IEZl
dGNoT3B0aW9uczo6TW9kZTo6Q29ycyAmJiByZWRpcmVjdGluZ1RvTmV3T3JpZ2luKSB7CiAgICAg
ICAgIGNsZWFuSFRUUFJlcXVlc3RIZWFkZXJzRm9yQWNjZXNzQ29udHJvbChuZXdSZXF1ZXN0LCBv
cHRpb25zKCkuaHR0cEhlYWRlcnNUb0tlZXApOwogICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNj
ZXNzQ29udHJvbChuZXdSZXF1ZXN0LCAqbV9vcmlnaW4sIG9wdGlvbnMoKS5zdG9yZWRDcmVkZW50
aWFsc1BvbGljeSk7CiAgICAgfQotICAgIAorCiAgICAgdXBkYXRlUmVxdWVzdFJlZmVycmVyKG5l
d1JlcXVlc3QsIHJlZmVycmVyUG9saWN5KCksIHByZXZpb3VzUmVxdWVzdC5odHRwUmVmZXJyZXIo
KSk7CiAKLSAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKG5ld1JlcXVlc3Qs
IG1fb3JpZ2luID8gbV9vcmlnaW4tPnRvU3RyaW5nKCkgOiBTdHJpbmcoKSk7CisgICAgaWYgKGRv
ZXNSZXF1ZXN0TmVlZEhUVFBPcmlnaW5IZWFkZXIobmV3UmVxdWVzdCkpIHsKKyAgICAgICAgYXV0
byBvcmlnaW4gPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVPcmlnaW5IZWFkZXIocmVmZXJyZXJQ
b2xpY3koKSwgbmV3UmVxdWVzdC51cmwoKSwgbV9vcmlnaW4gPyAqbV9vcmlnaW4gOiBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkuZ2V0KCkpOworICAgICAgICBuZXdSZXF1ZXN0LnNldEhU
VFBPcmlnaW4ob3JpZ2luKTsKKyAgICB9CiAKICAgICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApp
bmRleCBhZmY2NTQ4M2U4OWRjMmQ2Y2U5MWRiZWNjZTYyMzAxMTk2OTNhNjk0Li5kNzYzMjQyZWEy
ZjFmMGQ5NDkwYzBiMzg0MmQ1MTA4ZDcxNDgzZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAtMjMwLDE0ICsy
MzAsMTMgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVJlZmVycmVyT3JpZ2lu
QW5kVXNlckFnZW50SGVhZGVycyhGcmFtZUxvYWRlciYKICAgICB1cGRhdGVSZXF1ZXN0UmVmZXJy
ZXIobV9yZXNvdXJjZVJlcXVlc3QsIG1fb3B0aW9ucy5yZWZlcnJlclBvbGljeSwgb3V0Z29pbmdS
ZWZlcnJlcik7CiAgICAgZnJhbWVMb2FkZXIuYXBwbHlVc2VyQWdlbnRJZk5lZWRlZChtX3Jlc291
cmNlUmVxdWVzdCk7CiAKLSAgICBpZiAoIW1fcmVzb3VyY2VSZXF1ZXN0Lmh0dHBPcmlnaW4oKS5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBTdHJpbmcgb3V0Z29pbmdPcmlnaW47Ci0g
ICAgaWYgKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykKLSAgICAg
ICAgb3V0Z29pbmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvdXRn
b2luZ1JlZmVycmVyKS0+dG9TdHJpbmcoKTsKLSAgICBlbHNlCi0gICAgICAgIG91dGdvaW5nT3Jp
Z2luID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlT3JpZ2luSGVhZGVyKG1fb3B0aW9ucy5yZWZl
cnJlclBvbGljeSwgbV9yZXNvdXJjZVJlcXVlc3QudXJsKCksIFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKG91dGdvaW5nUmVmZXJyZXIpKTsKLSAgICBGcmFtZUxvYWRlcjo6YWRkSFRU
UE9yaWdpbklmTmVlZGVkKG1fcmVzb3VyY2VSZXF1ZXN0LCBvdXRnb2luZ09yaWdpbik7CisgICAg
aWYgKGRvZXNSZXF1ZXN0TmVlZEhUVFBPcmlnaW5IZWFkZXIobV9yZXNvdXJjZVJlcXVlc3QpKSB7
CisgICAgICAgIGF1dG8gb3V0Z29pbmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJv
bVN0cmluZyhvdXRnb2luZ1JlZmVycmVyKTsKKyAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0YWtl
IHJlZmVycmVyLXBvbGljeSBpbnRvIGFjY291bnQgaW4gc29tZSBjYXNlcywgc2VlIGh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yMjI5OC4KKyAgICAgICAg
YXV0byByZWZlcnJlclBvbGljeSA9IChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1v
ZGU6OkNvcnMpID8gUmVmZXJyZXJQb2xpY3k6OlVuc2FmZVVybCA6IG1fb3B0aW9ucy5yZWZlcnJl
clBvbGljeTsKKyAgICAgICAgYXV0byBvcmlnaW4gPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVP
cmlnaW5IZWFkZXIocmVmZXJyZXJQb2xpY3ksIG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpLCBvdXRn
b2luZ09yaWdpbik7CisgICAgICAgIG1fcmVzb3VyY2VSZXF1ZXN0LnNldEhUVFBPcmlnaW4ob3Jp
Z2luKTsKKyAgICB9CiB9CiAKIGJvb2wgaXNSZXF1ZXN0Q3Jvc3NPcmlnaW4oU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgY29uc3QgVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMmIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAppbmRleCBkMjliZTAwYTNkNzQ5NDQ4MzhiZjgz
MzFiZWY2MTIxZDlhMDA5MzMxLi5hOTM3MzIwMzUzMTJjYzQ3ZDA5MjIwYWQ4NGYyZmIyZThmNzM0
MmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVxdWVzdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXF1ZXN0QmFzZS5jcHAKQEAgLTc1MCw0ICs3NTAsMTggQEAgU3RyaW5nIFJlc291cmNl
UmVxdWVzdEJhc2U6OnBhcnRpdGlvbk5hbWUoY29uc3QgU3RyaW5nJiBkb21haW4pCiAjZW5kaWYK
IH0KIAorYm9vbCBkb2VzUmVxdWVzdE5lZWRIVFRQT3JpZ2luSGVhZGVyKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBpZiAoIXJlcXVlc3QuaHR0cE9yaWdpbigpLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBSZXF1ZXN0IGFscmVhZHkgaGFzIGFuIE9y
aWdpbiBoZWFkZXIuCisKKyAgICAvLyBEb24ndCBzZW5kIGFuIE9yaWdpbiBoZWFkZXIgZm9yIEdF
VCBvciBIRUFEIHRvIGF2b2lkIHByaXZhY3kgaXNzdWVzLgorICAgIC8vIEZvciBleGFtcGxlLCBp
ZiBhbiBpbnRyYW5ldCBwYWdlIGhhcyBhIGh5cGVybGluayB0byBhbiBleHRlcm5hbCB3ZWIKKyAg
ICAvLyBzaXRlLCB3ZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIE9yaWdpbiBvZiB0aGUgcmVx
dWVzdCBiZWNhdXNlIGl0CisgICAgLy8gd2lsbCBsZWFrIHRoZSBpbnRlcm5hbCBob3N0IG5hbWUu
IFNpbWlsYXIgcHJpdmFjeSBjb25jZXJucyBoYXZlIGxlYWQKKyAgICAvLyB0byB0aGUgd2lkZXNw
cmVhZCBzdXBwcmVzc2lvbiBvZiB0aGUgUmVmZXJlciBoZWFkZXIgYXQgdGhlIG5ldHdvcmsKKyAg
ICAvLyBsYXllci4KKyAgICByZXR1cm4gcmVxdWVzdC5odHRwTWV0aG9kKCkgIT0gIkdFVCIgJiYg
cmVxdWVzdC5odHRwTWV0aG9kKCkgIT0gIkhFQUQiOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCmluZGV4IDdk
ZDdiYjE4NjQ4M2NiOWFjNjQ3NDExMjViOTgwODZiMTc2MDM0ZmIuLjM2MWI3ZTk0NGZiMDcxMjQy
NmQ3ZjJiNDBiNGRhMWNjZGVmZDJjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC0yNjIsNiArMjYyLDggQEAg
cHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgZG91YmxlIHNfZGVmYXVsdFRpbWVv
dXRJbnRlcnZhbDsKIH07CiAKK2Jvb2wgZG9lc1JlcXVlc3ROZWVkSFRUUE9yaWdpbkhlYWRlcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKwogYm9vbCBlcXVhbElnbm9yaW5nSGVhZGVyRmllbGRz
KGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3RCYXNlJik7
CiAKIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBhLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIGIpIHsgcmV0dXJuIFJlc291cmNlUmVxdWVzdEJhc2U6OmVxdWFs
KGEsIGIpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>