<?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>190642</bug_id>
          
          <creation_ts>2018-10-16 15:07:20 -0700</creation_ts>
          <short_desc>MediaRecorder should fire a stop event when all tracks are ended</short_desc>
          <delta_ts>2019-03-29 12:54:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/web-platform-tests/wpt/pull/13606</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=196403</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>85851</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wendy">yuhan_wu</reporter>
          <assigned_to name="Wendy">yuhan_wu</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1469904</commentid>
    <comment_count>0</comment_count>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-16 15:07:20 -0700</bug_when>
    <thetext>MediaRecorder should and fire stop and data available events when all tracks are ended accordion to section 2.3 of https://w3c.github.io/mediacapture-record/#mediarecorder-api</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470342</commentid>
    <comment_count>1</comment_count>
      <attachid>352642</attachid>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-17 14:31:21 -0700</bug_when>
    <thetext>Created attachment 352642
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470344</commentid>
    <comment_count>2</comment_count>
      <attachid>352644</attachid>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-17 14:38:33 -0700</bug_when>
    <thetext>Created attachment 352644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470365</commentid>
    <comment_count>3</comment_count>
      <attachid>352653</attachid>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-17 15:42:46 -0700</bug_when>
    <thetext>Created attachment 352653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470453</commentid>
    <comment_count>4</comment_count>
      <attachid>352653</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-17 20:14:43 -0700</bug_when>
    <thetext>Comment on attachment 352653
Patch

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

&gt; Source/WebCore/Modules/mediarecorder/MediaRecorder.cpp:50
&gt; +    return trackPrivates;

You can use WTF::map here, something like:
return WTF::map(tracks, [] (const auto&amp; track) -&gt; RefPtr&lt;MediaStreamTrackPrivate&gt; {
    return &amp;track-&gt;privateTrack();
});
We probably want a Vector&lt;Ref&lt; MediaStreamTrackPrivate&gt;&gt; instead of Vector&lt;RefPtr&lt; MediaStreamTrackPrivate&gt;&gt;.
This might do the trick:
return WTF::map(tracks, [] (const auto&amp; track) -&gt; Ref&lt;MediaStreamTrackPrivate&gt; {
    return track-&gt;privateTrack();
});

&gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.cpp:43
&gt; +    }

With a MediaStreamTrackPrivateVector&amp;&amp;, you would do something like:
m_tracks = WTFMove(track)
for (auto&amp; track : m_tracks)
    track-&gt;addObserver(*this);

&gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h:33
&gt; +class MediaRecorderPrivate : public RefCounted&lt;MediaRecorderPrivate&gt;, private MediaStreamTrackPrivate::Observer {

Should probably be final.
I am not sure MediaRecorderPrivate needs to be RefCounted.
Instead MediaRecorder could take a std::unique_ptr&lt;MediaRecorderPrivate&gt;.

&gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h:44
&gt; +    void removeObserver(Observer&amp;);

No need for more than one observer.

&gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h:49
&gt; +    MediaRecorderPrivate(const MediaStreamTrackPrivateVector&amp;);

Should use explicit with a constructor with one parameter.
In that case, it should be a MediaStreamTrackPrivateVector&amp;&amp; and probably take another parameter (so no explicit anymore) for Owner (see below).

&gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h:52
&gt; +    void trackEnded(MediaStreamTrackPrivate&amp;) override;

s/override/final here and below.

&gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h:57
&gt; +    Vector&lt;Observer*&gt; m_observers;

Let&apos;s have just one observer which will be MediaRecorder.
And maybe rename it to Owner.
Owner &amp; m_owner;

&gt; Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:-33
&gt; -#include &quot;RealtimeVideoUtilities.h&quot;

Is this change needed?
If not, let&apos;s not do it there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470657</commentid>
    <comment_count>5</comment_count>
      <attachid>352728</attachid>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-18 14:06:04 -0700</bug_when>
    <thetext>Created attachment 352728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470673</commentid>
    <comment_count>6</comment_count>
      <attachid>352728</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-18 14:21:10 -0700</bug_when>
    <thetext>Comment on attachment 352728
Patch

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

&gt; Source/WebCore/Modules/mediarecorder/MediaRecorder.cpp:106
&gt; +        auto event = Event::create(eventNames().stopEvent, Event::CanBubble::No, Event::IsCancelable::No);

Can you add a FIXME: add data available event?

&gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.cpp:40
&gt; +    m_owner = &amp;owner;

m_owner should be a reference probably, not a pointer.
   m_owner(owner) should do the trick.
I would tend to pass owner first and tracks second.

&gt; Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.cpp:59
&gt; +    }

You can probably use Vector::findMatching

&gt; LayoutTests/imported/w3c/ChangeLog:9
&gt; +        * web-platform-tests/mediacapture-record/MediaRecorder-stop.html: Added.

Please upload this test to WPT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470727</commentid>
    <comment_count>7</comment_count>
      <attachid>352743</attachid>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-18 16:03:53 -0700</bug_when>
    <thetext>Created attachment 352743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470729</commentid>
    <comment_count>8</comment_count>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-18 16:04:43 -0700</bug_when>
    <thetext>Submitted web-platform-tests pull request: https://github.com/web-platform-tests/wpt/pull/13606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470730</commentid>
    <comment_count>9</comment_count>
      <attachid>352744</attachid>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-18 16:10:04 -0700</bug_when>
    <thetext>Created attachment 352744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470863</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-19 08:35:08 -0700</bug_when>
    <thetext>I looked further at the specification and think that we may better be served by changing the model a bit:
1. Make MediaRecorder an observer of all track private.
2. Handle &quot;all ended tracks&quot; in MediaRecorder

When implementing dataavailable event, we will then introduce a MediaRecorderPrivate method to get the available data. We might pass a function or completion handler to MediaRecorderPrivate if we need to get the data asynchronously.

The impact on this patch is to remove MediaRecorderPrivate from this patch and move part of MediaRecorderPrivate implementation of this patch in MediaRecorder.
We will then introduce MediaRecorderPrivate as part of dataavailable event implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470864</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-19 08:36:07 -0700</bug_when>
    <thetext>Ms2Jer put some comments in https://github.com/web-platform-tests/wpt/pull/13606.
It might be good to update the tests accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470881</commentid>
    <comment_count>12</comment_count>
      <attachid>352789</attachid>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-19 09:40:02 -0700</bug_when>
    <thetext>Created attachment 352789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470997</commentid>
    <comment_count>13</comment_count>
      <attachid>352789</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-19 14:54:29 -0700</bug_when>
    <thetext>Comment on attachment 352789
Patch

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

&gt; LayoutTests/imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html:10
&gt; +&lt;canvas id=&quot;canvas&quot;&gt;

Apparently, Firefox does not like capturing canvas without size.
Can you test it on Firefox and try adding width/height to see whether that would make it work if not already?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471025</commentid>
    <comment_count>14</comment_count>
      <attachid>352834</attachid>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-19 16:53:52 -0700</bug_when>
    <thetext>Created attachment 352834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471058</commentid>
    <comment_count>15</comment_count>
    <who name="Wendy">yuhan_wu</who>
    <bug_when>2018-10-19 19:53:26 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #13)
&gt; Comment on attachment 352789 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=352789&amp;action=review
&gt; 
&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html:10
&gt; &gt; +&lt;canvas id=&quot;canvas&quot;&gt;
&gt; 
&gt; Apparently, Firefox does not like capturing canvas without size.
&gt; Can you test it on Firefox and try adding width/height to see whether that
&gt; would make it work if not already?

I did the test on FireFox, in addition to the width and height, we might also need getContext to initialize the canvas, otherwise we will get an exception. I have fixed it in the latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471090</commentid>
    <comment_count>16</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-20 05:52:08 -0700</bug_when>
    <thetext>I am surprised getContex is needed, maybe this is a bug on Firefox side.
I guess we should reuse some of the WPT routines used to create a/v tracks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471091</commentid>
    <comment_count>17</comment_count>
      <attachid>352834</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-20 06:15:33 -0700</bug_when>
    <thetext>Comment on attachment 352834
Patch

Clearing flags on attachment: 352834

Committed r237311: &lt;https://trac.webkit.org/changeset/237311&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471092</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-20 06:15:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471093</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-20 06:16:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/45430564&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478536</commentid>
    <comment_count>20</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-11-14 11:15:08 -0800</bug_when>
    <thetext>Looks like the test imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html

added in https://trac.webkit.org/changeset/237311/webkit

is a flakey failure. It is highly intermittent and seems to be having a harness timeout. 

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=imported%2Fw3c%2Fweb-platform-tests%2Fmediacapture-record%2FMediaRecorder-stop.html

Diff:
--- /Volumes/Data/slave/sierra-release-tests-wk1/build/layout-test-results/imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop-expected.txt
+++ /Volumes/Data/slave/sierra-release-tests-wk1/build/layout-test-results/imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop-actual.txt
@@ -1,4 +1,6 @@
+
+Harness Error (TIMEOUT), message = null
 
 PASS MediaRecorder will stop recording and fire a stop event when all tracks are ended 
-PASS MediaRecorder will stop recording and fire a stop event when stop() is called 
+TIMEOUT MediaRecorder will stop recording and fire a stop event when stop() is called Test timed out</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352642</attachid>
            <date>2018-10-17 14:31:21 -0700</date>
            <delta_ts>2018-10-17 14:38:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190642-20181017143120.patch</filename>
            <type>text/plain</type>
            <size>19643</size>
            <attacher name="Wendy">yuhan_wu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZmMTZhMmRmZGNjNzNh
YTJhZjU0MjU1NDJmMGNkYjRkYmQxODM0NC4uMTAzNmNiZWJmNDY4NzE1NmRkODNlNWRjM2E1NGIy
MWU2MDUyZjRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTEwLTE3ICBZVUhB
TiBXVSAgPHl1aGFuX3d1QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNob3Vs
ZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG9ubHkgaW1w
bGVtZW50cyB0byBmaXJlIHRoZSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQu
CisgICAgICAgIFdlIHdpbGwgbmVlZCB0byBmaXJlIGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aGVu
IGFsbCB0cmFja3MgYXJlIGVuZGVkLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVHJhY2tQcml2YXRlVmVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFSZWNvcmRlcjo6fk1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlcjo6YWxsVHJhY2tzRGlkRW5kKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyLmlkbDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlh
UmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
OjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU6
OnRyYWNrRW5kZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcDoKKwogMjAxOC0xMC0xNSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92
ZSB1bnVzZWQgcGFyYW1ldGVycyBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuY3BwCmluZGV4IGJlYjBjNzJhMTZmZTY2ZWQ4NWE0NDhkZDdkNjk0OWE5OTEzYTMzNzYu
LjAzM2JhMmMxYWQ3Yjk3YzExYTg3YWUxOTUzNDIyMGM2MjZiZGUwYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAK
QEAgLTQxLDE3ICs0MSwyOSBAQCBSZWY8TWVkaWFSZWNvcmRlcj4gTWVkaWFSZWNvcmRlcjo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmCiAgICAgcmV0dXJuIHJl
Y29yZGVyOwogfQogCitzdGF0aWMgaW5saW5lIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9y
IGNyZWF0ZVRyYWNrUHJpdmF0ZVZlY3Rvcihjb25zdCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yJiB0
cmFja3MpCit7CisgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgdHJhY2tQcml2YXRl
czsKKyAgICB0cmFja1ByaXZhdGVzLnJlc2VydmVDYXBhY2l0eSh0cmFja3Muc2l6ZSgpKTsKKyAg
ICBmb3IgKGF1dG8mIHRyYWNrIDogdHJhY2tzKQorICAgICAgICB0cmFja1ByaXZhdGVzLmFwcGVu
ZCgmdHJhY2stPnByaXZhdGVUcmFjaygpKTsKKyAgICByZXR1cm4gdHJhY2tQcml2YXRlczsKK30K
KwogTWVkaWFSZWNvcmRlcjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxN
ZWRpYVN0cmVhbT4mJiBzdHJlYW0sIE9wdGlvbnMmJiBvcHRpb24pCiAgICAgOiBBY3RpdmVET01P
YmplY3QoJmRvY3VtZW50KQogICAgICwgbV9vcHRpb25zKFdURk1vdmUob3B0aW9uKSkKICAgICAs
IG1fc3RyZWFtKFdURk1vdmUoc3RyZWFtKSkKKyAgICAsIG1fcHJpdmF0ZShNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6Y3JlYXRlKGNyZWF0ZVRyYWNrUHJpdmF0ZVZlY3RvcihtX3N0cmVhbS0+Z2V0VHJh
Y2tzKCkpKSkKIHsKICAgICBtX3N0cmVhbS0+YWRkT2JzZXJ2ZXIodGhpcyk7CisgICAgbV9wcml2
YXRlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiB9CiAKIE1lZGlhUmVjb3JkZXI6On5NZWRpYVJlY29y
ZGVyKCkKIHsKICAgICBtX3N0cmVhbS0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CisgICAgbV9wcml2
YXRlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlcjo6c3Rv
cCgpCkBAIC04OSw2ICsxMDEsMTYgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpkaWRBZGRPclJlbW92
ZVRyYWNrKCkKICAgICB9KTsKIH0KIAordm9pZCBNZWRpYVJlY29yZGVyOjphbGxUcmFja3NEaWRF
bmQoKQoreworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIGlmICgh
bV9pc0FjdGl2ZSB8fCBzdGF0ZSgpID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLnN0b3BFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFi
bGU6Ok5vKTsKKyAgICAgICAgc2V0TmV3UmVjb3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGU6Oklu
YWN0aXZlLCBXVEZNb3ZlKGV2ZW50KSk7CisgICAgfSk7Cit9CisKIHZvaWQgTWVkaWFSZWNvcmRl
cjo6c2V0TmV3UmVjb3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGUgbmV3U3RhdGUsIFJlZjxFdmVu
dD4mJiBldmVudCkKIHsKICAgICBtX3N0YXRlID0gbmV3U3RhdGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAppbmRleCAwMjlm
MmVhMTY2ZGJlNGZmMmEwMjlhYWYxMmVhYWYzOGM3ODhiZGQ5Li4wNzkyYWFiN2MxODVlMTE1ZWVm
Y2Q4YTA2ZDBmMjQ0NzkzZWFiNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTI3LDEzICsyNywyMCBAQAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RG9jdW1lbnQ7CiAKLWNsYXNzIE1lZGlhUmVjb3JkZXIgZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyPiwgcHVibGljIEV2ZW50VGFy
Z2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyPiwg
cHJpdmF0ZSBNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIgeworY2xhc3MgTWVkaWFSZWNvcmRlciBmaW5h
bAorICAgIDogcHVibGljIEFjdGl2ZURPTU9iamVjdAorICAgICwgcHVibGljIFJlZkNvdW50ZWQ8
TWVkaWFSZWNvcmRlcj4KKyAgICAsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhCisg
ICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNvcmRlcj4KKyAgICAsIHByaXZhdGUg
TWVkaWFTdHJlYW06Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIE1lZGlhUmVjb3JkZXJQcml2YXRl
OjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZWNvcmRpbmdTdGF0ZSB7IElu
YWN0aXZlLCBSZWNvcmRpbmcsIFBhdXNlZCB9OwogICAgIApAQCAtNzIsMTEgKzc5LDE1IEBAIHBy
aXZhdGU6CiAgICAgLy8gTWVkaWFTdHJlYW06Ok9ic2VydmVyCiAgICAgdm9pZCBkaWRBZGRPclJl
bW92ZVRyYWNrKCkgZmluYWw7CiAgICAgCisgICAgLy8gTWVkaWFSZWNvcmRlclByaXZhdGU6Ok9i
c2VydmVyCisgICAgdm9pZCBhbGxUcmFja3NEaWRFbmQoKSBmaW5hbDsKKyAgICAKICAgICB2b2lk
IHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRO
ZXdSZWNvcmRpbmdTdGF0ZShSZWNvcmRpbmdTdGF0ZSwgUmVmPEV2ZW50PiYmKTsKICAgICAKICAg
ICBPcHRpb25zIG1fb3B0aW9uczsKICAgICBSZWY8TWVkaWFTdHJlYW0+IG1fc3RyZWFtOworICAg
IFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIFJlY29yZGluZ1N0YXRl
IG1fc3RhdGUgeyBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUgfTsKICAgICAKICAgICBib29sIG1f
aXNBY3RpdmUgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwKaW5kZXggZDE2MzFkOTgzYzcxOTViYTQyM2Uz
ODBkMjczM2YyOGU5MTY1NDc5Ny4uNzNkNGZiNmI4YzQyZTU1MTY4MTk0ODJjZDFiNmEzYjBiZDIw
NTJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLmlkbApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIFJlY29yZGluZ1N0YXRl
IHsgImluYWN0aXZlIiwgInJlY29yZGluZyIsICJwYXVzZWQiIH07CiAgICAgLy8gcmVhZG9ubHkg
YXR0cmlidXRlIE1lZGlhU3RyZWFtIHN0cmVhbTsKICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIG1pbWVUeXBlOwogICAgIC8vIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFy
dDsKLSAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RvcDsKKyAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uc3RvcDsKICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGF0
YWF2YWlsYWJsZTsKICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucGF1c2U7CiAgICAg
Ly8gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnJlc3VtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNTNm
MjE4Y2Y4MmI5NzNlNzNkYTY2NmJjNzQ3NjBmYWZmMWM5MjNkNy4uYjcxYWY3ZWQ4OTU4NDVkYjY3
ZTY0ODQyNGJkMDE5NTY3NzkyNWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NDUsNiArMTc0NSw4
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcAogCiBwbGF0Zm9ybS9tZWRpYWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3Vy
YXRpb25GYWN0b3J5LmNwcAogCitwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcAorCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdlci5j
cHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYTRhOTgwMmMy
ZjJkY2VlODYwOTY3MDlhZDZhMWY4YjNmZGRiZWM4Li4xYWY2MjgyZDljZGU0Nzc2ZjMwOTRhMzMz
OTFiOTllMThhOTFhNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC03ODgzLDYgKzc4ODMsOCBAQAogCQk0RDNCMDBBODIxNUQ2
OUE2MDA3NkI5ODMgLyogTWVkaWFSZWNvcmRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBNZWRpYVJlY29yZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEQzQjAwQTkyMTVENjlBNzAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0RDNCMDBBRDIxNUQ2QTY5MDA3NkI5ODMgLyogQmxvYkV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2JFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0RDk4RTIyNDIxNzUzQTUwMDAzMDdCNTIgLyogTWVkaWFSZWNv
cmRlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNv
cmRlclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEQ5OEUyMjUyMTc1
M0E1MDAwMzA3QjUyIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNERCNzEzMEEyMTZFQzJCQzAwOTZBNEREIC8qIE1lZGlhUmVj
b3JkZXJFcnJvckV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVJlY29yZGVy
RXJyb3JFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTREQjcxMzBDMjE2
RUMyQkQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0REI3MTMwRTIxNkVFQkFFMDA5NkE0REQgLyogTWVkaWFSZWNv
cmRlckVycm9yRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFSZWNvcmRlckVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTc5NTksNiArMTc5NjEsMTUgQEAKIAkJCXBhdGggPSBtZWRpYXJlY29yZGVyOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNEQ5OEUyMjMyMTc1M0EzQTAwMzA3QjUyIC8q
IG1lZGlhcmVjb3JkZXIgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTREOThFMjI1MjE3NTNBNTAwMDMwN0I1MiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5j
cHAgKi8sCisJCQkJNEQ5OEUyMjQyMTc1M0E1MDAwMzA3QjUyIC8qIE1lZGlhUmVjb3JkZXJQcml2
YXRlLmggKi8sCisJCQkpOworCQkJcGF0aCA9IG1lZGlhcmVjb3JkZXI7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQk1MTAzMTA0MjFCQThDNjRDMDAzMzI5QzAgLyogY2xpZW50
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0NzQyLDYg
KzI0NzUzLDcgQEAKIAkJCQlBNTlFM0MxQjExNTgwRjM0MDA3MjkyOEUgLyogaW9zICovLAogCQkJ
CTY1ODJBMTQ4MDk5OTlENkMwMEJFRUI2RCAvKiBtYWMgKi8sCiAJCQkJOUFDNkYwMjAyMTE0OEYx
RTAwQ0JEQTA2IC8qIG1lZGlhY2FwYWJpbGl0aWVzICovLAorCQkJCTREOThFMjIzMjE3NTNBM0Ew
MDMwN0I1MiAvKiBtZWRpYXJlY29yZGVyICovLAogCQkJCUM5NkY1RUJGMUI1ODcyMjYwMDkxRUE5
RCAvKiBtZWRpYXNlc3Npb24gKi8sCiAJCQkJMDcyMjFCOTIxN0NGMEFENDAwODQ4RTUxIC8qIG1l
ZGlhc3RyZWFtICovLAogCQkJCTU5Qzc3RjEwMTA1NDU5MUMwMDUwNjEwNCAvKiBtb2NrICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggODIyNmVhODUxNTM5MGZjMDNkMDAzMWYwZmQxMzlj
NWU5MjQ4YzgxZi4uMDNlNzNjZTkyZmUwOTVhYmQxNWZmNjRlYWQwNTg4MTdmY2RjNmJjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0yMzcsNiArMjM3LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIG1hY3JvKHN0YXJ0KSBcCiAgICAgbWFjcm8oc3RhcnRlZCkgXAogICAgIG1hY3Jv
KHN0YXRlY2hhbmdlKSBcCisgICAgbWFjcm8oc3RvcCkgXAogICAgIG1hY3JvKHN0b3JhZ2UpIFwK
ICAgICBtYWNybyhzdWJtaXQpIFwKICAgICBtYWNybyhzdWNjZXNzKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3MjI2ODBmODE1MmFmZjY1YjMyMzI1ZjBhMGZiY2Nk
MjM2MDJlZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtMCwwICsxLDgxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJp
dmF0ZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitSZWY8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpjcmVh
dGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3ImIHRyYWNrcykKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyUHJpdmF0ZSh0cmFja3MpKTsKK30KKwor
TWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlVmVjdG9yJiB0cmFja3MpCit7CisgICAgbV90cmFja3MucmVzZXJ2ZUNh
cGFjaXR5KHRyYWNrcy5zaXplKCkpOworICAgIGZvciAoYXV0byYgdHJhY2sgOiB0cmFja3MpIHsK
KyAgICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV90cmFja3MuYXBw
ZW5kKHRyYWNrKTsKKyAgICB9Cit9CisKK01lZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNv
cmRlclByaXZhdGUoKQoreworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrcykKKyAgICAg
ICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6YWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIG1fb2JzZXJ2
ZXJzLmFwcGVuZCgmb2JzZXJ2ZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpy
ZW1vdmVPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgc2l6ZV90IHBvcyA9IG1f
b2JzZXJ2ZXJzLmZpbmQoJm9ic2VydmVyKTsKKyAgICBpZiAocG9zICE9IG5vdEZvdW5kKQorICAg
ICAgICBtX29ic2VydmVycy5yZW1vdmUocG9zKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZTo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgYm9vbCBk
aWRFeGlzdEFjdGl2ZVRyYWNrID0gZmFsc2U7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJh
Y2tzKSB7CisgICAgICAgIGlmICghdHJhY2stPmVuZGVkKCkpIHsKKyAgICAgICAgICAgIGRpZEV4
aXN0QWN0aXZlVHJhY2sgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisgICAgaWYgKGRpZEV4aXN0QWN0aXZlVHJhY2spCisgICAgICAgIHJldHVybjsKKyAgICBm
b3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLT5hbGxU
cmFja3NEaWRFbmQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YThmN2RlOTU4YzAyYWEwOWU5Y2ExY2YwZTYwMmQ4Zjg2NDlmZTAwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJp
dmF0ZS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUmVjb3JkZXJQcml2YXRlPiwgcHJpdmF0ZSBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgeworcHVibGljOgorICAgIGNsYXNzIE9ic2Vy
dmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0
OworICAgICAgICB2aXJ0dWFsIHZvaWQgYWxsVHJhY2tzRGlkRW5kKCkgPSAwOworICAgIH07Cisg
ICAgCisgICAgc3RhdGljIFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJik7CisgICAgCisgICAgdm9pZCBhZGRPYnNlcnZl
cihPYnNlcnZlciYpOworICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICAK
KyAgICB+TWVkaWFSZWNvcmRlclByaXZhdGUoKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYVJlY29y
ZGVyUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYpOworICAgIAor
ICAgIC8vIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlcgorICAgIHZvaWQgdHJhY2tF
bmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdHJhY2tN
dXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0KKyAgICB2
b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJp
ZGUgeyB9CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikgb3ZlcnJpZGUgeyB9CisgICAgCisgICAgVmVjdG9yPE9ic2VydmVyKj4gbV9vYnNlcnZl
cnM7CisgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgbV90cmFja3M7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5k
ZXggNzAyYjczMzM5YTc0ZjJjZDY2MTAwMjNjMzY4ZWFiYWEyYWQ0ODdhYi4uMTVlZTc1ODQ0NDJh
OTZlMTdkN2ZmNDFiNWI1Zjc2YTYxZTBkNzFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29h
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29j
b2EuaCIKLSNpbmNsdWRlICJSZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCiAKIEFMTE9XX1VOVVNF
RF9QQVJBTUVURVJTX0JFR0lOCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDY0
NDk1YzIxMWU1NTYyN2VlMzlkODczODM3YWE1M2QxOTY2YjY4MjAuLmI0ZTA4MGZhOWQxMDAxMzgw
NjEwNWEyYWUxYmIyMjU1MWI1NjFiMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE4LTEwLTE3ICBZVUhBTiBXVSAgPHl1aGFuX3d1QGFwcGxlLmNv
bT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNob3VsZCBmaXJlIGEgc3RvcCBldmVudCB3aGVu
IGFsbCB0cmFja3MgYXJlIGVuZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTA2NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01l
ZGlhUmVjb3JkZXItc3RvcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC5odG1sOiBB
ZGRlZC4KKwogMjAxOC0xMC0xNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzNzA1NC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0
dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlh
UmVjb3JkZXItc3RvcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYyNDZmNjhmYWNjNjlhMDFh
MjU5NWZmM2I5MmY1YzA5NjA1OTgwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJl
Y29yZGVyLXN0b3AtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIE1lZGlhUmVj
b3JkZXIgd2lsbCBzdG9wIHJlY29yZGluZyBhbmQgZmlyZSBhIHN0b3AgZXZlbnQgd2hlbiBhbGwg
dHJhY2tzIGFyZSBlbmRlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3Rv
cC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyMmVi
NmQ4MjBiMTJjZWJkMTc5MzA4NTJiYmI1NGI4NWRiNmNlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1y
ZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5NZWRpYVJlY29yZGVyIFN0b3A8L3Rp
dGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21l
ZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci5odG1sI21lZGlhcmVjb3JkZXIiPgorICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyI+Cis8L2NhbnZhcz4KKzxzY3JpcHQ+
CisgICAgZnVuY3Rpb24gY3JlYXRlVmlkZW9TdHJlYW0oKSB7CisgICAgICAgIGxldCBjYW52YXMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgICAgIHJldHVybiBjYW52
YXMuY2FwdHVyZVN0cmVhbSgpOworICAgIH0KKworICAgIGFzeW5jX3Rlc3QodCA9PiB7CisgICAg
ICAgIGxldCB2aWRlbyA9IGNyZWF0ZVZpZGVvU3RyZWFtKCk7CisgICAgICAgIGxldCByZWNvcmRl
ciA9IG5ldyBNZWRpYVJlY29yZGVyKHZpZGVvKTsKKyAgICAgICAgcmVjb3JkZXIub25zdG9wID0g
dC5zdGVwX2Z1bmMoZXJyb3JFdmVudCA9PiB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGVy
cm9yRXZlbnQudHlwZSwgJ3N0b3AnLCAndGhlIGVycm9yIHR5cGUgc2hvdWxkIGJlIHN0b3AnKTsK
KyAgICAgICAgICAgIGFzc2VydF90cnVlKGVycm9yRXZlbnQuaXNUcnVzdGVkLCAnaXNUcnVzdGVk
IHNob3VsZCBiZSB0cnVlIHdoZW4gdGhlIGV2ZW50IGlzIGNyZWF0ZWQgYnkgQysrJyk7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZGVyLnN0YXRlLCAiaW5hY3RpdmUiLCAiTWVkaWFS
ZWNvcmRlciBoYXMgYmVlbiBzdG9wcGVkIGFmdGVyIGFkZGluZyBhIHRyYWNrIHRvIHN0cmVhbSIp
OworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHZpZGVvLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoLCAxLCAidmlkZW8gbWVkaWFzdHJlYW0g
c3RhcnRzIHdpdGggb25lIHRyYWNrIik7CisgICAgICAgIHJlY29yZGVyLnN0YXJ0KCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVjb3JkZXIuc3RhdGUsICJyZWNvcmRpbmciLCAiTWVkaWFSZWNv
cmRlciBoYXMgYmVlbiBzdGFydGVkIHN1Y2Nlc3NmdWxseSIpOworICAgICAgICB2aWRlby5nZXRW
aWRlb1RyYWNrcygpWzBdLnN0b3AoKTsKKyAgICAgICAgdC5zdGVwX3RpbWVvdXQoKCkgPT4gewor
ICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgic3RvcCBldmVudCBpcyBub3QgZmlyZWQgYWZ0
ZXIgMiBzZWNvbmRzIik7CisgICAgICAgIH0sIDIwMDApOworICAgIH0sICJNZWRpYVJlY29yZGVy
IHdpbGwgc3RvcCByZWNvcmRpbmcgYW5kIGZpcmUgYSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNr
cyBhcmUgZW5kZWQiLCB7IHRpbWVvdXQ6IDEwMDAwIH0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352644</attachid>
            <date>2018-10-17 14:38:33 -0700</date>
            <delta_ts>2018-10-17 15:42:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190642-20181017143833.patch</filename>
            <type>text/plain</type>
            <size>21360</size>
            <attacher name="Wendy">yuhan_wu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZmMTZhMmRmZGNjNzNh
YTJhZjU0MjU1NDJmMGNkYjRkYmQxODM0NC4uMTAzNmNiZWJmNDY4NzE1NmRkODNlNWRjM2E1NGIy
MWU2MDUyZjRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTEwLTE3ICBZVUhB
TiBXVSAgPHl1aGFuX3d1QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNob3Vs
ZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG9ubHkgaW1w
bGVtZW50cyB0byBmaXJlIHRoZSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQu
CisgICAgICAgIFdlIHdpbGwgbmVlZCB0byBmaXJlIGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aGVu
IGFsbCB0cmFja3MgYXJlIGVuZGVkLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVHJhY2tQcml2YXRlVmVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFSZWNvcmRlcjo6fk1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFS
ZWNvcmRlcjo6YWxsVHJhY2tzRGlkRW5kKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyLmlkbDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlh
UmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
OjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU6
OnRyYWNrRW5kZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcDoKKwogMjAxOC0xMC0xNSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92
ZSB1bnVzZWQgcGFyYW1ldGVycyBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuY3BwCmluZGV4IGJlYjBjNzJhMTZmZTY2ZWQ4NWE0NDhkZDdkNjk0OWE5OTEzYTMzNzYu
LjAzM2JhMmMxYWQ3Yjk3YzExYTg3YWUxOTUzNDIyMGM2MjZiZGUwYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAK
QEAgLTQxLDE3ICs0MSwyOSBAQCBSZWY8TWVkaWFSZWNvcmRlcj4gTWVkaWFSZWNvcmRlcjo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmCiAgICAgcmV0dXJuIHJl
Y29yZGVyOwogfQogCitzdGF0aWMgaW5saW5lIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9y
IGNyZWF0ZVRyYWNrUHJpdmF0ZVZlY3Rvcihjb25zdCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9yJiB0
cmFja3MpCit7CisgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgdHJhY2tQcml2YXRl
czsKKyAgICB0cmFja1ByaXZhdGVzLnJlc2VydmVDYXBhY2l0eSh0cmFja3Muc2l6ZSgpKTsKKyAg
ICBmb3IgKGF1dG8mIHRyYWNrIDogdHJhY2tzKQorICAgICAgICB0cmFja1ByaXZhdGVzLmFwcGVu
ZCgmdHJhY2stPnByaXZhdGVUcmFjaygpKTsKKyAgICByZXR1cm4gdHJhY2tQcml2YXRlczsKK30K
KwogTWVkaWFSZWNvcmRlcjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxN
ZWRpYVN0cmVhbT4mJiBzdHJlYW0sIE9wdGlvbnMmJiBvcHRpb24pCiAgICAgOiBBY3RpdmVET01P
YmplY3QoJmRvY3VtZW50KQogICAgICwgbV9vcHRpb25zKFdURk1vdmUob3B0aW9uKSkKICAgICAs
IG1fc3RyZWFtKFdURk1vdmUoc3RyZWFtKSkKKyAgICAsIG1fcHJpdmF0ZShNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6Y3JlYXRlKGNyZWF0ZVRyYWNrUHJpdmF0ZVZlY3RvcihtX3N0cmVhbS0+Z2V0VHJh
Y2tzKCkpKSkKIHsKICAgICBtX3N0cmVhbS0+YWRkT2JzZXJ2ZXIodGhpcyk7CisgICAgbV9wcml2
YXRlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiB9CiAKIE1lZGlhUmVjb3JkZXI6On5NZWRpYVJlY29y
ZGVyKCkKIHsKICAgICBtX3N0cmVhbS0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CisgICAgbV9wcml2
YXRlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlcjo6c3Rv
cCgpCkBAIC04OSw2ICsxMDEsMTYgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpkaWRBZGRPclJlbW92
ZVRyYWNrKCkKICAgICB9KTsKIH0KIAordm9pZCBNZWRpYVJlY29yZGVyOjphbGxUcmFja3NEaWRF
bmQoKQoreworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIGlmICgh
bV9pc0FjdGl2ZSB8fCBzdGF0ZSgpID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgYXV0byBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLnN0b3BFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFi
bGU6Ok5vKTsKKyAgICAgICAgc2V0TmV3UmVjb3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGU6Oklu
YWN0aXZlLCBXVEZNb3ZlKGV2ZW50KSk7CisgICAgfSk7Cit9CisKIHZvaWQgTWVkaWFSZWNvcmRl
cjo6c2V0TmV3UmVjb3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGUgbmV3U3RhdGUsIFJlZjxFdmVu
dD4mJiBldmVudCkKIHsKICAgICBtX3N0YXRlID0gbmV3U3RhdGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAppbmRleCAwMjlm
MmVhMTY2ZGJlNGZmMmEwMjlhYWYxMmVhYWYzOGM3ODhiZGQ5Li4wNzkyYWFiN2MxODVlMTE1ZWVm
Y2Q4YTA2ZDBmMjQ0NzkzZWFiNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTI3LDEzICsyNywyMCBAQAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RG9jdW1lbnQ7CiAKLWNsYXNzIE1lZGlhUmVjb3JkZXIgZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyPiwgcHVibGljIEV2ZW50VGFy
Z2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyPiwg
cHJpdmF0ZSBNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIgeworY2xhc3MgTWVkaWFSZWNvcmRlciBmaW5h
bAorICAgIDogcHVibGljIEFjdGl2ZURPTU9iamVjdAorICAgICwgcHVibGljIFJlZkNvdW50ZWQ8
TWVkaWFSZWNvcmRlcj4KKyAgICAsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhCisg
ICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNvcmRlcj4KKyAgICAsIHByaXZhdGUg
TWVkaWFTdHJlYW06Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIE1lZGlhUmVjb3JkZXJQcml2YXRl
OjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZWNvcmRpbmdTdGF0ZSB7IElu
YWN0aXZlLCBSZWNvcmRpbmcsIFBhdXNlZCB9OwogICAgIApAQCAtNzIsMTEgKzc5LDE1IEBAIHBy
aXZhdGU6CiAgICAgLy8gTWVkaWFTdHJlYW06Ok9ic2VydmVyCiAgICAgdm9pZCBkaWRBZGRPclJl
bW92ZVRyYWNrKCkgZmluYWw7CiAgICAgCisgICAgLy8gTWVkaWFSZWNvcmRlclByaXZhdGU6Ok9i
c2VydmVyCisgICAgdm9pZCBhbGxUcmFja3NEaWRFbmQoKSBmaW5hbDsKKyAgICAKICAgICB2b2lk
IHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRO
ZXdSZWNvcmRpbmdTdGF0ZShSZWNvcmRpbmdTdGF0ZSwgUmVmPEV2ZW50PiYmKTsKICAgICAKICAg
ICBPcHRpb25zIG1fb3B0aW9uczsKICAgICBSZWY8TWVkaWFTdHJlYW0+IG1fc3RyZWFtOworICAg
IFJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIFJlY29yZGluZ1N0YXRl
IG1fc3RhdGUgeyBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUgfTsKICAgICAKICAgICBib29sIG1f
aXNBY3RpdmUgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwKaW5kZXggZDE2MzFkOTgzYzcxOTViYTQyM2Uz
ODBkMjczM2YyOGU5MTY1NDc5Ny4uNzNkNGZiNmI4YzQyZTU1MTY4MTk0ODJjZDFiNmEzYjBiZDIw
NTJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLmlkbApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIFJlY29yZGluZ1N0YXRl
IHsgImluYWN0aXZlIiwgInJlY29yZGluZyIsICJwYXVzZWQiIH07CiAgICAgLy8gcmVhZG9ubHkg
YXR0cmlidXRlIE1lZGlhU3RyZWFtIHN0cmVhbTsKICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIG1pbWVUeXBlOwogICAgIC8vIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFy
dDsKLSAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RvcDsKKyAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uc3RvcDsKICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGF0
YWF2YWlsYWJsZTsKICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucGF1c2U7CiAgICAg
Ly8gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnJlc3VtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNTNm
MjE4Y2Y4MmI5NzNlNzNkYTY2NmJjNzQ3NjBmYWZmMWM5MjNkNy4uYjcxYWY3ZWQ4OTU4NDVkYjY3
ZTY0ODQyNGJkMDE5NTY3NzkyNWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NDUsNiArMTc0NSw4
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcAogCiBwbGF0Zm9ybS9tZWRpYWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3Vy
YXRpb25GYWN0b3J5LmNwcAogCitwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcAorCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdlci5j
cHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYTRhOTgwMmMy
ZjJkY2VlODYwOTY3MDlhZDZhMWY4YjNmZGRiZWM4Li41ODk0NGEyNDk1OGIxNjRmMDRhZWJlMjY5
NzY2MzE1N2VhMzcwNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzUzLDYgKzEzNTMsNyBAQAogCQk0QkRBNDAwMTIxNTFC
NkY1MDBGRDY2MDQgLyogQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkRBM0ZGQjIxNTFCNkY0MDBGRDY2
MDQgLyogQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEQzQjAwQUIyMTVENjlBNzAwNzZCOTgzIC8q
IE1lZGlhUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggKi87IH07
CiAJCTREM0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEFEMjE1RDZBNjkwMDc2Qjk4
MyAvKiBCbG9iRXZlbnQuaCAqLzsgfTsKKwkJNERBMkZBNTEyMTc3RTJGNzAwNDkzRjc1IC8qIE1l
ZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0RDk4RTIyNDIxNzUzQTUwMDAzMDdCNTIgLyogTWVkaWFSZWNvcmRlclByaXZh
dGUuaCAqLzsgfTsKIAkJNERCNzEzMEQyMTZFQ0I0RDAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJF
cnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0REI3MTMwQzIxNkVDMkJEMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAq
LzsgfTsKIAkJNEUxOTU5MjIwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTkyMDBB
MzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUg
LyogTWVkaWFRdWVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEUxOTU5MjQwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzg4Myw2ICs3ODg0LDgg
QEAKIAkJNEQzQjAwQTgyMTVENjlBNjAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRp
YVJlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3Jk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEQzQjAwQUQyMTVENkE2OTAwNzZC
OTgzIC8qIEJsb2JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9i
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEQ5OEUyMjQyMTc1M0E1MDAw
MzA3QjUyIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTREOThFMjI1MjE3NTNBNTAwMDMwN0I1MiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJp
dmF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTREQjcxMzBBMjE2RUMyQkMw
MDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0REI3MTMwQzIxNkVDMkJEMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlckVycm9y
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNERCNzEzMEUyMTZFRUJBRTAw
OTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3OTU5LDYgKzE3OTYyLDE1IEBACiAJCQlwYXRoID0gbWVk
aWFyZWNvcmRlcjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTREOThFMjIz
MjE3NTNBM0EwMDMwN0I1MiAvKiBtZWRpYXJlY29yZGVyICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0RDk4RTIyNTIxNzUzQTUwMDAzMDdCNTIgLyogTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwICovLAorCQkJCTREOThFMjI0MjE3NTNBNTAwMDMwN0I1MiAv
KiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovLAorCQkJKTsKKwkJCXBhdGggPSBtZWRpYXJlY29y
ZGVyOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTEwMzEwNDIxQkE4QzY0
QzAwMzMyOUMwIC8qIGNsaWVudCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC0yNDc0Miw2ICsyNDc1NCw3IEBACiAJCQkJQTU5RTNDMUIxMTU4MEYzNDAwNzI5
MjhFIC8qIGlvcyAqLywKIAkJCQk2NTgyQTE0ODA5OTk5RDZDMDBCRUVCNkQgLyogbWFjICovLAog
CQkJCTlBQzZGMDIwMjExNDhGMUUwMENCREEwNiAvKiBtZWRpYWNhcGFiaWxpdGllcyAqLywKKwkJ
CQk0RDk4RTIyMzIxNzUzQTNBMDAzMDdCNTIgLyogbWVkaWFyZWNvcmRlciAqLywKIAkJCQlDOTZG
NUVCRjFCNTg3MjI2MDA5MUVBOUQgLyogbWVkaWFzZXNzaW9uICovLAogCQkJCTA3MjIxQjkyMTdD
RjBBRDQwMDg0OEU1MSAvKiBtZWRpYXN0cmVhbSAqLywKIAkJCQk1OUM3N0YxMDEwNTQ1OTFDMDA1
MDYxMDQgLyogbW9jayAqLywKQEAgLTMxNDUyLDYgKzMxNDY1LDcgQEAKIAkJCQlFMUJFNTEyRTBD
RjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNERBMkZBNTEyMTc3RTJGNzAwNDkzRjc1IC8qIE1lZGlhUmVjb3JkZXJQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTQxNkZFNjE4ODEwRUY4MDAwOUZDNUYgLyog
WW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E1NTE1RjUx
OTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDgyMjZlYTg1MTUzOTBmYzAzZDAwMzFm
MGZkMTM5YzVlOTI0OGM4MWYuLjAzZTczY2U5MmZlMDk1YWJkMTVmZjY0ZWFkMDU4ODE3ZmNkYzZi
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMjM3LDYgKzIzNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBtYWNybyhzdGFydCkgXAogICAgIG1hY3JvKHN0YXJ0ZWQpIFwKICAg
ICBtYWNybyhzdGF0ZWNoYW5nZSkgXAorICAgIG1hY3JvKHN0b3ApIFwKICAgICBtYWNybyhzdG9y
YWdlKSBcCiAgICAgbWFjcm8oc3VibWl0KSBcCiAgICAgbWFjcm8oc3VjY2VzcykgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXJQcml2YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzIyNjgwZjgxNTJhZmY2NWIzMjMyNWYw
YTBmYmNjZDIzNjAyZWVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTAsMCArMSw4MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNv
cmRlclByaXZhdGUuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUmVmPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6Y3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJiB0cmFja3MpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlclByaXZhdGUodHJhY2tzKSk7
Cit9CisKK01lZGlhUmVjb3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgdHJhY2tzKQoreworICAgIG1fdHJhY2tzLnJl
c2VydmVDYXBhY2l0eSh0cmFja3Muc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogdHJh
Y2tzKSB7CisgICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fdHJh
Y2tzLmFwcGVuZCh0cmFjayk7CisgICAgfQorfQorCitNZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1l
ZGlhUmVjb3JkZXJQcml2YXRlKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja3Mp
CisgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGU6OmFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBt
X29ic2VydmVycy5hcHBlbmQoJm9ic2VydmVyKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIHNpemVfdCBw
b3MgPSBtX29ic2VydmVycy5maW5kKCZvYnNlcnZlcik7CisgICAgaWYgKHBvcyAhPSBub3RGb3Vu
ZCkKKyAgICAgICAgbV9vYnNlcnZlcnMucmVtb3ZlKHBvcyk7Cit9CisKK3ZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGU6OnRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQoreworICAg
IGJvb2wgZGlkRXhpc3RBY3RpdmVUcmFjayA9IGZhbHNlOworICAgIGZvciAoYXV0byYgdHJhY2sg
OiBtX3RyYWNrcykgeworICAgICAgICBpZiAoIXRyYWNrLT5lbmRlZCgpKSB7CisgICAgICAgICAg
ICBkaWRFeGlzdEFjdGl2ZVRyYWNrID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorICAgIGlmIChkaWRFeGlzdEFjdGl2ZVRyYWNrKQorICAgICAgICByZXR1cm47
CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZl
ci0+YWxsVHJhY2tzRGlkRW5kKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmE4ZjdkZTk1OGMwMmFhMDllOWNhMWNmMGU2MDJkOGY4NjQ5ZmUwMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByaXZhdGUuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFSZWNvcmRl
clByaXZhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZT4sIHByaXZh
dGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBjbGFz
cyBPYnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpID0g
ZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFsbFRyYWNrc0RpZEVuZCgpID0gMDsKKyAg
ICB9OworICAgIAorICAgIHN0YXRpYyBSZWY8TWVkaWFSZWNvcmRlclByaXZhdGU+IGNyZWF0ZShj
b25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYpOworICAgIAorICAgIHZvaWQgYWRk
T2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJik7
CisgICAgCisgICAgfk1lZGlhUmVjb3JkZXJQcml2YXRlKCk7CisKK3ByaXZhdGU6CisgICAgTWVk
aWFSZWNvcmRlclByaXZhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3ImKTsK
KyAgICAKKyAgICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lk
IHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lk
IHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9
CisgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
IG92ZXJyaWRlIHsgfQorICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfQorICAgIAorICAgIFZlY3RvcjxPYnNlcnZlcio+IG1f
b2JzZXJ2ZXJzOworICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yIG1fdHJhY2tzOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2Eu
Y3BwCmluZGV4IDcwMmI3MzMzOWE3NGYyY2Q2NjEwMDIzYzM2OGVhYmFhMmFkNDg3YWIuLjE1ZWU3
NTg0NDQyYTk2ZTE3ZDdmZjQxYjViNWY3NmE2MWUwZDcxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtMzAsNyArMzAsNiBAQAog
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIgogCiBBTExP
V19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCA2NDQ5NWMyMTFlNTU2MjdlZTM5ZDg3MzgzN2FhNTNkMTk2NmI2ODIwLi5iNGUwODBmYTlk
MTAwMTM4MDYxMDVhMmFlMWJiMjI1NTFiNTYxYjMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0xMC0xNyAgWVVIQU4gV1UgIDx5dWhhbl93dUBh
cHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFSZWNvcmRlciBzaG91bGQgZmlyZSBhIHN0b3AgZXZl
bnQgd2hlbiBhbGwgdHJhY2tzIGFyZSBlbmRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJl
Y29yZC9NZWRpYVJlY29yZGVyLXN0b3AtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3Au
aHRtbDogQWRkZWQuCisKIDIwMTgtMTAtMTUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzcwNTQuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21l
ZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29y
ZC9NZWRpYVJlY29yZGVyLXN0b3AtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMjQ2ZjY4ZmFj
YzY5YTAxYTI1OTVmZjNiOTJmNWMwOTYwNTk4MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQv
TWVkaWFSZWNvcmRlci1zdG9wLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBN
ZWRpYVJlY29yZGVyIHdpbGwgc3RvcCByZWNvcmRpbmcgYW5kIGZpcmUgYSBzdG9wIGV2ZW50IHdo
ZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29y
ZGVyLXN0b3AuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wMjJlYjZkODIwYjEyY2ViZDE3OTMwODUyYmJiNTRiODVkYjZjZTVlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+TWVkaWFSZWNvcmRlciBT
dG9wPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXIuaHRtbCNtZWRpYXJlY29yZGVy
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiPgorPC9jYW52YXM+Cis8
c2NyaXB0PgorICAgIGZ1bmN0aW9uIGNyZWF0ZVZpZGVvU3RyZWFtKCkgeworICAgICAgICBsZXQg
Y2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgICAgICByZXR1
cm4gY2FudmFzLmNhcHR1cmVTdHJlYW0oKTsKKyAgICB9CisKKyAgICBhc3luY190ZXN0KHQgPT4g
eworICAgICAgICBsZXQgdmlkZW8gPSBjcmVhdGVWaWRlb1N0cmVhbSgpOworICAgICAgICBsZXQg
cmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRlcih2aWRlbyk7CisgICAgICAgIHJlY29yZGVyLm9u
c3RvcCA9IHQuc3RlcF9mdW5jKGVycm9yRXZlbnQgPT4geworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlcnJvckV2ZW50LnR5cGUsICdzdG9wJywgJ3RoZSBlcnJvciB0eXBlIHNob3VsZCBiZSBz
dG9wJyk7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShlcnJvckV2ZW50LmlzVHJ1c3RlZCwgJ2lz
VHJ1c3RlZCBzaG91bGQgYmUgdHJ1ZSB3aGVuIHRoZSBldmVudCBpcyBjcmVhdGVkIGJ5IEMrKycp
OworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmRlci5zdGF0ZSwgImluYWN0aXZlIiwg
Ik1lZGlhUmVjb3JkZXIgaGFzIGJlZW4gc3RvcHBlZCBhZnRlciBhZGRpbmcgYSB0cmFjayB0byBz
dHJlYW0iKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyh2aWRlby5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCwgMSwgInZpZGVvIG1lZGlh
c3RyZWFtIHN0YXJ0cyB3aXRoIG9uZSB0cmFjayIpOworICAgICAgICByZWNvcmRlci5zdGFydCgp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZGVyLnN0YXRlLCAicmVjb3JkaW5nIiwgIk1l
ZGlhUmVjb3JkZXIgaGFzIGJlZW4gc3RhcnRlZCBzdWNjZXNzZnVsbHkiKTsKKyAgICAgICAgdmlk
ZW8uZ2V0VmlkZW9UcmFja3MoKVswXS5zdG9wKCk7CisgICAgICAgIHQuc3RlcF90aW1lb3V0KCgp
ID0+IHsKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoInN0b3AgZXZlbnQgaXMgbm90IGZp
cmVkIGFmdGVyIDIgc2Vjb25kcyIpOworICAgICAgICB9LCAyMDAwKTsKKyAgICB9LCAiTWVkaWFS
ZWNvcmRlciB3aWxsIHN0b3AgcmVjb3JkaW5nIGFuZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFs
bCB0cmFja3MgYXJlIGVuZGVkIiwgeyB0aW1lb3V0OiAxMDAwMCB9KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352653</attachid>
            <date>2018-10-17 15:42:46 -0700</date>
            <delta_ts>2018-10-18 14:06:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190642-20181017154245.patch</filename>
            <type>text/plain</type>
            <size>22014</size>
            <attacher name="Wendy">yuhan_wu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZmMTZhMmRmZGNjNzNh
YTJhZjU0MjU1NDJmMGNkYjRkYmQxODM0NC4uNTE1M2ZlZWMxMGQ4YWU3NTMxYmYzMTlmMzAxNTk5
YzliYzA3YjkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTEwLTE3ICBZVUhB
TiBXVSAgPHl1aGFuX3d1QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNob3Vs
ZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG9ubHkgaW1w
bGVtZW50cyB0byBmaXJlIHRoZSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQu
CisgICAgICAgIFdlIHdpbGwgbmVlZCB0byBmaXJlIGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aGVu
IGFsbCB0cmFja3MgYXJlIGVuZGVkLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRt
bAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVHJhY2tQ
cml2YXRlVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVj
b3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6fk1lZGlhUmVjb3JkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6YWxsVHJhY2tzRGlkRW5kKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmlkbDoKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnRyYWNrRW5kZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcDoKKwogMjAxOC0xMC0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgcGFyYW1ldGVycyBmcm9tIEZyYW1l
TG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NDRiNTFi
NzA4YWU2NzY3M2Q2NzdhOTUzOTAyY2I2YzhmNmJlM2Q0Li4zNTc0NmUxOGRlYjFiMzhhMGFmMTQ0
Y2UzYjI0ZDM3MjJjNjMzZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTExLDYgKzExMSw3
IEBAIHNldChXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3MvaXNvIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVudHlwZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3JtcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbWVkaWFyZWNvcmRlciIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbWVkaWFzdHJlYW0iCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0YyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vbW9jayIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRleCBiZWIwYzcyYTE2ZmU2NmVkODVhNDQ4ZGQ3
ZDY5NDlhOTkxM2EzMzc2Li4wMzNiYTJjMWFkN2I5N2MxMWE4N2FlMTk1MzQyMjBjNjI2YmRlMGEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuY3BwCkBAIC00MSwxNyArNDEsMjkgQEAgUmVmPE1lZGlhUmVjb3JkZXI+IE1l
ZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbT4m
JgogICAgIHJldHVybiByZWNvcmRlcjsKIH0KIAorc3RhdGljIGlubGluZSBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZVZlY3RvciBjcmVhdGVUcmFja1ByaXZhdGVWZWN0b3IoY29uc3QgTWVkaWFTdHJl
YW1UcmFja1ZlY3RvciYgdHJhY2tzKQoreworICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVj
dG9yIHRyYWNrUHJpdmF0ZXM7CisgICAgdHJhY2tQcml2YXRlcy5yZXNlcnZlQ2FwYWNpdHkodHJh
Y2tzLnNpemUoKSk7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IHRyYWNrcykKKyAgICAgICAgdHJh
Y2tQcml2YXRlcy5hcHBlbmQoJnRyYWNrLT5wcml2YXRlVHJhY2soKSk7CisgICAgcmV0dXJuIHRy
YWNrUHJpdmF0ZXM7Cit9CisKIE1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBPcHRpb25zJiYgb3B0aW9uKQog
ICAgIDogQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKICAgICAsIG1fb3B0aW9ucyhXVEZNb3Zl
KG9wdGlvbikpCiAgICAgLCBtX3N0cmVhbShXVEZNb3ZlKHN0cmVhbSkpCisgICAgLCBtX3ByaXZh
dGUoTWVkaWFSZWNvcmRlclByaXZhdGU6OmNyZWF0ZShjcmVhdGVUcmFja1ByaXZhdGVWZWN0b3Io
bV9zdHJlYW0tPmdldFRyYWNrcygpKSkpCiB7CiAgICAgbV9zdHJlYW0tPmFkZE9ic2VydmVyKHRo
aXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiBNZWRpYVJlY29y
ZGVyOjp+TWVkaWFSZWNvcmRlcigpCiB7CiAgICAgbV9zdHJlYW0tPnJlbW92ZU9ic2VydmVyKHRo
aXMpOworICAgIG1fcHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB2b2lkIE1l
ZGlhUmVjb3JkZXI6OnN0b3AoKQpAQCAtODksNiArMTAxLDE2IEBAIHZvaWQgTWVkaWFSZWNvcmRl
cjo6ZGlkQWRkT3JSZW1vdmVUcmFjaygpCiAgICAgfSk7CiB9CiAKK3ZvaWQgTWVkaWFSZWNvcmRl
cjo6YWxsVHJhY2tzRGlkRW5kKCkKK3sKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10g
eworICAgICAgICBpZiAoIW1faXNBY3RpdmUgfHwgc3RhdGUoKSA9PSBSZWNvcmRpbmdTdGF0ZTo6
SW5hY3RpdmUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8gZXZlbnQgPSBFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9wRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CisgICAgICAgIHNldE5ld1JlY29yZGluZ1N0YXRlKFJl
Y29yZGluZ1N0YXRlOjpJbmFjdGl2ZSwgV1RGTW92ZShldmVudCkpOworICAgIH0pOworfQorCiB2
b2lkIE1lZGlhUmVjb3JkZXI6OnNldE5ld1JlY29yZGluZ1N0YXRlKFJlY29yZGluZ1N0YXRlIG5l
d1N0YXRlLCBSZWY8RXZlbnQ+JiYgZXZlbnQpCiB7CiAgICAgbV9zdGF0ZSA9IG5ld1N0YXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmgKaW5kZXggMDI5ZjJlYTE2NmRiZTRmZjJhMDI5YWFmMTJlYWFmMzhjNzg4YmRkOS4uMDc5
MmFhYjdjMTg1ZTExNWVlZmNkOGEwNmQwZjI0NDc5M2VhYjZlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCkBAIC0yNywx
MyArMjcsMjAgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogI2luY2x1ZGUgIkFjdGl2ZURP
TU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiTWVkaWFSZWNv
cmRlclByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogCi1jbGFzcyBNZWRpYVJlY29yZGVyIGZpbmFsIDog
cHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFSZWNvcmRlcj4s
IHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
TWVkaWFSZWNvcmRlcj4sIHByaXZhdGUgTWVkaWFTdHJlYW06Ok9ic2VydmVyIHsKK2NsYXNzIE1l
ZGlhUmVjb3JkZXIgZmluYWwKKyAgICA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QKKyAgICAsIHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhUmVjb3JkZXI+CisgICAgLCBwdWJsaWMgRXZlbnRUYXJnZXRX
aXRoSW5saW5lRGF0YQorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXI+
CisgICAgLCBwcml2YXRlIE1lZGlhU3RyZWFtOjpPYnNlcnZlcgorICAgICwgcHJpdmF0ZSBNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6T2JzZXJ2ZXIgewogcHVibGljOgogICAgIGVudW0gY2xhc3MgUmVj
b3JkaW5nU3RhdGUgeyBJbmFjdGl2ZSwgUmVjb3JkaW5nLCBQYXVzZWQgfTsKICAgICAKQEAgLTcy
LDExICs3OSwxNSBAQCBwcml2YXRlOgogICAgIC8vIE1lZGlhU3RyZWFtOjpPYnNlcnZlcgogICAg
IHZvaWQgZGlkQWRkT3JSZW1vdmVUcmFjaygpIGZpbmFsOwogICAgIAorICAgIC8vIE1lZGlhUmVj
b3JkZXJQcml2YXRlOjpPYnNlcnZlcgorICAgIHZvaWQgYWxsVHJhY2tzRGlkRW5kKCkgZmluYWw7
CisgICAgCiAgICAgdm9pZCBzY2hlZHVsZURlZmVycmVkVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgc2V0TmV3UmVjb3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGUsIFJlZjxFdmVu
dD4mJik7CiAgICAgCiAgICAgT3B0aW9ucyBtX29wdGlvbnM7CiAgICAgUmVmPE1lZGlhU3RyZWFt
PiBtX3N0cmVhbTsKKyAgICBSZWY8TWVkaWFSZWNvcmRlclByaXZhdGU+IG1fcHJpdmF0ZTsKICAg
ICBSZWNvcmRpbmdTdGF0ZSBtX3N0YXRlIHsgUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlIH07CiAg
ICAgCiAgICAgYm9vbCBtX2lzQWN0aXZlIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaWRsCmluZGV4IGQxNjMx
ZDk4M2M3MTk1YmE0MjNlMzgwZDI3MzNmMjhlOTE2NTQ3OTcuLjczZDRmYjZiOGM0MmU1NTE2ODE5
NDgyY2QxYjZhM2IwYmQyMDUyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwKQEAgLTM3LDcgKzM3LDcgQEAgZW51
bSBSZWNvcmRpbmdTdGF0ZSB7ICJpbmFjdGl2ZSIsICJyZWNvcmRpbmciLCAicGF1c2VkIiB9Owog
ICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVN0cmVhbSBzdHJlYW07CiAgICAgLy8gcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtaW1lVHlwZTsKICAgICAvLyBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9uc3RhcnQ7Ci0gICAgLy8gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0b3A7
CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0b3A7CiAgICAgLy8gYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbmRhdGFhdmFpbGFibGU7CiAgICAgLy8gYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbnBhdXNlOwogICAgIC8vIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25yZXN1bWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDUzZjIxOGNmODJiOTczZTczZGE2NjZiYzc0NzYwZmFmZjFjOTIzZDcuLmI3
MWFmN2VkODk1ODQ1ZGI2N2U2NDg0MjRiZDAxOTU2Nzc5MjVjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0xNzQ1LDYgKzE3NDUsOCBAQCBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKIAogcGxhdGZvcm0vbWVkaWFjYXBhYmlsaXRpZXMvTWVk
aWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHAKIAorcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKwogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVy
ZURldmljZU1hbmFnZXIuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRz
LmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb24uY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZmE0YTk4MDJjMmYyZGNlZTg2MDk2NzA5YWQ2YTFmOGIzZmRkYmVjOC4uNTYyNjM4MWNl
Zjg4OGJhNjU3OWMwNDgyMjRjYzdjZjJjZDRhYmY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM1Myw2ICsxMzUzLDcgQEAK
IAkJNEJEQTQwMDEyMTUxQjZGNTAwRkQ2NjA0IC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJEQTNG
RkIyMTUxQjZGNDAwRkQ2NjA0IC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTREM0IwMEFCMjE1
RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDNCMDBBOTIxNUQ2OUE3MDA3NkI5ODMgLyogTWVkaWFS
ZWNvcmRlci5oICovOyB9OwogCQk0RDNCMDBBRjIxNUQ2QTY5MDA3NkI5ODMgLyogQmxvYkV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDNCMDBB
RDIxNUQ2QTY5MDA3NkI5ODMgLyogQmxvYkV2ZW50LmggKi87IH07CisJCTREQTJGQTUxMjE3N0Uy
RjcwMDQ5M0Y3NSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQ5OEUyMjQyMTc1M0E1MDAwMzA3QjUyIC8qIE1l
ZGlhUmVjb3JkZXJQcml2YXRlLmggKi87IH07CiAJCTREQjcxMzBEMjE2RUNCNEQwMDk2QTRERCAv
KiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNERCNzEzMEMyMTZFQzJCRDAwOTZBNEREIC8qIE1lZGlhUmVjb3Jk
ZXJFcnJvckV2ZW50LmggKi87IH07CiAJCTRFMTk1OTIyMEEzOURBQkEwMDIyMEZFNSAvKiBNZWRp
YUZlYXR1cmVOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEUxOTU5MjAwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEUxOTU5MkEw
QTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTI0MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1
ZXJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTc4ODMsNiArNzg4NCw4IEBACiAJCTREM0IwMEE4MjE1RDY5QTYwMDc2Qjk4MyAvKiBNZWRpYVJl
Y29yZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVj
b3JkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RDNCMDBBOTIxNUQ2OUE3
MDA3NkI5ODMgLyogTWVkaWFSZWNvcmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVJlY29yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTREM0Iw
MEFEMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmxvYkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRE
OThFMjI0MjE3NTNBNTAwMDMwN0I1MiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0RDk4RTIyNTIxNzUzQTUwMDAzMDdCNTIgLyogTWVkaWFS
ZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
REI3MTMwQTIxNkVDMkJDMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNERCNzEzMEMyMTZFQzJCRDAwOTZBNEREIC8qIE1lZGlh
UmVjb3JkZXJFcnJvckV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhUmVjb3JkZXJFcnJvckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRE
QjcxMzBFMjE2RUVCQUUwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlY29yZGVyRXJyb3JFdmVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzk1OSw2ICsxNzk2MiwxNSBA
QAogCQkJcGF0aCA9IG1lZGlhcmVjb3JkZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwog
CQl9OworCQk0RDk4RTIyMzIxNzUzQTNBMDAzMDdCNTIgLyogbWVkaWFyZWNvcmRlciAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNEQ5OEUyMjUyMTc1M0E1
MDAwMzA3QjUyIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLywKKwkJCQk0RDk4RTIyNDIx
NzUzQTUwMDAzMDdCNTIgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLywKKwkJCSk7CisJCQlw
YXRoID0gbWVkaWFyZWNvcmRlcjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJ
CTUxMDMxMDQyMUJBOEM2NEMwMDMzMjlDMCAvKiBjbGllbnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjQ3NDIsNiArMjQ3NTQsNyBAQAogCQkJCUE1OUUz
QzFCMTE1ODBGMzQwMDcyOTI4RSAvKiBpb3MgKi8sCiAJCQkJNjU4MkExNDgwOTk5OUQ2QzAwQkVF
QjZEIC8qIG1hYyAqLywKIAkJCQk5QUM2RjAyMDIxMTQ4RjFFMDBDQkRBMDYgLyogbWVkaWFjYXBh
YmlsaXRpZXMgKi8sCisJCQkJNEQ5OEUyMjMyMTc1M0EzQTAwMzA3QjUyIC8qIG1lZGlhcmVjb3Jk
ZXIgKi8sCiAJCQkJQzk2RjVFQkYxQjU4NzIyNjAwOTFFQTlEIC8qIG1lZGlhc2Vzc2lvbiAqLywK
IAkJCQkwNzIyMUI5MjE3Q0YwQUQ0MDA4NDhFNTEgLyogbWVkaWFzdHJlYW0gKi8sCiAJCQkJNTlD
NzdGMTAxMDU0NTkxQzAwNTA2MTA0IC8qIG1vY2sgKi8sCkBAIC0yOTc5OCw2ICsyOTgxMSw3IEBA
CiAJCQkJNDQ3MTcxMEUyMDVBRjk0NTAwMEExMTZFIC8qIE1lZGlhUXVlcnlQYXJzZXJDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RDNCMDBBQjIxNUQ2OUE3MDA3NkI5ODMgLyogTWVkaWFS
ZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNERCNzEzMEQyMTZFQ0I0RDAwOTZBNEREIC8q
IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0REEyRkE1MTIx
NzdFMkY3MDA0OTNGNzUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM5MDg0M0QwMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNvbnRyb2xzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDhBQ0E4RjFEMjM5NzE5MDBFQ0M1OUUgLyogTWVkaWFSZW1vdGVT
b2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VFRkNEN0ExOURCMzFGNzAwMzg3NkQ3IC8q
IE1lZGlhUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmgKaW5kZXggODIyNmVhODUxNTM5MGZjMDNkMDAzMWYwZmQxMzljNWU5MjQ4YzgxZi4uMDNlNzNj
ZTkyZmUwOTVhYmQxNWZmNjRlYWQwNTg4MTdmY2RjNmJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oCkBAIC0yMzcsNiArMjM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHN0
YXJ0KSBcCiAgICAgbWFjcm8oc3RhcnRlZCkgXAogICAgIG1hY3JvKHN0YXRlY2hhbmdlKSBcCisg
ICAgbWFjcm8oc3RvcCkgXAogICAgIG1hY3JvKHN0b3JhZ2UpIFwKICAgICBtYWNybyhzdWJtaXQp
IFwKICAgICBtYWNybyhzdWNjZXNzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE3MjI2ODBmODE1MmFmZjY1YjMyMzI1ZjBhMGZiY2NkMjM2MDJlZWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcml2YXRlLmNwcApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8TWVkaWFSZWNv
cmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpjcmVhdGUoY29uc3QgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGVWZWN0b3ImIHRyYWNrcykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNZWRpYVJlY29yZGVyUHJpdmF0ZSh0cmFja3MpKTsKK30KKworTWVkaWFSZWNvcmRlclByaXZh
dGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVj
dG9yJiB0cmFja3MpCit7CisgICAgbV90cmFja3MucmVzZXJ2ZUNhcGFjaXR5KHRyYWNrcy5zaXpl
KCkpOworICAgIGZvciAoYXV0byYgdHJhY2sgOiB0cmFja3MpIHsKKyAgICAgICAgdHJhY2stPmFk
ZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV90cmFja3MuYXBwZW5kKHRyYWNrKTsKKyAgICB9
Cit9CisKK01lZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQorewor
ICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrcykKKyAgICAgICAgdHJhY2stPnJlbW92ZU9i
c2VydmVyKCp0aGlzKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YWRkT2JzZXJ2
ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZCgmb2JzZXJ2
ZXIpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpyZW1vdmVPYnNlcnZlcihPYnNl
cnZlciYgb2JzZXJ2ZXIpCit7CisgICAgc2l6ZV90IHBvcyA9IG1fb2JzZXJ2ZXJzLmZpbmQoJm9i
c2VydmVyKTsKKyAgICBpZiAocG9zICE9IG5vdEZvdW5kKQorICAgICAgICBtX29ic2VydmVycy5y
ZW1vdmUocG9zKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6dHJhY2tFbmRlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgYm9vbCBkaWRFeGlzdEFjdGl2ZVRyYWNr
ID0gZmFsc2U7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tzKSB7CisgICAgICAgIGlm
ICghdHJhY2stPmVuZGVkKCkpIHsKKyAgICAgICAgICAgIGRpZEV4aXN0QWN0aXZlVHJhY2sgPSB0
cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGRpZEV4
aXN0QWN0aXZlVHJhY2spCisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVy
IDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLT5hbGxUcmFja3NEaWRFbmQoKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYThmN2RlOTU4YzAyYWEwOWU5
Y2ExY2YwZTYwMmQ4Zjg2NDlmZTAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC0wLDAgKzEs
NjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPE1lZGlhUmVjb3JkZXJQcml2YXRlPiwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZTo6T2JzZXJ2ZXIgeworcHVibGljOgorICAgIGNsYXNzIE9ic2VydmVyIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0OworICAgICAgICB2aXJ0dWFs
IHZvaWQgYWxsVHJhY2tzRGlkRW5kKCkgPSAwOworICAgIH07CisgICAgCisgICAgc3RhdGljIFJl
ZjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlVmVjdG9yJik7CisgICAgCisgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOworICAg
IHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICAKKyAgICB+TWVkaWFSZWNvcmRl
clByaXZhdGUoKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYVJlY29yZGVyUHJpdmF0ZShjb25zdCBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYpOworICAgIAorICAgIC8vIE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlOjpPYnNlcnZlcgorICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHRyYWNrU2V0dGluZ3ND
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCB0
cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9
CisgICAgCisgICAgVmVjdG9yPE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CisgICAgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGVWZWN0b3IgbV90cmFja3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggNzAyYjczMzM5YTc0ZjJj
ZDY2MTAwMjNjMzY4ZWFiYWEyYWQ0ODdhYi4uMTVlZTc1ODQ0NDJhOTZlMTdkN2ZmNDFiNWI1Zjc2
YTYxZTBkNzFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlQ29jb2EuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaCIKLSNpbmNsdWRlICJS
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lO
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDY0NDk1YzIxMWU1NTYyN2VlMzlk
ODczODM3YWE1M2QxOTY2YjY4MjAuLmI0ZTA4MGZhOWQxMDAxMzgwNjEwNWEyYWUxYmIyMjU1MWI1
NjFiMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDE4LTEwLTE3ICBZVUhBTiBXVSAgPHl1aGFuX3d1QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRp
YVJlY29yZGVyIHNob3VsZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVu
ZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2
NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC5odG1sOiBBZGRlZC4KKwogMjAxOC0xMC0x
NSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzNzA1NC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJl
Y29yZGVyLXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYyNDZmNjhmYWNjNjlhMDFhMjU5NWZmM2I5MmY1YzA5NjA1
OTgwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIE1lZGlhUmVjb3JkZXIgd2lsbCBzdG9wIHJl
Y29yZGluZyBhbmQgZmlyZSBhIHN0b3AgZXZlbnQgd2hlbiBhbGwgdHJhY2tzIGFyZSBlbmRlZCAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01l
ZGlhUmVjb3JkZXItc3RvcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzYWEwMjE5YzlhYzBiMDg4YWJlMzBh
YmM5ZGEwMDgwZDE3NTk1YzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRl
ci1zdG9wLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDx0aXRsZT5NZWRpYVJlY29yZGVyIFN0b3A8L3RpdGxlPgorICAgIDxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1yZWNvcmQv
TWVkaWFSZWNvcmRlci5odG1sI21lZGlhcmVjb3JkZXIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxj
YW52YXMgaWQ9ImNhbnZhcyI+Cis8L2NhbnZhcz4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gY3Jl
YXRlVmlkZW9TdHJlYW0oKSB7CisgICAgICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY2FudmFzIik7CisgICAgICAgIHJldHVybiBjYW52YXMuY2FwdHVyZVN0cmVhbSgp
OworICAgIH0KKworICAgIGFzeW5jX3Rlc3QodCA9PiB7CisgICAgICAgIGxldCB2aWRlbyA9IGNy
ZWF0ZVZpZGVvU3RyZWFtKCk7CisgICAgICAgIGxldCByZWNvcmRlciA9IG5ldyBNZWRpYVJlY29y
ZGVyKHZpZGVvKTsKKyAgICAgICAgcmVjb3JkZXIub25zdG9wID0gdC5zdGVwX2Z1bmMoZXJyb3JF
dmVudCA9PiB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGVycm9yRXZlbnQudHlwZSwgJ3N0
b3AnLCAndGhlIGVycm9yIHR5cGUgc2hvdWxkIGJlIHN0b3AnKTsKKyAgICAgICAgICAgIGFzc2Vy
dF90cnVlKGVycm9yRXZlbnQuaXNUcnVzdGVkLCAnaXNUcnVzdGVkIHNob3VsZCBiZSB0cnVlIHdo
ZW4gdGhlIGV2ZW50IGlzIGNyZWF0ZWQgYnkgQysrJyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlY29yZGVyLnN0YXRlLCAiaW5hY3RpdmUiLCAiTWVkaWFSZWNvcmRlciBoYXMgYmVlbiBz
dG9wcGVkIHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQiKTsKKyAgICAgICAgICAgIHQuZG9uZSgp
OworICAgICAgICB9KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlby5nZXRWaWRlb1RyYWNr
cygpLmxlbmd0aCwgMSwgInZpZGVvIG1lZGlhc3RyZWFtIHN0YXJ0cyB3aXRoIG9uZSB0cmFjayIp
OworICAgICAgICByZWNvcmRlci5zdGFydCgpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29y
ZGVyLnN0YXRlLCAicmVjb3JkaW5nIiwgIk1lZGlhUmVjb3JkZXIgaGFzIGJlZW4gc3RhcnRlZCBz
dWNjZXNzZnVsbHkiKTsKKyAgICAgICAgdmlkZW8uZ2V0VmlkZW9UcmFja3MoKVswXS5zdG9wKCk7
CisgICAgICAgIHQuc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoInN0b3AgZXZlbnQgaXMgbm90IGZpcmVkIGFmdGVyIDIgc2Vjb25kcyIpOworICAgICAg
ICB9LCAyMDAwKTsKKyAgICB9LCAiTWVkaWFSZWNvcmRlciB3aWxsIHN0b3AgcmVjb3JkaW5nIGFu
ZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkIiwgeyB0aW1lb3V0
OiAxMDAwMCB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352728</attachid>
            <date>2018-10-18 14:06:04 -0700</date>
            <delta_ts>2018-10-18 16:03:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190642-20181018140603.patch</filename>
            <type>text/plain</type>
            <size>21745</size>
            <attacher name="Wendy">yuhan_wu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZmMTZhMmRmZGNjNzNh
YTJhZjU0MjU1NDJmMGNkYjRkYmQxODM0NC4uOWZjMWJkNDI2NzA1Nzg3MmUwNDJlNDE3NWRkZDJi
MTJkNGIyNmZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTEwLTE3ICBZVUhB
TiBXVSAgPHl1aGFuX3d1QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNob3Vs
ZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG9ubHkgaW1w
bGVtZW50cyB0byBmaXJlIHRoZSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQu
CisgICAgICAgIFdlIHdpbGwgbmVlZCB0byBmaXJlIGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aGVu
IGFsbCB0cmFja3MgYXJlIGVuZGVkLgorICAgICAgICBUaGUgY2hhbmdlcyBvbiBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYSBpcyBjYXVzZWQgYnkgdGhlIHVuaWZpZWQgc291cmNlIGNv
bXBpbGF0aW9uIGVycm9yLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbAorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVHJhY2tQcml2YXRl
VmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6fk1lZGlhUmVjb3JkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6YWxsVHJhY2tzRGlkRW5kKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmlkbDoKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpyZW1vdmVPd25lcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6dHJhY2tFbmRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3Bw
OgorCiAyMDE4LTEwLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXJzIGZyb20gRnJhbWVMb2FkZXJD
bGllbnQ6OmNyZWF0ZUZyYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk0NGI1MWI3MDhhZTY3
NjczZDY3N2E5NTM5MDJjYjZjOGY2YmUzZDQuLjM1NzQ2ZTE4ZGViMWIzOGEwYWYxNDRjZTNiMjRk
MzcyMmM2MzNkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTEsNiArMTExLDcgQEAgc2V0
KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9ncmFwaGljcy9pc28iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW50eXBlIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyIgogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9tZWRpYXN0cmVhbSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9tb2NrIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwCmluZGV4IGJlYjBjNzJhMTZmZTY2ZWQ4NWE0NDhkZDdkNjk0OWE5
OTEzYTMzNzYuLjMxYmFmZGNiZjhhMDFkYmU0MTE5NTVkMWY4MjEzNWVjOGZjYTYzYjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci5jcHAKQEAgLTQxLDEwICs0MSwxOCBAQCBSZWY8TWVkaWFSZWNvcmRlcj4gTWVkaWFSZWNv
cmRlcjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmCiAgICAg
cmV0dXJuIHJlY29yZGVyOwogfQogCitzdGF0aWMgaW5saW5lIFZlY3RvcjxSZWY8TWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU+PiBjcmVhdGVUcmFja1ByaXZhdGVWZWN0b3IoY29uc3QgTWVkaWFTdHJl
YW1UcmFja1ZlY3RvciYgdHJhY2tzKQoreworICAgIHJldHVybiBXVEY6Om1hcCh0cmFja3MsIFtd
IChjb25zdCBhdXRvJiB0cmFjaykgLT4gUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiB7Cisg
ICAgICAgIHJldHVybiB0cmFjay0+cHJpdmF0ZVRyYWNrKCk7CisgICAgfSk7Cit9CisKIE1lZGlh
UmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJl
YW0+JiYgc3RyZWFtLCBPcHRpb25zJiYgb3B0aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZk
b2N1bWVudCkKICAgICAsIG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbikpCiAgICAgLCBtX3N0cmVh
bShXVEZNb3ZlKHN0cmVhbSkpCisgICAgLCBtX3ByaXZhdGUoTWVkaWFSZWNvcmRlclByaXZhdGU6
OmNyZWF0ZShjcmVhdGVUcmFja1ByaXZhdGVWZWN0b3IobV9zdHJlYW0tPmdldFRyYWNrcygpKSwg
KnRoaXMpKQogewogICAgIG1fc3RyZWFtLT5hZGRPYnNlcnZlcih0aGlzKTsKIH0KQEAgLTUyLDYg
KzYwLDcgQEAgTWVkaWFSZWNvcmRlcjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1lbnQs
IFJlZjxNZWRpYVN0cmVhbT4mJiBzdHJlYW0sIE9wdGkKIE1lZGlhUmVjb3JkZXI6On5NZWRpYVJl
Y29yZGVyKCkKIHsKICAgICBtX3N0cmVhbS0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CisgICAgbV9w
cml2YXRlLT5yZW1vdmVPd25lcigpOwogfQogCiB2b2lkIE1lZGlhUmVjb3JkZXI6OnN0b3AoKQpA
QCAtODksNiArOTgsMTYgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpkaWRBZGRPclJlbW92ZVRyYWNr
KCkKICAgICB9KTsKIH0KIAordm9pZCBNZWRpYVJlY29yZGVyOjphbGxUcmFja3NEaWRFbmQoKQor
eworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIGlmICghbV9pc0Fj
dGl2ZSB8fCBzdGF0ZSgpID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgYXV0byBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnN0b3BFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5v
KTsKKyAgICAgICAgc2V0TmV3UmVjb3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZl
LCBXVEZNb3ZlKGV2ZW50KSk7CisgICAgfSk7Cit9CisKIHZvaWQgTWVkaWFSZWNvcmRlcjo6c2V0
TmV3UmVjb3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGUgbmV3U3RhdGUsIFJlZjxFdmVudD4mJiBl
dmVudCkKIHsKICAgICBtX3N0YXRlID0gbmV3U3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAppbmRleCAwMjlmMmVhMTY2
ZGJlNGZmMmEwMjlhYWYxMmVhYWYzOGM3ODhiZGQ5Li4wMmZkNDgxMzg0ZTk0YjFlY2M4NzRkZjJl
ZjMzYjY1NjdmMTA0MGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTI3LDEzICsyNywyMCBAQAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAi
RXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIk1lZGlhU3RyZWFtLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1l
bnQ7CiAKLWNsYXNzIE1lZGlhUmVjb3JkZXIgZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
LCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyPiwgcHJpdmF0
ZSBNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIgeworY2xhc3MgTWVkaWFSZWNvcmRlciBmaW5hbAorICAg
IDogcHVibGljIEFjdGl2ZURPTU9iamVjdAorICAgICwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFS
ZWNvcmRlcj4KKyAgICAsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhCisgICAgLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNvcmRlcj4KKyAgICAsIHByaXZhdGUgTWVkaWFT
dHJlYW06Ok9ic2VydmVyCisgICAgLCBwcml2YXRlIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpPd25l
ciB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBSZWNvcmRpbmdTdGF0ZSB7IEluYWN0aXZlLCBS
ZWNvcmRpbmcsIFBhdXNlZCB9OwogICAgIApAQCAtNzIsMTEgKzc5LDE1IEBAIHByaXZhdGU6CiAg
ICAgLy8gTWVkaWFTdHJlYW06Ok9ic2VydmVyCiAgICAgdm9pZCBkaWRBZGRPclJlbW92ZVRyYWNr
KCkgZmluYWw7CiAgICAgCisgICAgLy8gTWVkaWFSZWNvcmRlclByaXZhdGU6Ok93bmVyCisgICAg
dm9pZCBhbGxUcmFja3NEaWRFbmQoKSBmaW5hbDsKKyAgICAKICAgICB2b2lkIHNjaGVkdWxlRGVm
ZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXROZXdSZWNvcmRpbmdT
dGF0ZShSZWNvcmRpbmdTdGF0ZSwgUmVmPEV2ZW50PiYmKTsKICAgICAKICAgICBPcHRpb25zIG1f
b3B0aW9uczsKICAgICBSZWY8TWVkaWFTdHJlYW0+IG1fc3RyZWFtOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIFJlY29yZGluZ1N0YXRl
IG1fc3RhdGUgeyBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUgfTsKICAgICAKICAgICBib29sIG1f
aXNBY3RpdmUgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwKaW5kZXggZDE2MzFkOTgzYzcxOTViYTQyM2Uz
ODBkMjczM2YyOGU5MTY1NDc5Ny4uNzNkNGZiNmI4YzQyZTU1MTY4MTk0ODJjZDFiNmEzYjBiZDIw
NTJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLmlkbApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIFJlY29yZGluZ1N0YXRl
IHsgImluYWN0aXZlIiwgInJlY29yZGluZyIsICJwYXVzZWQiIH07CiAgICAgLy8gcmVhZG9ubHkg
YXR0cmlidXRlIE1lZGlhU3RyZWFtIHN0cmVhbTsKICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIG1pbWVUeXBlOwogICAgIC8vIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFy
dDsKLSAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RvcDsKKyAgICBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uc3RvcDsKICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGF0
YWF2YWlsYWJsZTsKICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucGF1c2U7CiAgICAg
Ly8gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnJlc3VtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNTNm
MjE4Y2Y4MmI5NzNlNzNkYTY2NmJjNzQ3NjBmYWZmMWM5MjNkNy4uYjcxYWY3ZWQ4OTU4NDVkYjY3
ZTY0ODQyNGJkMDE5NTY3NzkyNWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NDUsNiArMTc0NSw4
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcAogCiBwbGF0Zm9ybS9tZWRpYWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3Vy
YXRpb25GYWN0b3J5LmNwcAogCitwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcAorCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdlci5j
cHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYTRhOTgwMmMy
ZjJkY2VlODYwOTY3MDlhZDZhMWY4YjNmZGRiZWM4Li41NjI2MzgxY2VmODg4YmE2NTc5YzA0ODIy
NGNjN2NmMmNkNGFiZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzUzLDYgKzEzNTMsNyBAQAogCQk0QkRBNDAwMTIxNTFC
NkY1MDBGRDY2MDQgLyogQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkRBM0ZGQjIxNTFCNkY0MDBGRDY2
MDQgLyogQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEQzQjAwQUIyMTVENjlBNzAwNzZCOTgzIC8q
IE1lZGlhUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggKi87IH07
CiAJCTREM0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEFEMjE1RDZBNjkwMDc2Qjk4
MyAvKiBCbG9iRXZlbnQuaCAqLzsgfTsKKwkJNERBMkZBNTEyMTc3RTJGNzAwNDkzRjc1IC8qIE1l
ZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0RDk4RTIyNDIxNzUzQTUwMDAzMDdCNTIgLyogTWVkaWFSZWNvcmRlclByaXZh
dGUuaCAqLzsgfTsKIAkJNERCNzEzMEQyMTZFQ0I0RDAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJF
cnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0REI3MTMwQzIxNkVDMkJEMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAq
LzsgfTsKIAkJNEUxOTU5MjIwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTkyMDBB
MzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUg
LyogTWVkaWFRdWVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEUxOTU5MjQwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzg4Myw2ICs3ODg0LDgg
QEAKIAkJNEQzQjAwQTgyMTVENjlBNjAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRp
YVJlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3Jk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEQzQjAwQUQyMTVENkE2OTAwNzZC
OTgzIC8qIEJsb2JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9i
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEQ5OEUyMjQyMTc1M0E1MDAw
MzA3QjUyIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTREOThFMjI1MjE3NTNBNTAwMDMwN0I1MiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJp
dmF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTREQjcxMzBBMjE2RUMyQkMw
MDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0REI3MTMwQzIxNkVDMkJEMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlckVycm9y
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNERCNzEzMEUyMTZFRUJBRTAw
OTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3OTU5LDYgKzE3OTYyLDE1IEBACiAJCQlwYXRoID0gbWVk
aWFyZWNvcmRlcjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTREOThFMjIz
MjE3NTNBM0EwMDMwN0I1MiAvKiBtZWRpYXJlY29yZGVyICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0RDk4RTIyNTIxNzUzQTUwMDAzMDdCNTIgLyogTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwICovLAorCQkJCTREOThFMjI0MjE3NTNBNTAwMDMwN0I1MiAv
KiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oICovLAorCQkJKTsKKwkJCXBhdGggPSBtZWRpYXJlY29y
ZGVyOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTEwMzEwNDIxQkE4QzY0
QzAwMzMyOUMwIC8qIGNsaWVudCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC0yNDc0Miw2ICsyNDc1NCw3IEBACiAJCQkJQTU5RTNDMUIxMTU4MEYzNDAwNzI5
MjhFIC8qIGlvcyAqLywKIAkJCQk2NTgyQTE0ODA5OTk5RDZDMDBCRUVCNkQgLyogbWFjICovLAog
CQkJCTlBQzZGMDIwMjExNDhGMUUwMENCREEwNiAvKiBtZWRpYWNhcGFiaWxpdGllcyAqLywKKwkJ
CQk0RDk4RTIyMzIxNzUzQTNBMDAzMDdCNTIgLyogbWVkaWFyZWNvcmRlciAqLywKIAkJCQlDOTZG
NUVCRjFCNTg3MjI2MDA5MUVBOUQgLyogbWVkaWFzZXNzaW9uICovLAogCQkJCTA3MjIxQjkyMTdD
RjBBRDQwMDg0OEU1MSAvKiBtZWRpYXN0cmVhbSAqLywKIAkJCQk1OUM3N0YxMDEwNTQ1OTFDMDA1
MDYxMDQgLyogbW9jayAqLywKQEAgLTI5Nzk4LDYgKzI5ODExLDcgQEAKIAkJCQk0NDcxNzEwRTIw
NUFGOTQ1MDAwQTExNkUgLyogTWVkaWFRdWVyeVBhcnNlckNvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTREM0IwMEFCMjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0REI3MTMwRDIxNkVDQjREMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVy
cm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTREQTJGQTUxMjE3N0UyRjcwMDQ5M0Y3NSAv
KiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzkwODQzRDAxQjE4
RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEOEFDQThGMUQyMzk3MTkwMEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAzODc2RDcgLyogTWVkaWFSZXNvdXJjZUxv
YWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA4MjI2ZWE4
NTE1MzkwZmMwM2QwMDMxZjBmZDEzOWM1ZTkyNDhjODFmLi4wM2U3M2NlOTJmZTA5NWFiZDE1ZmY2
NGVhZDA1ODgxN2ZjZGM2YmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTIzNyw2ICsy
MzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oc3RhcnQpIFwKICAgICBtYWNy
byhzdGFydGVkKSBcCiAgICAgbWFjcm8oc3RhdGVjaGFuZ2UpIFwKKyAgICBtYWNybyhzdG9wKSBc
CiAgICAgbWFjcm8oc3RvcmFnZSkgXAogICAgIG1hY3JvKHN1Ym1pdCkgXAogICAgIG1hY3JvKHN1
Y2Nlc3MpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVkZjZlMmIy
ZjlmZWMyMzcwYjk1MGZlZGI5MzJlYWY0NDRmNTM2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3Bw
CkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZT4gTWVkaWFSZWNvcmRlclByaXZhdGU6OmNyZWF0ZShWZWN0b3I8UmVmPE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlPj4mJiB0cmFja3MsIE93bmVyJiBvd25lcikKK3sKKyAgICByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPihuZXcgTWVkaWFSZWNvcmRlclBy
aXZhdGUoV1RGTW92ZSh0cmFja3MpLCBvd25lcikpOworfQorCitNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGUoVmVjdG9yPFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZT4+JiYgdHJhY2tzLCBPd25lciYgb3duZXIpCit7CisgICAgbV90cmFja3MgPSBXVEZNb3ZlKHRy
YWNrcyk7CisgICAgbV9vd25lciA9ICZvd25lcjsKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90
cmFja3MpCisgICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7Cit9CisKK01lZGlhUmVj
b3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclByaXZhdGUoKQoreworICAgIGZvciAoYXV0byYg
dHJhY2sgOiBtX3RyYWNrcykKKyAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsK
K30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYpCit7CisgICAgYm9vbCBkaWRFeGlzdEFjdGl2ZVRyYWNrID0gZmFsc2U7Cisg
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tzKSB7CisgICAgICAgIGlmICghdHJhY2stPmVu
ZGVkKCkpIHsKKyAgICAgICAgICAgIGRpZEV4aXN0QWN0aXZlVHJhY2sgPSB0cnVlOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGRpZEV4aXN0QWN0aXZlVHJh
Y2sgfHwgbV9vd25lciA9PSBudWxscHRyKQorICAgICAgICByZXR1cm47CisgICAgbV9vd25lci0+
YWxsVHJhY2tzRGlkRW5kKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjliYWZiNjAyMWI1YWFlMWYwM2RmM2E1ZDQ0MWE5OTFhN2QyMjQyYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByaXZhdGUuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFSZWNvcmRlclBy
aXZhdGUgZmluYWwgOiBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7
CitwdWJsaWM6CisgICAgY2xhc3MgT3duZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVh
bCB+T3duZXIoKSA9IGRlZmF1bHQ7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhbGxUcmFja3NEaWRF
bmQoKSA9IDA7CisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UmVjb3JkZXJQcml2YXRlPiBjcmVhdGUoVmVjdG9yPFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZT4+JiYsIE93bmVyJik7CisKKyAgICB2b2lkIHJlbW92ZU93bmVyKCkgeyBtX293bmVyID0gbnVs
bHB0cjsgfQorICAgIH5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpOworCitwcml2YXRlOgorICAgIE1l
ZGlhUmVjb3JkZXJQcml2YXRlKFZlY3RvcjxSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiYm
LCBPd25lciYpOworICAgIAorICAgIC8vIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZl
cgorICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsOwor
ICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5h
bCB7IH0KKyAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikgZmluYWwgeyB9CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgZmluYWwgeyB9CisgICAgCisgICAgT3duZXIqIG1fb3duZXI7CisgICAg
VmVjdG9yPFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJhY2tzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4
IDcwMmI3MzMzOWE3NGYyY2Q2NjEwMDIzYzM2OGVhYmFhMmFkNDg3YWIuLjE1ZWU3NTg0NDQyYTk2
ZTE3ZDdmZjQxYjViNWY3NmE2MWUwZDcxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
LmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIgogCiBBTExPV19VTlVTRURf
UEFSQU1FVEVSU19CRUdJTgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA2NDQ5
NWMyMTFlNTU2MjdlZTM5ZDg3MzgzN2FhNTNkMTk2NmI2ODIwLi5iNGUwODBmYTlkMTAwMTM4MDYx
MDVhMmFlMWJiMjI1NTFiNTYxYjMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxOC0xMC0xNyAgWVVIQU4gV1UgIDx5dWhhbl93dUBhcHBsZS5jb20+
CisKKyAgICAgICAgTWVkaWFSZWNvcmRlciBzaG91bGQgZmlyZSBhIHN0b3AgZXZlbnQgd2hlbiBh
bGwgdHJhY2tzIGFyZSBlbmRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkwNjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRp
YVJlY29yZGVyLXN0b3AtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbDogQWRk
ZWQuCisKIDIwMTgtMTAtMTUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzcwNTQuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJl
Y29yZGVyLXN0b3AtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMjQ2ZjY4ZmFjYzY5YTAxYTI1
OTVmZjNiOTJmNWMwOTYwNTk4MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNv
cmRlci1zdG9wLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBNZWRpYVJlY29y
ZGVyIHdpbGwgc3RvcCByZWNvcmRpbmcgYW5kIGZpcmUgYSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRy
YWNrcyBhcmUgZW5kZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3Au
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2FhMDIx
OWM5YWMwYjA4OGFiZTMwYWJjOWRhMDA4MGQxNzU5NWM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVj
b3JkL01lZGlhUmVjb3JkZXItc3RvcC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+TWVkaWFSZWNvcmRlciBTdG9wPC90aXRs
ZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRp
YWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXIuaHRtbCNtZWRpYXJlY29yZGVyIj4KKyAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8Y2FudmFzIGlkPSJjYW52YXMiPgorPC9jYW52YXM+Cis8c2NyaXB0Pgor
ICAgIGZ1bmN0aW9uIGNyZWF0ZVZpZGVvU3RyZWFtKCkgeworICAgICAgICBsZXQgY2FudmFzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgICAgICByZXR1cm4gY2FudmFz
LmNhcHR1cmVTdHJlYW0oKTsKKyAgICB9CisKKyAgICBhc3luY190ZXN0KHQgPT4geworICAgICAg
ICBsZXQgdmlkZW8gPSBjcmVhdGVWaWRlb1N0cmVhbSgpOworICAgICAgICBsZXQgcmVjb3JkZXIg
PSBuZXcgTWVkaWFSZWNvcmRlcih2aWRlbyk7CisgICAgICAgIHJlY29yZGVyLm9uc3RvcCA9IHQu
c3RlcF9mdW5jKGVycm9yRXZlbnQgPT4geworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlcnJv
ckV2ZW50LnR5cGUsICdzdG9wJywgJ3RoZSBlcnJvciB0eXBlIHNob3VsZCBiZSBzdG9wJyk7Cisg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShlcnJvckV2ZW50LmlzVHJ1c3RlZCwgJ2lzVHJ1c3RlZCBz
aG91bGQgYmUgdHJ1ZSB3aGVuIHRoZSBldmVudCBpcyBjcmVhdGVkIGJ5IEMrKycpOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmRlci5zdGF0ZSwgImluYWN0aXZlIiwgIk1lZGlhUmVj
b3JkZXIgaGFzIGJlZW4gc3RvcHBlZCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkIik7CisgICAg
ICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlk
ZW8uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgsIDEsICJ2aWRlbyBtZWRpYXN0cmVhbSBzdGFydHMg
d2l0aCBvbmUgdHJhY2siKTsKKyAgICAgICAgcmVjb3JkZXIuc3RhcnQoKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZWNvcmRlci5zdGF0ZSwgInJlY29yZGluZyIsICJNZWRpYVJlY29yZGVyIGhh
cyBiZWVuIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5Iik7CisgICAgICAgIHZpZGVvLmdldFZpZGVvVHJh
Y2tzKClbMF0uc3RvcCgpOworICAgICAgICB0LnN0ZXBfdGltZW91dCgoKSA9PiB7CisgICAgICAg
ICAgICBhc3NlcnRfdW5yZWFjaGVkKCJzdG9wIGV2ZW50IGlzIG5vdCBmaXJlZCBhZnRlciAyIHNl
Y29uZHMiKTsKKyAgICAgICAgfSwgMjAwMCk7CisgICAgfSwgIk1lZGlhUmVjb3JkZXIgd2lsbCBz
dG9wIHJlY29yZGluZyBhbmQgZmlyZSBhIHN0b3AgZXZlbnQgd2hlbiBhbGwgdHJhY2tzIGFyZSBl
bmRlZCIsIHsgdGltZW91dDogMTAwMDAgfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352743</attachid>
            <date>2018-10-18 16:03:53 -0700</date>
            <delta_ts>2018-10-18 16:10:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190642-20181018160352.patch</filename>
            <type>text/plain</type>
            <size>21347</size>
            <attacher name="Wendy">yuhan_wu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZmMTZhMmRmZGNjNzNh
YTJhZjU0MjU1NDJmMGNkYjRkYmQxODM0NC4uMzE2ZTcyNjVmNTg2YWFiMmFmMDdmMDA0ZTY1MDc2
Yjc0NDZlNGU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTEwLTE3ICBZVUhB
TiBXVSAgPHl1aGFuX3d1QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNob3Vs
ZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG9ubHkgaW1w
bGVtZW50cyB0byBmaXJlIHRoZSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQu
CisgICAgICAgIFdlIHdpbGwgbmVlZCB0byBmaXJlIGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aGVu
IGFsbCB0cmFja3MgYXJlIGVuZGVkLgorICAgICAgICBUaGUgY2hhbmdlcyBvbiBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYSBpcyBjYXVzZWQgYnkgdGhlIHVuaWZpZWQgc291cmNlIGNv
bXBpbGF0aW9uIGVycm9yLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbAorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVHJhY2tQcml2YXRl
VmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6fk1lZGlhUmVjb3JkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6YWxsVHJhY2tzRGlkRW5kKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmlkbDoKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJl
Y29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjp0cmFja0VuZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5j
cHA6CisKIDIwMTgtMTAtMTUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIHBhcmFtZXRlcnMgZnJvbSBGcmFtZUxvYWRl
ckNsaWVudDo6Y3JlYXRlRnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTQ0YjUxYjcwOGFl
Njc2NzNkNjc3YTk1MzkwMmNiNmM4ZjZiZTNkNC4uMzU3NDZlMThkZWIxYjM4YTBhZjE0NGNlM2Iy
NGQzNzIyYzYzM2Q0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExMSw2ICsxMTEsNyBAQCBz
ZXQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2lzbyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbnR5cGUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL21lZGlhc3RyZWFtIgogICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL21vY2siCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggYmViMGM3MmExNmZlNjZlZDg1YTQ0OGRkN2Q2OTQ5
YTk5MTNhMzM3Ni4uZjgyYzk1MDU1MWEyNzllMmI4OWJhNDgyMGFlMjljZDE5YzY0YzVhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyLmNwcApAQCAtNDEsMTAgKzQxLDE4IEBAIFJlZjxNZWRpYVJlY29yZGVyPiBNZWRpYVJl
Y29yZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYKICAg
ICByZXR1cm4gcmVjb3JkZXI7CiB9CiAKK3N0YXRpYyBpbmxpbmUgVmVjdG9yPFJlZjxNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZT4+IGNyZWF0ZVRyYWNrUHJpdmF0ZVZlY3Rvcihjb25zdCBNZWRpYVN0
cmVhbVRyYWNrVmVjdG9yJiB0cmFja3MpCit7CisgICAgcmV0dXJuIFdURjo6bWFwKHRyYWNrcywg
W10gKGNvbnN0IGF1dG8mIHRyYWNrKSAtPiBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IHsK
KyAgICAgICAgcmV0dXJuIHRyYWNrLT5wcml2YXRlVHJhY2soKTsKKyAgICB9KTsKK30KKwogTWVk
aWFSZWNvcmRlcjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0
cmVhbT4mJiBzdHJlYW0sIE9wdGlvbnMmJiBvcHRpb24pCiAgICAgOiBBY3RpdmVET01PYmplY3Qo
JmRvY3VtZW50KQogICAgICwgbV9vcHRpb25zKFdURk1vdmUob3B0aW9uKSkKICAgICAsIG1fc3Ry
ZWFtKFdURk1vdmUoc3RyZWFtKSkKKyAgICAsIG1fcHJpdmF0ZShNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6Y3JlYXRlKCp0aGlzLCBjcmVhdGVUcmFja1ByaXZhdGVWZWN0b3IobV9zdHJlYW0tPmdldFRy
YWNrcygpKSkpCiB7CiAgICAgbV9zdHJlYW0tPmFkZE9ic2VydmVyKHRoaXMpOwogfQpAQCAtODks
NiArOTcsMTcgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpkaWRBZGRPclJlbW92ZVRyYWNrKCkKICAg
ICB9KTsKIH0KIAordm9pZCBNZWRpYVJlY29yZGVyOjphbGxUcmFja3NEaWRFbmQoKQoreworICAg
IHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIGlmICghbV9pc0FjdGl2ZSB8
fCBzdGF0ZSgpID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgLy8gRklYTUU6IEFkZCBhIGRhdGFhdmFpbGFibGUgZXZlbnQKKyAgICAgICAg
YXV0byBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3BFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKTsKKyAgICAgICAgc2V0TmV3
UmVjb3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlLCBXVEZNb3ZlKGV2ZW50KSk7
CisgICAgfSk7Cit9CisKIHZvaWQgTWVkaWFSZWNvcmRlcjo6c2V0TmV3UmVjb3JkaW5nU3RhdGUo
UmVjb3JkaW5nU3RhdGUgbmV3U3RhdGUsIFJlZjxFdmVudD4mJiBldmVudCkKIHsKICAgICBtX3N0
YXRlID0gbmV3U3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuaAppbmRleCAwMjlmMmVhMTY2ZGJlNGZmMmEwMjlhYWYxMmVh
YWYzOGM3ODhiZGQ5Li4wMmZkNDgxMzg0ZTk0YjFlY2M4NzRkZjJlZjMzYjY1NjdmMTA0MGM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyLmgKQEAgLTI3LDEzICsyNywyMCBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAj
aW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNp
bmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiAKLWNsYXNzIE1lZGlh
UmVjb3JkZXIgZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYVJlY29yZGVyPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyPiwgcHJpdmF0ZSBNZWRpYVN0cmVhbTo6T2Jz
ZXJ2ZXIgeworY2xhc3MgTWVkaWFSZWNvcmRlciBmaW5hbAorICAgIDogcHVibGljIEFjdGl2ZURP
TU9iamVjdAorICAgICwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFSZWNvcmRlcj4KKyAgICAsIHB1
YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8TWVkaWFSZWNvcmRlcj4KKyAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW06Ok9ic2VydmVyCisg
ICAgLCBwcml2YXRlIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpPd25lciB7CiBwdWJsaWM6CiAgICAg
ZW51bSBjbGFzcyBSZWNvcmRpbmdTdGF0ZSB7IEluYWN0aXZlLCBSZWNvcmRpbmcsIFBhdXNlZCB9
OwogICAgIApAQCAtNzIsMTEgKzc5LDE1IEBAIHByaXZhdGU6CiAgICAgLy8gTWVkaWFTdHJlYW06
Ok9ic2VydmVyCiAgICAgdm9pZCBkaWRBZGRPclJlbW92ZVRyYWNrKCkgZmluYWw7CiAgICAgCisg
ICAgLy8gTWVkaWFSZWNvcmRlclByaXZhdGU6Ok93bmVyCisgICAgdm9pZCBhbGxUcmFja3NEaWRF
bmQoKSBmaW5hbDsKKyAgICAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9u
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXROZXdSZWNvcmRpbmdTdGF0ZShSZWNvcmRpbmdTdGF0
ZSwgUmVmPEV2ZW50PiYmKTsKICAgICAKICAgICBPcHRpb25zIG1fb3B0aW9uczsKICAgICBSZWY8
TWVkaWFTdHJlYW0+IG1fc3RyZWFtOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIFJlY29yZGluZ1N0YXRlIG1fc3RhdGUgeyBSZWNvcmRp
bmdTdGF0ZTo6SW5hY3RpdmUgfTsKICAgICAKICAgICBib29sIG1faXNBY3RpdmUgeyB0cnVlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlci5pZGwKaW5kZXggZDE2MzFkOTgzYzcxOTViYTQyM2UzODBkMjczM2YyOGU5MTY1NDc5
Ny4uNzNkNGZiNmI4YzQyZTU1MTY4MTk0ODJjZDFiNmEzYjBiZDIwNTJlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmlk
bApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIFJlY29yZGluZ1N0YXRlIHsgImluYWN0aXZlIiwgInJl
Y29yZGluZyIsICJwYXVzZWQiIH07CiAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU3Ry
ZWFtIHN0cmVhbTsKICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1pbWVUeXBl
OwogICAgIC8vIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdGFydDsKLSAgICAvLyBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9uc3RvcDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3Rv
cDsKICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZGF0YWF2YWlsYWJsZTsKICAgICAv
LyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucGF1c2U7CiAgICAgLy8gYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbnJlc3VtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNTNmMjE4Y2Y4MmI5NzNlNzNkYTY2
NmJjNzQ3NjBmYWZmMWM5MjNkNy4uYjcxYWY3ZWQ4OTU4NDVkYjY3ZTY0ODQyNGJkMDE5NTY3Nzky
NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3NDUsNiArMTc0NSw4IEBAIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAogCiBwbGF0Zm9y
bS9tZWRpYWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmNwcAog
CitwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorCiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKIHBsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhQ29uc3RyYWludHMuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVu
ZHBvaW50Q29uZmlndXJhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYTRhOTgwMmMyZjJkY2VlODYwOTY3MDlhZDZh
MWY4YjNmZGRiZWM4Li41NjI2MzgxY2VmODg4YmE2NTc5YzA0ODIyNGNjN2NmMmNkNGFiZjY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMzUzLDYgKzEzNTMsNyBAQAogCQk0QkRBNDAwMTIxNTFCNkY1MDBGRDY2MDQgLyogQ1NT
UmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QkRBM0ZGQjIxNTFCNkY0MDBGRDY2MDQgLyogQ1NTUmVnaXN0ZXJl
ZEN1c3RvbVByb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNEQzQjAwQUIyMTVENjlBNzAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEE5MjE1
RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggKi87IH07CiAJCTREM0IwMEFGMjE1RDZB
NjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDREM0IwMEFEMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCAq
LzsgfTsKKwkJNERBMkZBNTEyMTc3RTJGNzAwNDkzRjc1IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDk4RTIy
NDIxNzUzQTUwMDAzMDdCNTIgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLzsgfTsKIAkJNERC
NzEzMEQyMTZFQ0I0RDAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0REI3MTMwQzIxNkVDMkJE
MDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAqLzsgfTsKIAkJNEUxOTU5MjIw
QTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTkyMDBBMzlEQUJBMDAyMjBGRTUgLyog
TWVkaWFGZWF0dXJlTmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjQwQTM5
REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzg4Myw2ICs3ODg0LDggQEAKIAkJNEQzQjAwQTgyMTVE
NjlBNjAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVjb3JkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEQzQjAwQUQyMTVENkE2OTAwNzZCOTgzIC8qIEJsb2JFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEQ5OEUyMjQyMTc1M0E1MDAwMzA3QjUyIC8qIE1lZGlhUmVj
b3JkZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVj
b3JkZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTREOThFMjI1MjE3
NTNBNTAwMDMwN0I1MiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTREQjcxMzBBMjE2RUMyQkMwMDk2QTRERCAvKiBNZWRpYVJl
Y29yZGVyRXJyb3JFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFSZWNvcmRl
ckVycm9yRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0REI3MTMwQzIx
NkVDMkJEMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNERCNzEzMEUyMTZFRUJBRTAwOTZBNEREIC8qIE1lZGlhUmVj
b3JkZXJFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE3OTU5LDYgKzE3OTYyLDE1IEBACiAJCQlwYXRoID0gbWVkaWFyZWNvcmRlcjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTREOThFMjIzMjE3NTNBM0EwMDMwN0I1MiAv
KiBtZWRpYXJlY29yZGVyICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQk0RDk4RTIyNTIxNzUzQTUwMDAzMDdCNTIgLyogTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwICovLAorCQkJCTREOThFMjI0MjE3NTNBNTAwMDMwN0I1MiAvKiBNZWRpYVJlY29yZGVyUHJp
dmF0ZS5oICovLAorCQkJKTsKKwkJCXBhdGggPSBtZWRpYXJlY29yZGVyOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTEwMzEwNDIxQkE4QzY0QzAwMzMyOUMwIC8qIGNsaWVu
dCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNDc0Miw2
ICsyNDc1NCw3IEBACiAJCQkJQTU5RTNDMUIxMTU4MEYzNDAwNzI5MjhFIC8qIGlvcyAqLywKIAkJ
CQk2NTgyQTE0ODA5OTk5RDZDMDBCRUVCNkQgLyogbWFjICovLAogCQkJCTlBQzZGMDIwMjExNDhG
MUUwMENCREEwNiAvKiBtZWRpYWNhcGFiaWxpdGllcyAqLywKKwkJCQk0RDk4RTIyMzIxNzUzQTNB
MDAzMDdCNTIgLyogbWVkaWFyZWNvcmRlciAqLywKIAkJCQlDOTZGNUVCRjFCNTg3MjI2MDA5MUVB
OUQgLyogbWVkaWFzZXNzaW9uICovLAogCQkJCTA3MjIxQjkyMTdDRjBBRDQwMDg0OEU1MSAvKiBt
ZWRpYXN0cmVhbSAqLywKIAkJCQk1OUM3N0YxMDEwNTQ1OTFDMDA1MDYxMDQgLyogbW9jayAqLywK
QEAgLTI5Nzk4LDYgKzI5ODExLDcgQEAKIAkJCQk0NDcxNzEwRTIwNUFGOTQ1MDAwQTExNkUgLyog
TWVkaWFRdWVyeVBhcnNlckNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTREM0IwMEFCMjE1
RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0REI3
MTMwRDIxNkVDQjREMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTREQTJGQTUxMjE3N0UyRjcwMDQ5M0Y3NSAvKiBNZWRpYVJlY29yZGVyUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzkwODQzRDAxQjE4RTQ3RDAwQjY4NTY0IC8qIE1l
ZGlhUmVtb3RlQ29udHJvbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEFDQThGMUQyMzk3MTkw
MEVDQzU5RSAvKiBNZWRpYVJlbW90ZVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUVG
Q0Q3QTE5REIzMUY3MDAzODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA4MjI2ZWE4NTE1MzkwZmMwM2QwMDMxZjBm
ZDEzOWM1ZTkyNDhjODFmLi4wM2U3M2NlOTJmZTA5NWFiZDE1ZmY2NGVhZDA1ODgxN2ZjZGM2YmMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTIzNyw2ICsyMzcsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oc3RhcnQpIFwKICAgICBtYWNybyhzdGFydGVkKSBcCiAgICAg
bWFjcm8oc3RhdGVjaGFuZ2UpIFwKKyAgICBtYWNybyhzdG9wKSBcCiAgICAgbWFjcm8oc3RvcmFn
ZSkgXAogICAgIG1hY3JvKHN1Ym1pdCkgXAogICAgIG1hY3JvKHN1Y2Nlc3MpIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
aXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyUHJpdmF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U2NDE5NGJiYTgwM2RkNzllMWRhOTUxMzQ3
NGU0NDA0ZTRiZDM5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC0wLDAgKzEsNjMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNv
cmRlclByaXZhdGU6OmNyZWF0ZShPd25lciYgb3duZXIsIFZlY3RvcjxSZWY8TWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU+PiYmIHRyYWNrcykKK3sKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUmVjb3JkZXJQcml2YXRlPihuZXcgTWVkaWFSZWNvcmRlclByaXZhdGUob3duZXIsIFdURk1v
dmUodHJhY2tzKSkpOworfQorCitNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVkaWFSZWNvcmRlclBy
aXZhdGUoT3duZXImIG93bmVyLCBWZWN0b3I8UmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4m
JiB0cmFja3MpCisgICAgOiBtX293bmVyKG93bmVyKQoreworICAgIG1fdHJhY2tzID0gV1RGTW92
ZSh0cmFja3MpOworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrcykKKyAgICAgICAgdHJh
Y2stPmFkZE9ic2VydmVyKCp0aGlzKTsKK30KKworTWVkaWFSZWNvcmRlclByaXZhdGU6On5NZWRp
YVJlY29yZGVyUHJpdmF0ZSgpCit7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tzKQor
ICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAg
ICBhdXRvIHBvc2l0aW9uID0gbV90cmFja3MuZmluZE1hdGNoaW5nKFsmXShhdXRvJiB0cmFjaykg
eworICAgICAgICByZXR1cm4gIXRyYWNrLT5lbmRlZCgpOworICAgIH0pOworICAgIGlmIChwb3Np
dGlvbiAhPSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fb3duZXIuYWxsVHJhY2tz
RGlkRW5kKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzEwYjQw
NGIyZDkyNDdiM2U4Y2QzOWQyZmQ1MDRhZTMzNWYyNTQwYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUu
aApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgZmlu
YWwgOiBwcml2YXRlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CitwdWJsaWM6
CisgICAgY2xhc3MgT3duZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+T3duZXIo
KSA9IGRlZmF1bHQ7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhbGxUcmFja3NEaWRFbmQoKSA9IDA7
CisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQ
cml2YXRlPiBjcmVhdGUoT3duZXImLCBWZWN0b3I8UmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Pj4mJik7CisKKyAgICB+TWVkaWFSZWNvcmRlclByaXZhdGUoKTsKKworcHJpdmF0ZToKKyAgICBN
ZWRpYVJlY29yZGVyUHJpdmF0ZShPd25lciYsIFZlY3RvcjxSZWY8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+PiYmKTsKKyAgICAKKyAgICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2
ZXIKKyAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbDsK
KyAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmlu
YWwgeyB9CisgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQorICAgIAorICAgIE93bmVyJiBtX293bmVyOworICAg
IFZlY3RvcjxSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiBtX3RyYWNrczsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAppbmRl
eCA3MDJiNzMzMzlhNzRmMmNkNjYxMDAyM2MzNjhlYWJhYTJhZDQ4N2FiLi4xNWVlNzU4NDQ0MmE5
NmUxN2Q3ZmY0MWI1YjVmNzZhNjFlMGQ3MWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2Eu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YS5oIgotI2luY2x1ZGUgIlJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCIKIAogQUxMT1dfVU5VU0VE
X1BBUkFNRVRFUlNfQkVHSU4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjQ0
OTVjMjExZTU1NjI3ZWUzOWQ4NzM4MzdhYTUzZDE5NjZiNjgyMC4uYjRlMDgwZmE5ZDEwMDEzODA2
MTA1YTJhZTFiYjIyNTUxYjU2MWIzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTgtMTAtMTcgIFlVSEFOIFdVICA8eXVoYW5fd3VAYXBwbGUuY29t
PgorCisgICAgICAgIE1lZGlhUmVjb3JkZXIgc2hvdWxkIGZpcmUgYSBzdG9wIGV2ZW50IHdoZW4g
YWxsIHRyYWNrcyBhcmUgZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MDY0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVk
aWFSZWNvcmRlci1zdG9wLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLmh0bWw6IEFk
ZGVkLgorCiAyMDE4LTEwLTE1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjM3MDU0LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFS
ZWNvcmRlci1zdG9wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjI0NmY2OGZhY2M2OWEwMWEy
NTk1ZmYzYjkyZjVjMDk2MDU5ODBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVj
b3JkZXItc3RvcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgTWVkaWFSZWNv
cmRlciB3aWxsIHN0b3AgcmVjb3JkaW5nIGFuZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0
cmFja3MgYXJlIGVuZGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9w
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
Y2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNhYTAy
MTljOWFjMGIwODhhYmUzMGFiYzlkYTAwODBkMTc1OTVjOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJl
Y29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPk1lZGlhUmVjb3JkZXIgU3RvcDwvdGl0
bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vbWVk
aWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLmh0bWwjbWVkaWFyZWNvcmRlciI+CisgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIj4KKzwvY2FudmFzPgorPHNjcmlwdD4K
KyAgICBmdW5jdGlvbiBjcmVhdGVWaWRlb1N0cmVhbSgpIHsKKyAgICAgICAgbGV0IGNhbnZhcyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICAgICAgcmV0dXJuIGNhbnZh
cy5jYXB0dXJlU3RyZWFtKCk7CisgICAgfQorCisgICAgYXN5bmNfdGVzdCh0ID0+IHsKKyAgICAg
ICAgbGV0IHZpZGVvID0gY3JlYXRlVmlkZW9TdHJlYW0oKTsKKyAgICAgICAgbGV0IHJlY29yZGVy
ID0gbmV3IE1lZGlhUmVjb3JkZXIodmlkZW8pOworICAgICAgICByZWNvcmRlci5vbnN0b3AgPSB0
LnN0ZXBfZnVuYyhlcnJvckV2ZW50ID0+IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXJy
b3JFdmVudC50eXBlLCAnc3RvcCcsICd0aGUgZXJyb3IgdHlwZSBzaG91bGQgYmUgc3RvcCcpOwor
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoZXJyb3JFdmVudC5pc1RydXN0ZWQsICdpc1RydXN0ZWQg
c2hvdWxkIGJlIHRydWUgd2hlbiB0aGUgZXZlbnQgaXMgY3JlYXRlZCBieSBDKysnKTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkZXIuc3RhdGUsICJpbmFjdGl2ZSIsICJNZWRpYVJl
Y29yZGVyIGhhcyBiZWVuIHN0b3BwZWQgd2hlbiBhbGwgdHJhY2tzIGFyZSBlbmRlZCIpOworICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRfZXF1YWxzKHZp
ZGVvLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoLCAxLCAidmlkZW8gbWVkaWFzdHJlYW0gc3RhcnRz
IHdpdGggb25lIHRyYWNrIik7CisgICAgICAgIHJlY29yZGVyLnN0YXJ0KCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMocmVjb3JkZXIuc3RhdGUsICJyZWNvcmRpbmciLCAiTWVkaWFSZWNvcmRlciBo
YXMgYmVlbiBzdGFydGVkIHN1Y2Nlc3NmdWxseSIpOworICAgICAgICB2aWRlby5nZXRWaWRlb1Ry
YWNrcygpWzBdLnN0b3AoKTsKKyAgICAgICAgdC5zdGVwX3RpbWVvdXQoKCkgPT4geworICAgICAg
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgic3RvcCBldmVudCBpcyBub3QgZmlyZWQgYWZ0ZXIgMiBz
ZWNvbmRzIik7CisgICAgICAgIH0sIDIwMDApOworICAgIH0sICJNZWRpYVJlY29yZGVyIHdpbGwg
c3RvcCByZWNvcmRpbmcgYW5kIGZpcmUgYSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUg
ZW5kZWQiLCB7IHRpbWVvdXQ6IDEwMDAwIH0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352744</attachid>
            <date>2018-10-18 16:10:04 -0700</date>
            <delta_ts>2018-10-19 09:40:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190642-20181018161003.patch</filename>
            <type>text/plain</type>
            <size>20573</size>
            <attacher name="Wendy">yuhan_wu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZmMTZhMmRmZGNjNzNh
YTJhZjU0MjU1NDJmMGNkYjRkYmQxODM0NC4uNWI5Y2JjNmM2ZTg3ZTM4Yjg2MGM1YmVmOGY0ZGE1
ZjIwOWFiMzk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTEwLTE3ICBZVUhB
TiBXVSAgPHl1aGFuX3d1QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNob3Vs
ZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG9ubHkgaW1w
bGVtZW50cyB0byBmaXJlIHRoZSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQu
CisgICAgICAgIFdlIHdpbGwgbmVlZCB0byBmaXJlIGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aGVu
IGFsbCB0cmFja3MgYXJlIGVuZGVkLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRt
bAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVHJhY2tQ
cml2YXRlVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVj
b3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6fk1lZGlhUmVjb3JkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6YWxsVHJhY2tzRGlkRW5kKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmlkbDoKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcml2YXRlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZTo6fk1lZGlhUmVjb3JkZXJQcml2YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjp0cmFja0VuZGVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6IEFkZGVkLgorCiAyMDE4
LTEwLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXJzIGZyb20gRnJhbWVMb2FkZXJDbGllbnQ6OmNy
ZWF0ZUZyYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk0NGI1MWI3MDhhZTY3NjczZDY3N2E5
NTM5MDJjYjZjOGY2YmUzZDQuLjM1NzQ2ZTE4ZGViMWIzOGEwYWYxNDRjZTNiMjRkMzcyMmM2MzNk
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTEsNiArMTExLDcgQEAgc2V0KFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGlj
cy9pc28iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlIgog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zIgorICAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyIgogICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9tZWRpYXN0cmVhbSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9tb2NrIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuY3BwCmluZGV4IGJlYjBjNzJhMTZmZTY2ZWQ4NWE0NDhkZDdkNjk0OWE5OTEzYTMzNzYu
LmY4MmM5NTA1NTFhMjc5ZTJiODliYTQ4MjBhZTI5Y2QxOWM2NGM1YTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAK
QEAgLTQxLDEwICs0MSwxOCBAQCBSZWY8TWVkaWFSZWNvcmRlcj4gTWVkaWFSZWNvcmRlcjo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmCiAgICAgcmV0dXJuIHJl
Y29yZGVyOwogfQogCitzdGF0aWMgaW5saW5lIFZlY3RvcjxSZWY8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+PiBjcmVhdGVUcmFja1ByaXZhdGVWZWN0b3IoY29uc3QgTWVkaWFTdHJlYW1UcmFja1Zl
Y3RvciYgdHJhY2tzKQoreworICAgIHJldHVybiBXVEY6Om1hcCh0cmFja3MsIFtdIChjb25zdCBh
dXRvJiB0cmFjaykgLT4gUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiB7CisgICAgICAgIHJl
dHVybiB0cmFjay0+cHJpdmF0ZVRyYWNrKCk7CisgICAgfSk7Cit9CisKIE1lZGlhUmVjb3JkZXI6
Ok1lZGlhUmVjb3JkZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3Ry
ZWFtLCBPcHRpb25zJiYgb3B0aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkK
ICAgICAsIG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbikpCiAgICAgLCBtX3N0cmVhbShXVEZNb3Zl
KHN0cmVhbSkpCisgICAgLCBtX3ByaXZhdGUoTWVkaWFSZWNvcmRlclByaXZhdGU6OmNyZWF0ZSgq
dGhpcywgY3JlYXRlVHJhY2tQcml2YXRlVmVjdG9yKG1fc3RyZWFtLT5nZXRUcmFja3MoKSkpKQog
ewogICAgIG1fc3RyZWFtLT5hZGRPYnNlcnZlcih0aGlzKTsKIH0KQEAgLTg5LDYgKzk3LDE3IEBA
IHZvaWQgTWVkaWFSZWNvcmRlcjo6ZGlkQWRkT3JSZW1vdmVUcmFjaygpCiAgICAgfSk7CiB9CiAK
K3ZvaWQgTWVkaWFSZWNvcmRlcjo6YWxsVHJhY2tzRGlkRW5kKCkKK3sKKyAgICBzY2hlZHVsZURl
ZmVycmVkVGFzayhbdGhpc10geworICAgICAgICBpZiAoIW1faXNBY3RpdmUgfHwgc3RhdGUoKSA9
PSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IC8vIEZJWE1FOiBBZGQgYSBkYXRhYXZhaWxhYmxlIGV2ZW50CisgICAgICAgIGF1dG8gZXZlbnQg
PSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9wRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObyk7CisgICAgICAgIHNldE5ld1JlY29yZGluZ1N0
YXRlKFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSwgV1RGTW92ZShldmVudCkpOworICAgIH0pOwor
fQorCiB2b2lkIE1lZGlhUmVjb3JkZXI6OnNldE5ld1JlY29yZGluZ1N0YXRlKFJlY29yZGluZ1N0
YXRlIG5ld1N0YXRlLCBSZWY8RXZlbnQ+JiYgZXZlbnQpCiB7CiAgICAgbV9zdGF0ZSA9IG5ld1N0
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyLmgKaW5kZXggMDI5ZjJlYTE2NmRiZTRmZjJhMDI5YWFmMTJlYWFmMzhjNzg4YmRk
OS4uMDJmZDQ4MTM4NGU5NGIxZWNjODc0ZGYyZWYzM2I2NTY3ZjEwNDBjNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCkBA
IC0yNywxMyArMjcsMjAgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiTWVk
aWFSZWNvcmRlclByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogCi1jbGFzcyBNZWRpYVJlY29yZGVyIGZp
bmFsIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFSZWNv
cmRlcj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8TWVkaWFSZWNvcmRlcj4sIHByaXZhdGUgTWVkaWFTdHJlYW06Ok9ic2VydmVyIHsKK2Ns
YXNzIE1lZGlhUmVjb3JkZXIgZmluYWwKKyAgICA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QKKyAg
ICAsIHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUmVjb3JkZXI+CisgICAgLCBwdWJsaWMgRXZlbnRU
YXJnZXRXaXRoSW5saW5lRGF0YQorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVj
b3JkZXI+CisgICAgLCBwcml2YXRlIE1lZGlhU3RyZWFtOjpPYnNlcnZlcgorICAgICwgcHJpdmF0
ZSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6T3duZXIgewogcHVibGljOgogICAgIGVudW0gY2xhc3Mg
UmVjb3JkaW5nU3RhdGUgeyBJbmFjdGl2ZSwgUmVjb3JkaW5nLCBQYXVzZWQgfTsKICAgICAKQEAg
LTcyLDExICs3OSwxNSBAQCBwcml2YXRlOgogICAgIC8vIE1lZGlhU3RyZWFtOjpPYnNlcnZlcgog
ICAgIHZvaWQgZGlkQWRkT3JSZW1vdmVUcmFjaygpIGZpbmFsOwogICAgIAorICAgIC8vIE1lZGlh
UmVjb3JkZXJQcml2YXRlOjpPd25lcgorICAgIHZvaWQgYWxsVHJhY2tzRGlkRW5kKCkgZmluYWw7
CisgICAgCiAgICAgdm9pZCBzY2hlZHVsZURlZmVycmVkVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgc2V0TmV3UmVjb3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGUsIFJlZjxFdmVu
dD4mJik7CiAgICAgCiAgICAgT3B0aW9ucyBtX29wdGlvbnM7CiAgICAgUmVmPE1lZGlhU3RyZWFt
PiBtX3N0cmVhbTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IG1f
cHJpdmF0ZTsKICAgICBSZWNvcmRpbmdTdGF0ZSBtX3N0YXRlIHsgUmVjb3JkaW5nU3RhdGU6Oklu
YWN0aXZlIH07CiAgICAgCiAgICAgYm9vbCBtX2lzQWN0aXZlIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaWRs
CmluZGV4IGQxNjMxZDk4M2M3MTk1YmE0MjNlMzgwZDI3MzNmMjhlOTE2NTQ3OTcuLjczZDRmYjZi
OGM0MmU1NTE2ODE5NDgyY2QxYjZhM2IwYmQyMDUyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwKQEAgLTM3LDcg
KzM3LDcgQEAgZW51bSBSZWNvcmRpbmdTdGF0ZSB7ICJpbmFjdGl2ZSIsICJyZWNvcmRpbmciLCAi
cGF1c2VkIiB9OwogICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVN0cmVhbSBzdHJlYW07
CiAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtaW1lVHlwZTsKICAgICAvLyBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RhcnQ7Ci0gICAgLy8gYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbnN0b3A7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0b3A7CiAgICAgLy8g
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmRhdGFhdmFpbGFibGU7CiAgICAgLy8gYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbnBhdXNlOwogICAgIC8vIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25y
ZXN1bWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDUzZjIxOGNmODJiOTczZTczZGE2NjZiYzc0NzYwZmFm
ZjFjOTIzZDcuLmI3MWFmN2VkODk1ODQ1ZGI2N2U2NDg0MjRiZDAxOTU2Nzc5MjVjNDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0xNzQ1LDYgKzE3NDUsOCBAQCBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKIAogcGxhdGZvcm0vbWVkaWFjYXBh
YmlsaXRpZXMvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHAKIAorcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKwogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YUNvbnN0cmFpbnRzLmNwcAogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludENvbmZp
Z3VyYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZmE0YTk4MDJjMmYyZGNlZTg2MDk2NzA5YWQ2YTFmOGIzZmRkYmVj
OC4uNTYyNjM4MWNlZjg4OGJhNjU3OWMwNDgyMjRjYzdjZjJjZDRhYmY2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM1Myw2
ICsxMzUzLDcgQEAKIAkJNEJEQTQwMDEyMTUxQjZGNTAwRkQ2NjA0IC8qIENTU1JlZ2lzdGVyZWRD
dXN0b21Qcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEJEQTNGRkIyMTUxQjZGNDAwRkQ2NjA0IC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9w
ZXJ0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTREM0IwMEFCMjE1RDY5QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDNCMDBBOTIxNUQ2OUE3MDA3NkI5
ODMgLyogTWVkaWFSZWNvcmRlci5oICovOyB9OwogCQk0RDNCMDBBRjIxNUQ2QTY5MDA3NkI5ODMg
LyogQmxvYkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0RDNCMDBBRDIxNUQ2QTY5MDA3NkI5ODMgLyogQmxvYkV2ZW50LmggKi87IH07CisJCTRE
QTJGQTUxMjE3N0UyRjcwMDQ5M0Y3NSAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQ5OEUyMjQyMTc1M0E1MDAw
MzA3QjUyIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggKi87IH07CiAJCTREQjcxMzBEMjE2RUNC
NEQwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNERCNzEzMEMyMTZFQzJCRDAwOTZBNEREIC8q
IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmggKi87IH07CiAJCTRFMTk1OTIyMEEzOURBQkEwMDIy
MEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjAwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVy
ZU5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTI0MEEzOURBQ0MwMDIyMEZF
NSAvKiBNZWRpYVF1ZXJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTc4ODMsNiArNzg4NCw4IEBACiAJCTREM0IwMEE4MjE1RDY5QTYwMDc2Qjk4
MyAvKiBNZWRpYVJlY29yZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhUmVjb3JkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RDNC
MDBBOTIxNUQ2OUE3MDA3NkI5ODMgLyogTWVkaWFSZWNvcmRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTREM0IwMEFEMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTREOThFMjI0MjE3NTNBNTAwMDMwN0I1MiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJpdmF0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0RDk4RTIyNTIxNzUzQTUwMDAzMDdC
NTIgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0REI3MTMwQTIxNkVDMkJDMDA5NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9y
RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNERCNzEzMEMyMTZFQzJCRDAwOTZB
NEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTREQjcxMzBFMjE2RUVCQUUwMDk2QTRERCAvKiBNZWRpYVJlY29yZGVyRXJyb3JF
dmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVJlY29y
ZGVyRXJyb3JFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzk1OSw2
ICsxNzk2MiwxNSBAQAogCQkJcGF0aCA9IG1lZGlhcmVjb3JkZXI7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQk0RDk4RTIyMzIxNzUzQTNBMDAzMDdCNTIgLyogbWVkaWFyZWNv
cmRlciAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNEQ5
OEUyMjUyMTc1M0E1MDAwMzA3QjUyIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCAqLywKKwkJ
CQk0RDk4RTIyNDIxNzUzQTUwMDAzMDdCNTIgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLywK
KwkJCSk7CisJCQlwYXRoID0gbWVkaWFyZWNvcmRlcjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCTUxMDMxMDQyMUJBOEM2NEMwMDMzMjlDMCAvKiBjbGllbnQgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjQ3NDIsNiArMjQ3NTQsNyBA
QAogCQkJCUE1OUUzQzFCMTE1ODBGMzQwMDcyOTI4RSAvKiBpb3MgKi8sCiAJCQkJNjU4MkExNDgw
OTk5OUQ2QzAwQkVFQjZEIC8qIG1hYyAqLywKIAkJCQk5QUM2RjAyMDIxMTQ4RjFFMDBDQkRBMDYg
LyogbWVkaWFjYXBhYmlsaXRpZXMgKi8sCisJCQkJNEQ5OEUyMjMyMTc1M0EzQTAwMzA3QjUyIC8q
IG1lZGlhcmVjb3JkZXIgKi8sCiAJCQkJQzk2RjVFQkYxQjU4NzIyNjAwOTFFQTlEIC8qIG1lZGlh
c2Vzc2lvbiAqLywKIAkJCQkwNzIyMUI5MjE3Q0YwQUQ0MDA4NDhFNTEgLyogbWVkaWFzdHJlYW0g
Ki8sCiAJCQkJNTlDNzdGMTAxMDU0NTkxQzAwNTA2MTA0IC8qIG1vY2sgKi8sCkBAIC0yOTc5OCw2
ICsyOTgxMSw3IEBACiAJCQkJNDQ3MTcxMEUyMDVBRjk0NTAwMEExMTZFIC8qIE1lZGlhUXVlcnlQ
YXJzZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RDNCMDBBQjIxNUQ2OUE3MDA3NkI5
ODMgLyogTWVkaWFSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNERCNzEzMEQyMTZFQ0I0
RDAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0REEyRkE1MTIxNzdFMkY3MDA0OTNGNzUgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM5MDg0M0QwMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNv
bnRyb2xzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhBQ0E4RjFEMjM5NzE5MDBFQ0M1OUUgLyog
TWVkaWFSZW1vdGVTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VFRkNEN0ExOURCMzFG
NzAwMzg3NkQ3IC8qIE1lZGlhUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmgKaW5kZXggODIyNmVhODUxNTM5MGZjMDNkMDAzMWYwZmQxMzljNWU5MjQ4
YzgxZi4uMDNlNzNjZTkyZmUwOTVhYmQxNWZmNjRlYWQwNTg4MTdmY2RjNmJjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5oCkBAIC0yMzcsNiArMjM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIG1hY3JvKHN0YXJ0KSBcCiAgICAgbWFjcm8oc3RhcnRlZCkgXAogICAgIG1hY3JvKHN0YXRl
Y2hhbmdlKSBcCisgICAgbWFjcm8oc3RvcCkgXAogICAgIG1hY3JvKHN0b3JhZ2UpIFwKICAgICBt
YWNybyhzdWJtaXQpIFwKICAgICBtYWNybyhzdWNjZXNzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZh
dGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNlNjQxOTRiYmE4MDNkZDc5ZTFkYTk1MTM0NzRlNDQwNGU0YmQz
OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5o
IgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcml2YXRl
OjpjcmVhdGUoT3duZXImIG93bmVyLCBWZWN0b3I8UmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Pj4mJiB0cmFja3MpCit7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZT4obmV3IE1lZGlhUmVjb3JkZXJQcml2YXRlKG93bmVyLCBXVEZNb3ZlKHRyYWNrcykp
KTsKK30KKworTWVkaWFSZWNvcmRlclByaXZhdGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKE93bmVy
JiBvd25lciwgVmVjdG9yPFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+JiYgdHJhY2tzKQor
ICAgIDogbV9vd25lcihvd25lcikKK3sKKyAgICBtX3RyYWNrcyA9IFdURk1vdmUodHJhY2tzKTsK
KyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja3MpCisgICAgICAgIHRyYWNrLT5hZGRPYnNl
cnZlcigqdGhpcyk7Cit9CisKK01lZGlhUmVjb3JkZXJQcml2YXRlOjp+TWVkaWFSZWNvcmRlclBy
aXZhdGUoKQoreworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrcykKKyAgICAgICAgdHJh
Y2stPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgYXV0byBwb3Np
dGlvbiA9IG1fdHJhY2tzLmZpbmRNYXRjaGluZyhbJl0oYXV0byYgdHJhY2spIHsKKyAgICAgICAg
cmV0dXJuICF0cmFjay0+ZW5kZWQoKTsKKyAgICB9KTsKKyAgICBpZiAocG9zaXRpb24gIT0gbm90
Rm91bmQpCisgICAgICAgIHJldHVybjsKKyAgICBtX293bmVyLmFsbFRyYWNrc0RpZEVuZCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMGI0MDRiMmQ5MjQ3YjNl
OGNkMzlkMmZkNTA0YWUzMzVmMjU0MGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlIGZpbmFsIDogcHJpdmF0
ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgeworcHVibGljOgorICAgIGNsYXNz
IE93bmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk93bmVyKCkgPSBkZWZhdWx0
OworICAgICAgICB2aXJ0dWFsIHZvaWQgYWxsVHJhY2tzRGlkRW5kKCkgPSAwOworICAgIH07Cisg
ICAgCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4gY3Jl
YXRlKE93bmVyJiwgVmVjdG9yPFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+JiYpOworCisg
ICAgfk1lZGlhUmVjb3JkZXJQcml2YXRlKCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFSZWNvcmRl
clByaXZhdGUoT3duZXImLCBWZWN0b3I8UmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4mJik7
CisgICAgCisgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCisgICAgdm9p
ZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCB0
cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfQorICAg
IHZvaWQgdHJhY2tTZXR0aW5nc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5h
bCB7IH0KKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBmaW5hbCB7IH0KKyAgICAKKyAgICBPd25lciYgbV9vd25lcjsKKyAgICBWZWN0b3I8UmVm
PE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4gbV90cmFja3M7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggNjQ0OTVjMjExZTU1NjI3ZWUzOWQ4NzM4MzdhYTUzZDE5NjZi
NjgyMC4uYjRlMDgwZmE5ZDEwMDEzODA2MTA1YTJhZTFiYjIyNTUxYjU2MWIzMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTAtMTcgIFlVSEFO
IFdVICA8eXVoYW5fd3VAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhUmVjb3JkZXIgc2hvdWxk
IGZpcmUgYSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDY0MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVk
aWFSZWNvcmRlci1zdG9wLmh0bWw6IEFkZGVkLgorCiAyMDE4LTEwLTE1ICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMjM3MDU0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21l
ZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZjI0NmY2OGZhY2M2OWEwMWEyNTk1ZmYzYjkyZjVjMDk2MDU5ODBkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgTWVkaWFSZWNvcmRlciB3aWxsIHN0b3AgcmVjb3JkaW5nIGFuZCBmaXJl
IGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1y
ZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9w
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTNhYTAyMTljOWFjMGIwODhhYmUzMGFiYzlkYTAwODBkMTc1OTVj
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbApAQCAt
MCwwICsxLDM3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
Pk1lZGlhUmVjb3JkZXIgU3RvcDwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLmh0
bWwjbWVkaWFyZWNvcmRlciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFz
Ij4KKzwvY2FudmFzPgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBjcmVhdGVWaWRlb1N0cmVhbSgp
IHsKKyAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMi
KTsKKyAgICAgICAgcmV0dXJuIGNhbnZhcy5jYXB0dXJlU3RyZWFtKCk7CisgICAgfQorCisgICAg
YXN5bmNfdGVzdCh0ID0+IHsKKyAgICAgICAgbGV0IHZpZGVvID0gY3JlYXRlVmlkZW9TdHJlYW0o
KTsKKyAgICAgICAgbGV0IHJlY29yZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIodmlkZW8pOworICAg
ICAgICByZWNvcmRlci5vbnN0b3AgPSB0LnN0ZXBfZnVuYyhlcnJvckV2ZW50ID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZXJyb3JFdmVudC50eXBlLCAnc3RvcCcsICd0aGUgZXJyb3Ig
dHlwZSBzaG91bGQgYmUgc3RvcCcpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZXJyb3JFdmVu
dC5pc1RydXN0ZWQsICdpc1RydXN0ZWQgc2hvdWxkIGJlIHRydWUgd2hlbiB0aGUgZXZlbnQgaXMg
Y3JlYXRlZCBieSBDKysnKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkZXIuc3Rh
dGUsICJpbmFjdGl2ZSIsICJNZWRpYVJlY29yZGVyIGhhcyBiZWVuIHN0b3BwZWQgd2hlbiBhbGwg
dHJhY2tzIGFyZSBlbmRlZCIpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZGVvLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoLCAxLCAi
dmlkZW8gbWVkaWFzdHJlYW0gc3RhcnRzIHdpdGggb25lIHRyYWNrIik7CisgICAgICAgIHJlY29y
ZGVyLnN0YXJ0KCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkZXIuc3RhdGUsICJyZWNv
cmRpbmciLCAiTWVkaWFSZWNvcmRlciBoYXMgYmVlbiBzdGFydGVkIHN1Y2Nlc3NmdWxseSIpOwor
ICAgICAgICB2aWRlby5nZXRWaWRlb1RyYWNrcygpWzBdLnN0b3AoKTsKKyAgICAgICAgdC5zdGVw
X3RpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgic3RvcCBldmVu
dCBpcyBub3QgZmlyZWQgYWZ0ZXIgMiBzZWNvbmRzIik7CisgICAgICAgIH0sIDIwMDApOworICAg
IH0sICJNZWRpYVJlY29yZGVyIHdpbGwgc3RvcCByZWNvcmRpbmcgYW5kIGZpcmUgYSBzdG9wIGV2
ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQiLCB7IHRpbWVvdXQ6IDEwMDAwIH0pOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352789</attachid>
            <date>2018-10-19 09:40:02 -0700</date>
            <delta_ts>2018-10-19 16:53:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190642-20181019094001.patch</filename>
            <type>text/plain</type>
            <size>9173</size>
            <attacher name="Wendy">yuhan_wu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZmMTZhMmRmZGNjNzNh
YTJhZjU0MjU1NDJmMGNkYjRkYmQxODM0NC4uMDIwZmFhYjE5MGU0MjgyNTExZjZhZDA1YTNiZjVi
MTU0MWJjZmFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTEwLTE3ICBZVUhB
TiBXVSAgPHl1aGFuX3d1QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNob3Vs
ZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG9ubHkgaW1w
bGVtZW50cyB0byBmaXJlIHRoZSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQu
CisgICAgICAgIFdlIHdpbGwgbmVlZCB0byBmaXJlIGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aGVu
IGFsbCB0cmFja3MgYXJlIGVuZGVkLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6TWVkaWFSZWNvcmRlcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjp+TWVkaWFSZWNvcmRlcik6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVJlY29yZGVyOjp0cmFja0VuZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLmlkbDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKwogMjAxOC0xMC0xNSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92
ZSB1bnVzZWQgcGFyYW1ldGVycyBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuY3BwCmluZGV4IGJlYjBjNzJhMTZmZTY2ZWQ4NWE0NDhkZDdkNjk0OWE5OTEzYTMzNzYu
LmYxNTBhZjI1MGYwMDhjNDhhZmFjNzA2ZGVhZGJjYzFmNzc1OTVlNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAK
QEAgLTQ2LDEyICs0NiwxOSBAQCBNZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKERvY3VtZW50
JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0cmVhbSwgT3B0aQogICAgICwgbV9vcHRp
b25zKFdURk1vdmUob3B0aW9uKSkKICAgICAsIG1fc3RyZWFtKFdURk1vdmUoc3RyZWFtKSkKIHsK
KyAgICBtX3RyYWNrcyA9IFdURjo6bWFwKG1fc3RyZWFtLT5nZXRUcmFja3MoKSwgW3RoaXNdIChj
b25zdCBhdXRvJiB0cmFjaykgLT4gUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiB7CisgICAg
ICAgIGF1dG8mIHByaXZhdGVUcmFjayA9IHRyYWNrLT5wcml2YXRlVHJhY2soKTsKKyAgICAgICAg
cHJpdmF0ZVRyYWNrLmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuIHByaXZhdGVU
cmFjazsKKyAgICB9KTsKICAgICBtX3N0cmVhbS0+YWRkT2JzZXJ2ZXIodGhpcyk7CiB9CiAKIE1l
ZGlhUmVjb3JkZXI6On5NZWRpYVJlY29yZGVyKCkKIHsKICAgICBtX3N0cmVhbS0+cmVtb3ZlT2Jz
ZXJ2ZXIodGhpcyk7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tzKQorICAgICAgICB0
cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiB2b2lkIE1lZGlhUmVjb3JkZXI6OnN0
b3AoKQpAQCAtODksNiArOTYsMjIgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpkaWRBZGRPclJlbW92
ZVRyYWNrKCkKICAgICB9KTsKIH0KIAordm9pZCBNZWRpYVJlY29yZGVyOjp0cmFja0VuZGVkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBhdXRvIHBvc2l0aW9uID0gbV90cmFja3Mu
ZmluZE1hdGNoaW5nKFtdKGF1dG8mIHRyYWNrKSB7CisgICAgICAgIHJldHVybiAhdHJhY2stPmVu
ZGVkKCk7CisgICAgfSk7CisgICAgaWYgKHBvc2l0aW9uICE9IG5vdEZvdW5kKQorICAgICAgICBy
ZXR1cm47CisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKKyAgICAgICAgaWYgKCFt
X2lzQWN0aXZlIHx8IHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAvLyBGSVhNRTogQWRkIGEgZGF0YWF2YWlsYWJsZSBldmVu
dAorICAgICAgICBhdXRvIGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcEV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pOworICAg
ICAgICBzZXROZXdSZWNvcmRpbmdTdGF0ZShSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUsIFdURk1v
dmUoZXZlbnQpKTsKKyAgICB9KTsKK30KKwogdm9pZCBNZWRpYVJlY29yZGVyOjpzZXROZXdSZWNv
cmRpbmdTdGF0ZShSZWNvcmRpbmdTdGF0ZSBuZXdTdGF0ZSwgUmVmPEV2ZW50PiYmIGV2ZW50KQog
ewogICAgIG1fc3RhdGUgPSBuZXdTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCmluZGV4IDAyOWYyZWExNjZkYmU0ZmYy
YTAyOWFhZjEyZWFhZjM4Yzc4OGJkZDkuLjgwMzllNWNlNGRhMzliZWYzNDZiY2NjZGZhMGUwYzkw
NGI0ZGU3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXIuaApAQCAtMjgsMTIgKzI4LDE5IEBACiAjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJNZWRpYVN0
cmVhbS5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiAKLWNsYXNzIE1lZGlhUmVjb3JkZXIgZmlu
YWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVJlY29y
ZGVyPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxNZWRpYVJlY29yZGVyPiwgcHJpdmF0ZSBNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIgeworY2xh
c3MgTWVkaWFSZWNvcmRlciBmaW5hbAorICAgIDogcHVibGljIEFjdGl2ZURPTU9iamVjdAorICAg
ICwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFSZWNvcmRlcj4KKyAgICAsIHB1YmxpYyBFdmVudFRh
cmdldFdpdGhJbmxpbmVEYXRhCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNv
cmRlcj4KKyAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW06Ok9ic2VydmVyCisgICAgLCBwcml2YXRl
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZW51bSBj
bGFzcyBSZWNvcmRpbmdTdGF0ZSB7IEluYWN0aXZlLCBSZWNvcmRpbmcsIFBhdXNlZCB9OwogICAg
IApAQCAtNzIsMTIgKzc5LDE5IEBAIHByaXZhdGU6CiAgICAgLy8gTWVkaWFTdHJlYW06Ok9ic2Vy
dmVyCiAgICAgdm9pZCBkaWRBZGRPclJlbW92ZVRyYWNrKCkgZmluYWw7CiAgICAgCisgICAgLy8g
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyCisgICAgdm9pZCB0cmFja0VuZGVkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCB0cmFja011dGVkQ2hhbmdl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKKyAgICB2b2lkIHRyYWNrU2V0
dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9OworICAgIHZv
aWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsg
fTsKKyAgICAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBzZXROZXdSZWNvcmRpbmdTdGF0ZShSZWNvcmRpbmdTdGF0ZSwgUmVmPEV2
ZW50PiYmKTsKICAgICAKICAgICBPcHRpb25zIG1fb3B0aW9uczsKICAgICBSZWY8TWVkaWFTdHJl
YW0+IG1fc3RyZWFtOwogICAgIFJlY29yZGluZ1N0YXRlIG1fc3RhdGUgeyBSZWNvcmRpbmdTdGF0
ZTo6SW5hY3RpdmUgfTsKKyAgICBWZWN0b3I8UmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4g
bV90cmFja3M7CiAgICAgCiAgICAgYm9vbCBtX2lzQWN0aXZlIHsgdHJ1ZSB9OwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmlkbAppbmRleCBkMTYzMWQ5ODNjNzE5NWJhNDIzZTM4MGQyNzMzZjI4ZTkxNjU0Nzk3Li43M2Q0
ZmI2YjhjNDJlNTUxNjgxOTQ4MmNkMWI2YTNiMGJkMjA1MmVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaWRsCkBAIC0z
Nyw3ICszNyw3IEBAIGVudW0gUmVjb3JkaW5nU3RhdGUgeyAiaW5hY3RpdmUiLCAicmVjb3JkaW5n
IiwgInBhdXNlZCIgfTsKICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFTdHJlYW0gc3Ry
ZWFtOwogICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWltZVR5cGU7CiAgICAg
Ly8gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnN0YXJ0OwotICAgIC8vIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb25zdG9wOworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zdG9wOwogICAg
IC8vIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25kYXRhYXZhaWxhYmxlOwogICAgIC8vIGF0dHJp
YnV0ZSBFdmVudEhhbmRsZXIgb25wYXVzZTsKICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9ucmVzdW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggODIyNmVhODUxNTM5MGZjMDNk
MDAzMWYwZmQxMzljNWU5MjQ4YzgxZi4uMDNlNzNjZTkyZmUwOTVhYmQxNWZmNjRlYWQwNTg4MTdm
Y2RjNmJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0yMzcsNiArMjM3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHN0YXJ0KSBcCiAgICAgbWFjcm8oc3RhcnRlZCkg
XAogICAgIG1hY3JvKHN0YXRlY2hhbmdlKSBcCisgICAgbWFjcm8oc3RvcCkgXAogICAgIG1hY3Jv
KHN0b3JhZ2UpIFwKICAgICBtYWNybyhzdWJtaXQpIFwKICAgICBtYWNybyhzdWNjZXNzKSBcCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA2NDQ5NWMyMTFlNTU2MjdlZTM5ZDg3Mzgz
N2FhNTNkMTk2NmI2ODIwLi5iNGUwODBmYTlkMTAwMTM4MDYxMDVhMmFlMWJiMjI1NTFiNTYxYjMx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0x
MC0xNyAgWVVIQU4gV1UgIDx5dWhhbl93dUBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFSZWNv
cmRlciBzaG91bGQgZmlyZSBhIHN0b3AgZXZlbnQgd2hlbiBhbGwgdHJhY2tzIGFyZSBlbmRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjQyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJl
LXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbDogQWRkZWQuCisKIDIwMTgtMTAtMTUgIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyMzcwNTQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRl
ci1zdG9wLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZmMjQ2ZjY4ZmFjYzY5YTAxYTI1OTVmZjNiOTJmNWMwOTYwNTk4MGQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBNZWRpYVJlY29yZGVyIHdpbGwgc3RvcCByZWNvcmRp
bmcgYW5kIGZpcmUgYSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJl
Y29yZGVyLXN0b3AuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGVjODk3Mjk5Mjc5ZmY2YTk3NTg1M2JmZjUz
OTY5YzdiN2ZlZjFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3Rv
cC5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8dGl0bGU+TWVkaWFSZWNvcmRlciBTdG9wPC90aXRsZT4KKyAgICA8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlh
UmVjb3JkZXIuaHRtbCNtZWRpYXJlY29yZGVyIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFz
IGlkPSJjYW52YXMiPgorPC9jYW52YXM+Cis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGNyZWF0ZVZp
ZGVvU3RyZWFtKCkgeworICAgICAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNhbnZhcyIpOworICAgICAgICByZXR1cm4gY2FudmFzLmNhcHR1cmVTdHJlYW0oKTsKKyAg
ICB9CisKKyAgICBhc3luY190ZXN0KHQgPT4geworICAgICAgICBsZXQgdmlkZW8gPSBjcmVhdGVW
aWRlb1N0cmVhbSgpOworICAgICAgICBsZXQgcmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRlcih2
aWRlbyk7CisgICAgICAgIHJlY29yZGVyLm9uc3RvcCA9IHQuc3RlcF9mdW5jKGVycm9yRXZlbnQg
PT4geworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlcnJvckV2ZW50LnR5cGUsICdzdG9wJywg
J3RoZSBlcnJvciB0eXBlIHNob3VsZCBiZSBzdG9wJyk7CisgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShlcnJvckV2ZW50LmlzVHJ1c3RlZCwgJ2lzVHJ1c3RlZCBzaG91bGQgYmUgdHJ1ZSB3aGVuIHRo
ZSBldmVudCBpcyBjcmVhdGVkIGJ5IEMrKycpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZWNvcmRlci5zdGF0ZSwgImluYWN0aXZlIiwgIk1lZGlhUmVjb3JkZXIgaGFzIGJlZW4gc3RvcHBl
ZCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkIik7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAg
ICAgICAgfSk7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW8uZ2V0VmlkZW9UcmFja3MoKS5s
ZW5ndGgsIDEsICJ2aWRlbyBtZWRpYXN0cmVhbSBzdGFydHMgd2l0aCBvbmUgdHJhY2siKTsKKyAg
ICAgICAgcmVjb3JkZXIuc3RhcnQoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmRlci5z
dGF0ZSwgInJlY29yZGluZyIsICJNZWRpYVJlY29yZGVyIGhhcyBiZWVuIHN0YXJ0ZWQgc3VjY2Vz
c2Z1bGx5Iik7CisgICAgICAgIHZpZGVvLmdldFZpZGVvVHJhY2tzKClbMF0uc3RvcCgpOworICAg
IH0sICJNZWRpYVJlY29yZGVyIHdpbGwgc3RvcCByZWNvcmRpbmcgYW5kIGZpcmUgYSBzdG9wIGV2
ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQiLCB7IHRpbWVvdXQ6IDEwMDAwIH0pOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352834</attachid>
            <date>2018-10-19 16:53:52 -0700</date>
            <delta_ts>2018-10-20 06:15:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190642-20181019165351.patch</filename>
            <type>text/plain</type>
            <size>9218</size>
            <attacher name="Wendy">yuhan_wu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQ4M2QyZmU0N2E4ODVm
NjA0ODZlYjJlMWJjNGYzNTY5YTBjYzk3Yy4uY2U3NDcxNjc2OTIyYzg0OTVlMWJmMmRlOGMxZDI2
OGNlY2JmY2ZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTEwLTE3ICBZVUhB
TiBXVSAgPHl1aGFuX3d1QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNob3Vs
ZCBmaXJlIGEgc3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG9ubHkgaW1w
bGVtZW50cyB0byBmaXJlIHRoZSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQu
CisgICAgICAgIFdlIHdpbGwgbmVlZCB0byBmaXJlIGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aGVu
IGFsbCB0cmFja3MgYXJlIGVuZGVkLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6TWVkaWFSZWNvcmRlcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjp+TWVkaWFSZWNvcmRlcik6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVJlY29yZGVyOjp0cmFja0VuZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLmlkbDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKwogMjAxOC0xMC0xOSAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gUmVuZGVy
UmVwbGFjZWQgcmVuZGVyZXIgc2hvdWxkIGNyZWF0ZSBJbmxpbmVCb3gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRl
eCBiZWIwYzcyYTE2ZmU2NmVkODVhNDQ4ZGQ3ZDY5NDlhOTkxM2EzMzc2Li5mMTUwYWYyNTBmMDA4
YzQ4YWZhYzcwNmRlYWRiY2MxZjc3NTk1ZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCkBAIC00NiwxMiArNDYs
MTkgQEAgTWVkaWFSZWNvcmRlcjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJl
ZjxNZWRpYVN0cmVhbT4mJiBzdHJlYW0sIE9wdGkKICAgICAsIG1fb3B0aW9ucyhXVEZNb3ZlKG9w
dGlvbikpCiAgICAgLCBtX3N0cmVhbShXVEZNb3ZlKHN0cmVhbSkpCiB7CisgICAgbV90cmFja3Mg
PSBXVEY6Om1hcChtX3N0cmVhbS0+Z2V0VHJhY2tzKCksIFt0aGlzXSAoY29uc3QgYXV0byYgdHJh
Y2spIC0+IFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4geworICAgICAgICBhdXRvJiBwcml2
YXRlVHJhY2sgPSB0cmFjay0+cHJpdmF0ZVRyYWNrKCk7CisgICAgICAgIHByaXZhdGVUcmFjay5h
ZGRPYnNlcnZlcigqdGhpcyk7CisgICAgICAgIHJldHVybiBwcml2YXRlVHJhY2s7CisgICAgfSk7
CiAgICAgbV9zdHJlYW0tPmFkZE9ic2VydmVyKHRoaXMpOwogfQogCiBNZWRpYVJlY29yZGVyOjp+
TWVkaWFSZWNvcmRlcigpCiB7CiAgICAgbV9zdHJlYW0tPnJlbW92ZU9ic2VydmVyKHRoaXMpOwor
ICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrcykKKyAgICAgICAgdHJhY2stPnJlbW92ZU9i
c2VydmVyKCp0aGlzKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyOjpzdG9wKCkKQEAgLTg5LDYg
Kzk2LDIyIEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6ZGlkQWRkT3JSZW1vdmVUcmFjaygpCiAgICAg
fSk7CiB9CiAKK3ZvaWQgTWVkaWFSZWNvcmRlcjo6dHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpCit7CisgICAgYXV0byBwb3NpdGlvbiA9IG1fdHJhY2tzLmZpbmRNYXRjaGluZyhb
XShhdXRvJiB0cmFjaykgeworICAgICAgICByZXR1cm4gIXRyYWNrLT5lbmRlZCgpOworICAgIH0p
OworICAgIGlmIChwb3NpdGlvbiAhPSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuOworICAgIHNj
aGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIGlmICghbV9pc0FjdGl2ZSB8fCBz
dGF0ZSgpID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgLy8gRklYTUU6IEFkZCBhIGRhdGFhdmFpbGFibGUgZXZlbnQKKyAgICAgICAgYXV0
byBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3BFdmVudCwgRXZlbnQ6OkNh
bkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKTsKKyAgICAgICAgc2V0TmV3UmVj
b3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlLCBXVEZNb3ZlKGV2ZW50KSk7Cisg
ICAgfSk7Cit9CisKIHZvaWQgTWVkaWFSZWNvcmRlcjo6c2V0TmV3UmVjb3JkaW5nU3RhdGUoUmVj
b3JkaW5nU3RhdGUgbmV3U3RhdGUsIFJlZjxFdmVudD4mJiBldmVudCkKIHsKICAgICBtX3N0YXRl
ID0gbmV3U3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXIuaAppbmRleCAwMjlmMmVhMTY2ZGJlNGZmMmEwMjlhYWYxMmVhYWYz
OGM3ODhiZGQ5Li44MDM5ZTVjZTRkYTM5YmVmMzQ2YmNjY2RmYTBlMGM5MDRiNGRlN2M5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmgKQEAgLTI4LDEyICsyOCwxOSBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgog
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKKyNpbmNs
dWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIERvY3VtZW50OwogCi1jbGFzcyBNZWRpYVJlY29yZGVyIGZpbmFsIDogcHVibGljIEFj
dGl2ZURPTU9iamVjdCwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFSZWNvcmRlcj4sIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNv
cmRlcj4sIHByaXZhdGUgTWVkaWFTdHJlYW06Ok9ic2VydmVyIHsKK2NsYXNzIE1lZGlhUmVjb3Jk
ZXIgZmluYWwKKyAgICA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QKKyAgICAsIHB1YmxpYyBSZWZD
b3VudGVkPE1lZGlhUmVjb3JkZXI+CisgICAgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5l
RGF0YQorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUmVjb3JkZXI+CisgICAgLCBw
cml2YXRlIE1lZGlhU3RyZWFtOjpPYnNlcnZlcgorICAgICwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgewogcHVibGljOgogICAgIGVudW0gY2xhc3MgUmVjb3JkaW5n
U3RhdGUgeyBJbmFjdGl2ZSwgUmVjb3JkaW5nLCBQYXVzZWQgfTsKICAgICAKQEAgLTcyLDEyICs3
OSwxOSBAQCBwcml2YXRlOgogICAgIC8vIE1lZGlhU3RyZWFtOjpPYnNlcnZlcgogICAgIHZvaWQg
ZGlkQWRkT3JSZW1vdmVUcmFjaygpIGZpbmFsOwogICAgIAorICAgIC8vIE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpPYnNlcnZlcgorICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKSBmaW5hbCB7IH07CisgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKKyAgICB2b2lkIHRyYWNrRW5hYmxl
ZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH07CisgICAgCiAgICAg
dm9pZCBzY2hlZHVsZURlZmVycmVkVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2V0TmV3UmVjb3JkaW5nU3RhdGUoUmVjb3JkaW5nU3RhdGUsIFJlZjxFdmVudD4mJik7CiAgICAg
CiAgICAgT3B0aW9ucyBtX29wdGlvbnM7CiAgICAgUmVmPE1lZGlhU3RyZWFtPiBtX3N0cmVhbTsK
ICAgICBSZWNvcmRpbmdTdGF0ZSBtX3N0YXRlIHsgUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlIH07
CisgICAgVmVjdG9yPFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJhY2tzOwogICAg
IAogICAgIGJvb2wgbV9pc0FjdGl2ZSB7IHRydWUgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwKaW5kZXggZDE2
MzFkOTgzYzcxOTViYTQyM2UzODBkMjczM2YyOGU5MTY1NDc5Ny4uNzNkNGZiNmI4YzQyZTU1MTY4
MTk0ODJjZDFiNmEzYjBiZDIwNTJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmlkbApAQCAtMzcsNyArMzcsNyBAQCBl
bnVtIFJlY29yZGluZ1N0YXRlIHsgImluYWN0aXZlIiwgInJlY29yZGluZyIsICJwYXVzZWQiIH07
CiAgICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU3RyZWFtIHN0cmVhbTsKICAgICAvLyBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1pbWVUeXBlOwogICAgIC8vIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb25zdGFydDsKLSAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3Rv
cDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uc3RvcDsKICAgICAvLyBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9uZGF0YWF2YWlsYWJsZTsKICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9ucGF1c2U7CiAgICAgLy8gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnJlc3VtZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDgyMjZlYTg1MTUzOTBmYzAzZDAwMzFmMGZkMTM5YzVl
OTI0OGM4MWYuLjAzZTczY2U5MmZlMDk1YWJkMTVmZjY0ZWFkMDU4ODE3ZmNkYzZiYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMjM3LDYgKzIzNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBtYWNybyhzdGFydCkgXAogICAgIG1hY3JvKHN0YXJ0ZWQpIFwKICAgICBtYWNybyhz
dGF0ZWNoYW5nZSkgXAorICAgIG1hY3JvKHN0b3ApIFwKICAgICBtYWNybyhzdG9yYWdlKSBcCiAg
ICAgbWFjcm8oc3VibWl0KSBcCiAgICAgbWFjcm8oc3VjY2VzcykgXApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggZTc3MjZlMmMzZTFhZDljYmY4NmIwOWE3NjIwMjRjYzhmMGMzMWE1
MC4uMzQ1OGUyODY4OGEwNDk4YjU4ODQ4NGM4OWEyNGI3ODQ1ZjMwYWZmNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTAtMTcgIFlVSEFOIFdV
ICA8eXVoYW5fd3VAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhUmVjb3JkZXIgc2hvdWxkIGZp
cmUgYSBzdG9wIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDY0MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL21l
ZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFS
ZWNvcmRlci1zdG9wLmh0bWw6IEFkZGVkLgorCiAyMDE4LTEwLTE5ICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMjM3MjU0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
Y2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZjI0NmY2OGZhY2M2OWEwMWEyNTk1ZmYzYjkyZjVjMDk2MDU5ODBkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItc3RvcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgTWVkaWFSZWNvcmRlciB3aWxsIHN0b3AgcmVjb3JkaW5nIGFuZCBmaXJlIGEg
c3RvcCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJlIGVuZGVkIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNv
cmQvTWVkaWFSZWNvcmRlci1zdG9wLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNvcmRlci1zdG9wLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGYzNzYwYzhlZmFlZDI3Njk4ODQ3MDM4MWRkZjc4MmQ1ZWRkMmIzZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLXN0b3AuaHRtbApAQCAtMCww
ICsxLDM1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPk1l
ZGlhUmVjb3JkZXIgU3RvcDwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJlY29yZGVyLmh0bWwj
bWVkaWFyZWNvcmRlciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3
aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+Cis8L2NhbnZhcz4KKzxzY3JpcHQ+CisgICAgZnVuY3Rp
b24gY3JlYXRlVmlkZW9TdHJlYW0oKSB7CisgICAgICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgICAgIGNhbnZhcy5nZXRDb250ZXh0KCcyZCcp
OworICAgICAgICByZXR1cm4gY2FudmFzLmNhcHR1cmVTdHJlYW0oKTsKKyAgICB9CisKKyAgICBh
c3luY190ZXN0KHQgPT4geworICAgICAgICBsZXQgdmlkZW8gPSBjcmVhdGVWaWRlb1N0cmVhbSgp
OworICAgICAgICBsZXQgcmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRlcih2aWRlbyk7CisgICAg
ICAgIHJlY29yZGVyLm9uc3RvcCA9IHQuc3RlcF9mdW5jKGVycm9yRXZlbnQgPT4geworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlcnJvckV2ZW50LnR5cGUsICdzdG9wJywgJ3RoZSBlcnJvciB0
eXBlIHNob3VsZCBiZSBzdG9wJyk7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShlcnJvckV2ZW50
LmlzVHJ1c3RlZCwgJ2lzVHJ1c3RlZCBzaG91bGQgYmUgdHJ1ZSB3aGVuIHRoZSBldmVudCBpcyBj
cmVhdGVkIGJ5IEMrKycpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmRlci5zdGF0
ZSwgImluYWN0aXZlIiwgIk1lZGlhUmVjb3JkZXIgaGFzIGJlZW4gc3RvcHBlZCB3aGVuIGFsbCB0
cmFja3MgYXJlIGVuZGVkIik7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHModmlkZW8uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgsIDEsICJ2
aWRlbyBtZWRpYXN0cmVhbSBzdGFydHMgd2l0aCBvbmUgdHJhY2siKTsKKyAgICAgICAgcmVjb3Jk
ZXIuc3RhcnQoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmRlci5zdGF0ZSwgInJlY29y
ZGluZyIsICJNZWRpYVJlY29yZGVyIGhhcyBiZWVuIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5Iik7Cisg
ICAgICAgIHZpZGVvLmdldFZpZGVvVHJhY2tzKClbMF0uc3RvcCgpOworICAgIH0sICJNZWRpYVJl
Y29yZGVyIHdpbGwgc3RvcCByZWNvcmRpbmcgYW5kIGZpcmUgYSBzdG9wIGV2ZW50IHdoZW4gYWxs
IHRyYWNrcyBhcmUgZW5kZWQiLCB7IHRpbWVvdXQ6IDEwMDAwIH0pOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>