<?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>222158</bug_id>
          
          <creation_ts>2021-02-18 21:27:36 -0800</creation_ts>
          <short_desc>[Cocoa] Add Experimental MediaSession coordinator</short_desc>
          <delta_ts>2021-04-07 05:51:20 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223795</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=224278</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jean-yves.avenard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1731209</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-18 21:27:36 -0800</bug_when>
    <thetext>Add Experimental MediaSession coordinator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731210</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-18 21:27:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/74508862&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731212</commentid>
    <comment_count>2</comment_count>
      <attachid>420919</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-18 21:38:13 -0800</bug_when>
    <thetext>Created attachment 420919
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731396</commentid>
    <comment_count>3</comment_count>
      <attachid>420984</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-19 09:51:54 -0800</bug_when>
    <thetext>Created attachment 420984
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731617</commentid>
    <comment_count>4</comment_count>
      <attachid>421040</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-19 15:09:21 -0800</bug_when>
    <thetext>Created attachment 421040
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731666</commentid>
    <comment_count>5</comment_count>
      <attachid>421055</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-19 16:29:43 -0800</bug_when>
    <thetext>Created attachment 421055
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731682</commentid>
    <comment_count>6</comment_count>
      <attachid>421058</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-19 16:50:43 -0800</bug_when>
    <thetext>Created attachment 421058
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734494</commentid>
    <comment_count>7</comment_count>
      <attachid>421845</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-01 11:03:13 -0800</bug_when>
    <thetext>Created attachment 421845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739069</commentid>
    <comment_count>8</comment_count>
      <attachid>421845</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-03-12 17:11:13 -0800</bug_when>
    <thetext>Comment on attachment 421845
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaSession.h:108
&gt; +    class Observer : public CanMakeWeakPtr&lt;Observer&gt; {

There&apos;s already a WTF::Observer template class; so this nomenclature might get confusing, but I don&apos;t have a better naming suggestion. SessionObserver? I realize it&apos;s already MediaSession::Observer as a fully scoped name.

&gt; Source/WebCore/Modules/mediasession/MediaSession.idl:46
&gt; +        [Conditional=MEDIA_SESSION_COORDINATOR, EnabledBySetting=MediaSessionCoordinator] attribute MediaSessionReadyState readyState;

Might be a tab instead of a space here.

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:131
&gt; +            .action = MediaSessionAction::Seekto,

I think this is the wrong action here. Should this be ::Settrack?

&gt; Source/WebCore/platform/graphics/PlatformMediaSessionCoordinator.h:52
&gt; +    using SeekCompletedCallback = CompletionHandler&lt;void()&gt;;
&gt; +    virtual void seekTo(double, SeekCompletedCallback&amp;&amp;) = 0;
&gt; +
&gt; +    using PlayCompletedCallback = CompletionHandler&lt;void()&gt;;
&gt; +    virtual void play(PlayCompletedCallback&amp;&amp;) = 0;
&gt; +
&gt; +    using PauseCompletedCallback = CompletionHandler&lt;void()&gt;;
&gt; +    virtual void pause(PauseCompletedCallback&amp;&amp;) = 0;
&gt; +
&gt; +    using SetTrackCompletedCallback = CompletionHandler&lt;void()&gt;;
&gt; +    virtual void setTrack(const String, SetTrackCompletedCallback&amp;&amp;) = 0;

I wonder if we want to make these callbacks signal whether the underlying operation was successful or not.  Right now (and in the Mock) all these operations succeed with exactly the parameters passed in, but I could see a situation where the Coordinator has a slightly resulting seekTime because the client issued a seek beyond the duration of the resource.  Or if coordination fails, we may want to not fire the action handler in response.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739181</commentid>
    <comment_count>9</comment_count>
      <attachid>421845</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-13 16:35:48 -0800</bug_when>
    <thetext>Comment on attachment 421845
Patch

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

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.h:108
&gt;&gt; +    class Observer : public CanMakeWeakPtr&lt;Observer&gt; {
&gt; 
&gt; There&apos;s already a WTF::Observer template class; so this nomenclature might get confusing, but I don&apos;t have a better naming suggestion. SessionObserver? I realize it&apos;s already MediaSession::Observer as a fully scoped name.

The cat is out of the bag here: I could at least 15 other nested classes named `Observer` going back to at least 2013

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.idl:46
&gt;&gt; +        [Conditional=MEDIA_SESSION_COORDINATOR, EnabledBySetting=MediaSessionCoordinator] attribute MediaSessionReadyState readyState;
&gt; 
&gt; Might be a tab instead of a space here.

Oops!

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:131
&gt;&gt; +            .action = MediaSessionAction::Seekto,
&gt; 
&gt; I think this is the wrong action here. Should this be ::Settrack?

Double oops!

&gt;&gt; Source/WebCore/platform/graphics/PlatformMediaSessionCoordinator.h:52
&gt;&gt; +    virtual void setTrack(const String, SetTrackCompletedCallback&amp;&amp;) = 0;
&gt; 
&gt; I wonder if we want to make these callbacks signal whether the underlying operation was successful or not.  Right now (and in the Mock) all these operations succeed with exactly the parameters passed in, but I could see a situation where the Coordinator has a slightly resulting seekTime because the client issued a seek beyond the duration of the resource.  Or if coordination fails, we may want to not fire the action handler in response.

That&apos;s a great idea. I&apos;m not sure what state we can usefully pass back in the event of a failure, but I will add a `bool success` parameter for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739377</commentid>
    <comment_count>10</comment_count>
      <attachid>421845</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-15 05:16:18 -0700</bug_when>
    <thetext>Comment on attachment 421845
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.idl:32
&gt; +    undefined seekTo(double time);

HTMLMediaElement.fastSeek takes an unrestricted double. Not sure how much this is important but should we consider the same here?

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.idl:35
&gt; +    undefined setTrack(DOMString trackIdentifier);

Should some of these return promises?
play and pause are doing so in HTMLMediaElement.
I could see seekTo take one as well, although HTMLMediaElement is event based there.

Not sure about setTrack. If part of its processing is asynchronous, maybe it is worth being able writing something like:
await coordinator.setTrack(1);
await coordinator.seekTo(0.001);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740210</commentid>
    <comment_count>11</comment_count>
      <attachid>423401</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-16 14:32:36 -0700</bug_when>
    <thetext>Created attachment 423401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740287</commentid>
    <comment_count>12</comment_count>
      <attachid>423401</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-16 15:59:32 -0700</bug_when>
    <thetext>Comment on attachment 423401
Patch

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

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

Please fill out the change log.

&gt; Source/WebCore/Modules/mediasession/MediaMetadataInit.h:62
&gt; +#define DECODE(name, type) \
&gt; +    Optional&lt;type&gt; name; \
&gt; +    decoder &gt;&gt; name; \
&gt; +    if (!name) \
&gt; +        return WTF::nullopt; \

I don&apos;t think this makes sense here. If this is generally useful, we should add it to a central place, but we generally prefer to have this spelled out everywhere.

&gt; Source/WebCore/Modules/mediasession/MediaSession.idl:34
&gt; +#if defined(ENABLE_MEDIA_SESSION_COORDINATOR) &amp;&amp; ENABLE_MEDIA_SESSION_COORDINATOR
&gt; +  : EventTarget
&gt; +#endif

This will be wrong when the runtime feature for media session coordinator is disable but the compile time one is enabled. 

Perhaps we should just bite the bullet and make it always an event target.

Otherwise, someone will have to add the way to runtime conditionally make an interhave have one ancestor or another.

&gt; Source/WebCore/Modules/mediasession/MediaSession.idl:44
&gt; +    [Conditional=MEDIA_SESSION_COORDINATOR, EnabledBySetting=MediaSessionCoordinator] readonly attribute MediaSessionCoordinator? coordinator;

Where is this all specified? Is it really adding these to MediaSession proper? Or is it using partials / mixins? If partials and/or mixins, please add new IDL files for those and &quot;includes&quot; as necessary.

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.h:43
&gt; +class MediaSessionCoordinator
&gt; +    : public RefCounted&lt;MediaSessionCoordinator&gt;
&gt; +, public MediaSession::Observer {

These should all be on one line.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:5788
&gt; +		072DBC0625DC6EDA00A1350E /* JSMediaSessionCoordinator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JSMediaSessionCoordinator.h; path = ../../../../../../WebKitBuild/Debug/DerivedSources/WebCore/JSMediaSessionCoordinator.h; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; +		072DBC0725DC6EDA00A1350E /* JSMediaSessionCoordinator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = JSMediaSessionCoordinator.cpp; path = ../../../../../../WebKitBuild/Debug/DerivedSources/WebCore/JSMediaSessionCoordinator.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };

This looks incorrect.

&gt; Source/WebCore/testing/Internals.h:1141
&gt; +#endif
&gt; +
&gt;  };

Extra newline.

&gt; LayoutTests/TestExpectations:4643
&gt; +media/media-session/mock-coordinator.html [ Skip ]

Is this running anywhere then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740886</commentid>
    <comment_count>13</comment_count>
      <attachid>423401</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-03-17 13:45:05 -0700</bug_when>
    <thetext>Comment on attachment 423401
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:73
&gt; +    m_platformCoordinator-&gt;seekTo(time, [time, this, protectedThis = makeRefPtr(*this), identifier = identifier, promise = WTFMove(promise)] (Optional&lt;Exception&gt;&amp;&amp; exception) mutable {

Nit. Can we s/identifier = identifier/identifier/g here?

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:74
&gt; +

Nit. This empty line can be removed.

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:107
&gt; +    m_platformCoordinator-&gt;play([this, protectedThis = makeRefPtr(*this), identifier = identifier, promise = WTFMove(promise)] (Optional&lt;Exception&gt;&amp;&amp; exception) mutable {

Ditto.

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:139
&gt; +    m_platformCoordinator-&gt;pause([this, protectedThis = makeRefPtr(*this), identifier = identifier, promise = WTFMove(promise)] (Optional&lt;Exception&gt;&amp;&amp; exception) mutable {

Ditto.

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:171
&gt; +    m_platformCoordinator-&gt;setTrack(track, [track, this, protectedThis = makeRefPtr(*this), identifier = identifier, promise = WTFMove(promise)] (Optional&lt;Exception&gt;&amp;&amp; exception) mutable {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740893</commentid>
    <comment_count>14</comment_count>
      <attachid>423401</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-17 13:57:05 -0700</bug_when>
    <thetext>Comment on attachment 423401
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaMetadataInit.h:73
&gt; +        *title,

WTFMove(*title)

&gt; Source/WebCore/Modules/mediasession/MediaMetadataInit.h:74
&gt; +        *artist,

ditto.

&gt; Source/WebCore/Modules/mediasession/MediaMetadataInit.h:75
&gt; +        *album,

ditto.

&gt; Source/WebCore/Modules/mediasession/MediaMetadataInit.h:77
&gt; +        *trackIdentifier,

ditto.

&gt; Source/WebCore/Modules/mediasession/MediaMetadataInit.h:79
&gt; +        *artwork

ditto.

&gt; Source/WebCore/testing/Internals.cpp:6077
&gt; +    m_mockMediaSessionCoordinator = &amp;mock.get();

mock.ptr()

&gt; Source/WebCore/testing/MockMediaSessionCoordinator.h:44
&gt; +    MockMediaSessionCoordinator(ScriptExecutionContext&amp;, RefPtr&lt;StringCallback&gt;&amp;&amp;);

Why is this public?

&gt; Source/WebCore/testing/MockMediaSessionCoordinator.h:45
&gt; +    virtual ~MockMediaSessionCoordinator() = default;

Why do we need this?

&gt; Source/WebCore/testing/MockMediaSessionCoordinator.h:50
&gt; +

nit: extra line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743019</commentid>
    <comment_count>15</comment_count>
      <attachid>424070</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-23 14:50:05 -0700</bug_when>
    <thetext>Created attachment 424070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743071</commentid>
    <comment_count>16</comment_count>
      <attachid>424077</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-23 16:56:34 -0700</bug_when>
    <thetext>Created attachment 424077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743078</commentid>
    <comment_count>17</comment_count>
      <attachid>424079</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-23 17:13:26 -0700</bug_when>
    <thetext>Created attachment 424079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743102</commentid>
    <comment_count>18</comment_count>
      <attachid>424084</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-23 18:33:57 -0700</bug_when>
    <thetext>Created attachment 424084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743110</commentid>
    <comment_count>19</comment_count>
      <attachid>424087</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-23 18:56:36 -0700</bug_when>
    <thetext>Created attachment 424087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743345</commentid>
    <comment_count>20</comment_count>
      <attachid>424087</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-03-24 09:31:41 -0700</bug_when>
    <thetext>Comment on attachment 424087
Patch

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

r=me with some minor nits and notes.  Overall, what seems to be missing is a client interface for PlatformMediaSessionCoordinator to allow a channel for that object to communicate &quot;upwards&quot; to the DOM, but this looks good as it is.

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:81
&gt; +            protectedThis-&gt;logger().error(protectedThis-&gt;logChannel(), identifier, &quot;coordinator.seekTo failed!&quot;);

I think that if you pass in `this` as well as `protectedThis` into the lambda, you can just use the standard ERROR_LOG macro here.

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:115
&gt; +            protectedThis-&gt;logger().error(protectedThis-&gt;logChannel(), identifier, &quot;coordinator.play failed!&quot;);

Ditto here.

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:125
&gt; +        // FIXME: should the promise reject if there isn&apos;t a registered &apos;play&apos; action handler?
&gt; +        promise.resolve();

If the session has a default action to play() the active media element, this is probably fine.

&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:192
&gt; +        // FIXME: should the promise reject if there isn&apos;t a registered &apos;setTrack&apos; action handler?
&gt; +        promise.resolve();

This on the other hand, probably should reject. The proposed spec language could be something like: &quot;If the Coordinator&apos;s Media Session does not have an action handler or a default action for &quot;setTrack&quot;, reject the promise with an InvalidStateError.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743372</commentid>
    <comment_count>21</comment_count>
      <attachid>424149</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-24 10:09:01 -0700</bug_when>
    <thetext>Created attachment 424149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743414</commentid>
    <comment_count>22</comment_count>
      <attachid>424159</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-24 11:01:50 -0700</bug_when>
    <thetext>Created attachment 424159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743449</commentid>
    <comment_count>23</comment_count>
      <attachid>421845</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-24 11:55:31 -0700</bug_when>
    <thetext>Comment on attachment 421845
Patch

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

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.idl:32
&gt;&gt; +    undefined seekTo(double time);
&gt; 
&gt; HTMLMediaElement.fastSeek takes an unrestricted double. Not sure how much this is important but should we consider the same here?

Good point, fixed.

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.idl:35
&gt;&gt; +    undefined setTrack(DOMString trackIdentifier);
&gt; 
&gt; Should some of these return promises?
&gt; play and pause are doing so in HTMLMediaElement.
&gt; I could see seekTo take one as well, although HTMLMediaElement is event based there.
&gt; 
&gt; Not sure about setTrack. If part of its processing is asynchronous, maybe it is worth being able writing something like:
&gt; await coordinator.setTrack(1);
&gt; await coordinator.seekTo(0.001);

Great idea, changed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743450</commentid>
    <comment_count>24</comment_count>
      <attachid>423401</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-24 11:58:24 -0700</bug_when>
    <thetext>Comment on attachment 423401
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +
&gt; 
&gt; Please fill out the change log.

Fixed.

&gt;&gt; Source/WebCore/Modules/mediasession/MediaMetadataInit.h:62
&gt;&gt; +        return WTF::nullopt; \
&gt; 
&gt; I don&apos;t think this makes sense here. If this is generally useful, we should add it to a central place, but we generally prefer to have this spelled out everywhere.

OK, changed.

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.idl:34
&gt;&gt; +#endif
&gt; 
&gt; This will be wrong when the runtime feature for media session coordinator is disable but the compile time one is enabled. 
&gt; 
&gt; Perhaps we should just bite the bullet and make it always an event target.
&gt; 
&gt; Otherwise, someone will have to add the way to runtime conditionally make an interhave have one ancestor or another.

Good point, I changed it to always be an event target.

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.idl:44
&gt;&gt; +    [Conditional=MEDIA_SESSION_COORDINATOR, EnabledBySetting=MediaSessionCoordinator] readonly attribute MediaSessionCoordinator? coordinator;
&gt; 
&gt; Where is this all specified? Is it really adding these to MediaSession proper? Or is it using partials / mixins? If partials and/or mixins, please add new IDL files for those and &quot;includes&quot; as necessary.

I split them out into mixins.

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.h:43
&gt;&gt; +, public MediaSession::Observer {
&gt; 
&gt; These should all be on one line.

Fixed

&gt;&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:5788
&gt;&gt; +		072DBC0725DC6EDA00A1350E /* JSMediaSessionCoordinator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = JSMediaSessionCoordinator.cpp; path = ../../../../../../WebKitBuild/Debug/DerivedSources/WebCore/JSMediaSessionCoordinator.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; 
&gt; This looks incorrect.

Just Xcode being &quot;helpful&quot;. Fixed.

&gt;&gt; Source/WebCore/testing/Internals.h:1141
&gt;&gt;  };
&gt; 
&gt; Extra newline.

Removed

&gt;&gt; LayoutTests/TestExpectations:4643
&gt;&gt; +media/media-session/mock-coordinator.html [ Skip ]
&gt; 
&gt; Is this running anywhere then?

Yes, on platforms where the feature is enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743455</commentid>
    <comment_count>25</comment_count>
      <attachid>423401</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-24 12:00:01 -0700</bug_when>
    <thetext>Comment on attachment 423401
Patch

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

&gt;&gt; Source/WebCore/Modules/mediasession/MediaMetadataInit.h:73
&gt;&gt; +        *title,
&gt; 
&gt; WTFMove(*title)

All fixed, thanks.

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:73
&gt;&gt; +    m_platformCoordinator-&gt;seekTo(time, [time, this, protectedThis = makeRefPtr(*this), identifier = identifier, promise = WTFMove(promise)] (Optional&lt;Exception&gt;&amp;&amp; exception) mutable {
&gt; 
&gt; Nit. Can we s/identifier = identifier/identifier/g here?

All fixed, thanks.

&gt;&gt; Source/WebCore/testing/Internals.cpp:6077
&gt;&gt; +    m_mockMediaSessionCoordinator = &amp;mock.get();
&gt; 
&gt; mock.ptr()

Changed.

&gt;&gt; Source/WebCore/testing/MockMediaSessionCoordinator.h:44
&gt;&gt; +    MockMediaSessionCoordinator(ScriptExecutionContext&amp;, RefPtr&lt;StringCallback&gt;&amp;&amp;);
&gt; 
&gt; Why is this public?

It doesn&apos;t need to be, fixed.

&gt;&gt; Source/WebCore/testing/MockMediaSessionCoordinator.h:45
&gt;&gt; +    virtual ~MockMediaSessionCoordinator() = default;
&gt; 
&gt; Why do we need this?

Removed.

&gt;&gt; Source/WebCore/testing/MockMediaSessionCoordinator.h:50
&gt;&gt; +
&gt; 
&gt; nit: extra line

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743457</commentid>
    <comment_count>26</comment_count>
      <attachid>424087</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-24 12:03:20 -0700</bug_when>
    <thetext>Comment on attachment 424087
Patch

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

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp:125
&gt;&gt; +        promise.resolve();
&gt; 
&gt; If the session has a default action to play() the active media element, this is probably fine.

I&apos;ll fix these in a followup because it will require more changes to trigger a default action.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743530</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-24 13:58:04 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743557</commentid>
    <comment_count>28</comment_count>
      <attachid>424188</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-24 14:46:14 -0700</bug_when>
    <thetext>Created attachment 424188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743591</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-24 16:14:56 -0700</bug_when>
    <thetext>Committed r274983: &lt;https://commits.webkit.org/r274983&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424188.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420919</attachid>
            <date>2021-02-18 21:38:13 -0800</date>
            <delta_ts>2021-02-19 09:51:51 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-222158-20210218213812.patch</filename>
            <type>text/plain</type>
            <size>67741</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjk3Njg5NGQ4M2ExZDZiYjI2YWY0ZGJhYmUyMjA4YmNkNjE2OTMy
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAyLTE1ICBQZXIgQXJuZSAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQ2xvc2UgWFBDIGNvbm5lY3Rpb25z
IGJlZm9yZSBlbnRlcmluZyBzYW5kYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhlNTdmZGYxOTE2OTIwMjVj
YThjMjIzYWI3MDEzMWQwMWJlZDQ5NS4uMWE3YWFkMzIzNWVmNjcxYjQwODBlYzFiZDVhY2Q2NWYx
NTBhNTFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAyLTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIEV4
cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE1OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzQ1MDg4NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YUluaXQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGFJ
bml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6c2V0Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpzZXRQbGF5bGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmNh
bGxBY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRpbmF0b3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6bmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nSWRlbnRpZmll
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9n
Q2xhc3NOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsLgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0V2
ZW50TmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpzZXRMb2dnZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6bG9nZ2VyUHRyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0lkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2xhc3NOYW1lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Omxv
Z0NoYW5uZWwgY29uc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaWRsOgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFRyYWNrKToKKyAgICAgICAgKiB0ZXN0aW5n
L01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaC4KKwogMjAyMS0w
Mi0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgbGlid2Vi
cnRjIGluc3RhbGxzIHNvbWUgZmlsZXMgaW50byBpbmNvcnJlY3QgbG9jYXRpb25zIGluIC91c3Iv
bG9jYWwvaW5jbHVkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBiMmJmOTAyZWJk
OTgwNTEyNGQyZGI4MDBhNzc2MmExMzI1ZTM3OWIzLi5iYmFhZDAwMTZhMTgyMTEzNzU4MzFkNjE2
MmFmOTI4ODJkNDE4MTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNTYyLDYg
KzU2MiwxOSBAQCBNZWRpYVJlY29yZGVyRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVm
YXVsdDogZmFsc2UKIAorTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29y
ZGluYXRvciBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBleHBlcmlt
ZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yIEFQSSIKKyAgY29uZGl0aW9uOiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExl
Z2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDog
ZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTWVkaWFTZXNzaW9u
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIk1lZGlhIFNlc3Np
b24gQVBJIgpAQCAtNTc1LDYgKzU4OCwxOSBAQCBNZWRpYVNlc3Npb25FbmFibGVkOgogICAgIFdl
YkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYVNlc3Npb25QbGF5bGlzdEVuYWJs
ZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBlcmltZW50YWwgTWVk
aWFTZXNzaW9uIHBsYXlsaXN0IEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5h
YmxlIGV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gcGxheWxpc3QgQVBJIgorICBjb25kaXRpb246
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2Vi
S2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZh
dWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBNb2RlbEVs
ZW1lbnRFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiSFRNTCA8
bW9kZWw+IGVsZW1lbnQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggNzhk
NTg3M2EzMDg5MTAyMGU1YTc3MmJjOTUwYTJlYjY0MTNmYjVlMC4uMTNlYmU5M2E4ZDYzZDgzN2Iy
OGVmMTI4NTU4MzU5MTNiMGY3ODQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aApAQCAtMzI4LDYgKzMyOCwxNCBAQAogI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTiAxCiAj
ZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKSAm
JiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMjAw
MDAKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCkgJiYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTIwMDAwCisjZGVmaW5l
IEVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNUIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQo
RU5BQkxFX01FRElBX1NPVVJDRSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZP
Uk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShJT1NfRkFNSUxZ
X1NJTVVMQVRPUikKICNkZWZpbmUgRU5BQkxFX01FRElBX1NPVVJDRSAxCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDY4Y2Zk
NGEwNzI2MjUzNDhhY2U1N2I5M2ZkYTc3M2VjYjJjNjgxN2YuLjRhODA0YTdmNWJjY2YwNzQyZGYz
MGUwNDg5OTFmMDFmYzY4MjhkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDYgKzE3Myw3IEBAICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlk
bAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFz
b3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMTcyMzY0ZDliNTUxMTA5MjRkZDkz
YzdkYWNjNjg2MjlmZDc5YmU3Yy4uOTk5MGJhZDE3NDFiNThhZjAwODI0OWQ3NzY5MzY3ZjNhMGEw
ZDQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKQEAgLTEyOTksNiArMTI5OSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBmYmE5
ZWU1YTAxMzQ5ZmI2MWFiY2JhYTJkNWIyNDQzZTAyMGNlOWI5Li44NGNkMTU3NWY1ZTJjNmM3NWE1
YjM5MTExNWJmOWE4MjM0NjFjNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAg
LTIwNyw2ICsyMDcsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5k
bGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25Db29yZGluYXRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRh
ZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFk
YXRhLmNwcAppbmRleCBmNmZmMzFmYjA4ZGQ0OTgxYTNiY2U5MDM5MmJkYmQyY2RhNWZjZGI2Li45
ZGEyMDE1MjBmNDhiZjUxMWJhOWUwYzc5ZGE3MGM0NmM0MDU1MGE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcApAQCAt
NDIsNiArNDIsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFNZXRhZGF0YT4+IE1lZGlhTWV0YWRh
dGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwogICAgICAgICBtZXRhZGF0YS0+
c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRhZGF0YS0+c2V0QXJ0aXN0KGluaXQt
PmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1bShpbml0LT5hbGJ1bSk7CisjaWYg
RU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgICAgIG1ldGFkYXRhLT5zZXRUcmFj
a0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsKKyNlbmRpZgogICAgICAgICBhdXRv
IHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFydHdvcmsoY29udGV4dCwgV1RGTW92
ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3NzaWJsZUV4Y2VwdGlvbi5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBwb3NzaWJsZUV4Y2VwdGlv
bi5leGNlcHRpb24oKSB9OwpAQCAtMTA1LDYgKzEwOCwxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBN
ZWRpYU1ldGFkYXRhOjpzZXRBcnR3b3JrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IFZlYwogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZ
TElTVCkKK3ZvaWQgTWVkaWFNZXRhZGF0YTo6c2V0VHJhY2tJZGVudGlmaWVyKGNvbnN0IFN0cmlu
ZyYgaWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9tZXRhZGF0YS50cmFja0lkZW50aWZpZXIgPT0g
aWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tZXRhZGF0YS50cmFja0lkZW50
aWZpZXIgPSBpZGVudGlmaWVyOworICAgIG1ldGFkYXRhVXBkYXRlZCgpOworfQorI2VuZGlmCisK
IHZvaWQgTWVkaWFNZXRhZGF0YTo6bWV0YWRhdGFVcGRhdGVkKCkKIHsKICAgICBpZiAobV9zZXNz
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFNZXRhZGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YS5oCmluZGV4IDMwZTA5M2Q2ZDI3ZGRiNzQxNTI4MWVlOGI1ZDEwMDRlZmNmYWE1ZGEu
Ljg1NDg2OWM2MzZjMzc1MGVkNzk5YWU5MzY2OWJmNTJhYWM1MDVjZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmgKQEAgLTU5
LDYgKzU5LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8TWVkaWFJbWFnZT4mIGFydHdv
cmsoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmFydHdvcms7IH0KICAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRBcnR3b3JrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBWZWN0b3I8TWVkaWFJ
bWFnZT4mJik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBjb25z
dCBTdHJpbmcmIHRyYWNrSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEudHJh
Y2tJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRUcmFja0lkZW50aWZpZXIoY29uc3QgU3RyaW5n
Jik7CisjZW5kaWYKKwogICAgIGNvbnN0IE1lZGlhU2Vzc2lvbk1ldGFkYXRhJiBtZXRhZGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGE7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKaW5kZXgg
YjI4ZTk5ZDNiNzllNWVlNjFjNjFjZWQ3OTgxYzNjYjIwN2UzODEyMS4uZTYyNGViYzQ4ZWUxZmUw
YjBjYTZkYjEyNDcxZTIyMTE5NWExN2M3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKQEAgLTMzLDQgKzMzLDYgQEAK
ICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFydGlzdDsKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFsYnVtOwogICAgIFtTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlU
aHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhSW1hZ2U+IGFydHdvcms7
CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0
dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERPTVN0cmluZyB0cmFja0lkZW50
aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhTWV0YWRhdGFJbml0LmgKaW5kZXggNjY5ZGVmZmEyZDY5NDA4NWYwOGYxMGRmMWI5
MTZlZjQ0ZTg4NWUwZC4uZDg2ZjkxMjkzMzQxZDJkOTA1NDM1MTNkYmE4NTNlNzQ1NjE0Y2M4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRh
ZGF0YUluaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhSW5pdC5oCkBAIC0zNSw2ICszNSw5IEBAIHN0cnVjdCBNZWRpYU1ldGFkYXRhSW5p
dCB7CiAgICAgU3RyaW5nIHRpdGxlOwogICAgIFN0cmluZyBhcnRpc3Q7CiAgICAgU3RyaW5nIGFs
YnVtOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFN0cmluZyB0cmFj
a0lkZW50aWZpZXI7CisjZW5kaWYKICAgICBWZWN0b3I8TWVkaWFJbWFnZT4gYXJ0d29yazsKIAog
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
QEAgLTQzLDI4ICs0Niw0MCBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0YUluaXQgewogCiB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRpYU1ldGFkYXRhSW5pdDo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZSA8PCBhcnRpc3Qg
PDwgYWxidW0gPDwgYXJ0d29yazsKKyAgICBlbmNvZGVyIDw8IHRpdGxlIDw8IGFydGlzdCA8PCBh
bGJ1bQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIDw8IHRyYWNrSWRl
bnRpZmllcgorI2VuZGlmCisgICAgPDwgYXJ0d29yazsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gaW5saW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRhdGFJbml0PiBNZWRpYU1ldGFkYXRhSW5p
dDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgU3RyaW5nIHRpdGxlOwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodGl0bGUpKQotICAgICAgICByZXR1cm4geyB9OworI2RlZmluZSBE
RUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+IG5hbWU7IFwKKyAgICBkZWNv
ZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsgXAogCi0gICAgU3RyaW5nIGFydGlzdDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFy
dGlzdCkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgREVDT0RFKHRpdGxlLCBTdHJpbmcpOwor
ICAgIERFQ09ERShhcnRpc3QsIFN0cmluZyk7CisgICAgREVDT0RFKGFsYnVtLCBTdHJpbmcpOwor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIERFQ09ERSh0cmFja0lkZW50
aWZpZXIsIFN0cmluZyk7CisjZW5kaWYKKyAgICBERUNPREUoYXJ0d29yaywgVmVjdG9yPE1lZGlh
SW1hZ2U+KTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFs
YnVtKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIFZlY3RvcjxNZWRpYUltYWdlPiBhcnR3
b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0d29yaykpCi0gICAgICAgIHJldHVybiB7
IH07CisgICAgcmV0dXJuIHsgeworICAgICAgICAqdGl0bGUsCisgICAgICAgICphcnRpc3QsCisg
ICAgICAgICphbGJ1bSwKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICAg
ICAgKnRyYWNrSWRlbnRpZmllciwKKyNlbmRpZgorICAgICAgICAqYXJ0d29yaworICAgIH0gfTsK
IAotICAgIHJldHVybiBNZWRpYU1ldGFkYXRhSW5pdCB7IFdURk1vdmUodGl0bGUpLCBXVEZNb3Zl
KGFydGlzdCksIFdURk1vdmUoYWxidW0pLCBXVEZNb3ZlKGFydHdvcmspIH07CisjdW5kZWYgREVD
T0RFCiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbAppbmRleCA4YjBmNTVjZjE0YTU4MzhjYjU0ODk1
NjVkMDI3MmRhZmFkOWUxMjNkLi4wZGM4ZWYwMDdiMTA5NTFiMGQ1OTE5ZWIwMzEyNDM0ZjNmNjQ0
NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhSW5pdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCkBAIC0zMCw1ICszMCw2IEBACiAgICAgRE9NU3RyaW5n
IHRpdGxlID0gIiI7CiAgICAgRE9NU3RyaW5nIGFydGlzdCA9ICIiOwogICAgIERPTVN0cmluZyBh
bGJ1bSA9ICIiOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULCBFbmFi
bGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0XSBET01TdHJpbmcgdHJhY2tJZGVudGlm
aWVyID0gIiI7CiAgICAgc2VxdWVuY2U8TWVkaWFJbWFnZT4gYXJ0d29yayA9IFtdOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
Y3BwCmluZGV4IDkwMWRkYjBhN2I0ZmU5ZTkzNjNlNWZmMzFmMmVhYjQ3YTlkMzY0OGQuLjdiNGYw
ZGQ2OWU3YmY4Yjk5NjY3YWYxOWIzZjAwYzVjMDBmM2JjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhTWV0YWRhdGEu
aCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgogI2luY2x1ZGUgIk5hdmln
YXRvci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogCkBAIC03
NSw3ICs3Niw5IEBAIFJlZjxNZWRpYVNlc3Npb24+IE1lZGlhU2Vzc2lvbjo6Y3JlYXRlKE5hdmln
YXRvciYgbmF2aWdhdG9yKQogfQogCiBNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbihOYXZpZ2F0
b3ImIG5hdmlnYXRvcikKLSAgICA6IG1fbmF2aWdhdG9yKG1ha2VXZWFrUHRyKG5hdmlnYXRvcikp
CisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihuYXZpZ2F0b3Iuc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQorICAgICwgbV9uYXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9yKSkK
KyAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6Y3Jl
YXRlKCp0aGlzKSkKIHsKICAgICBtX2xvZ2dlciA9IG1ha2VSZWZQdHIoRG9jdW1lbnQ6OnNoYXJl
ZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZpZXIgPSBuZXh0TG9nSWRlbnRpZmllcigpOwpA
QCAtODgsNyArOTEsNiBAQCBNZWRpYVNlc3Npb246On5NZWRpYVNlc3Npb24oKSA9IGRlZmF1bHQ7
CiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+JiYg
bWV0YWRhdGEpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKLQogICAgIGlmICht
X21ldGFkYXRhKQogICAgICAgICBtX21ldGFkYXRhLT5yZXNldE1lZGlhU2Vzc2lvbigpOwogICAg
IG1fbWV0YWRhdGEgPSBXVEZNb3ZlKG1ldGFkYXRhKTsKQEAgLTk3LDYgKzk5LDQ1IEBAIHZvaWQg
TWVkaWFTZXNzaW9uOjpzZXRNZXRhZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJiBtZXRhZGF0
YSkKICAgICBtZXRhZGF0YVVwZGF0ZWQoKTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SKQordm9pZCBNZWRpYVNlc3Npb246OnNldENvb3JkaW5hdG9yKE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKiBjb29yZGluYXRvcikKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworCisgICAgaWYgKG1fY29vcmRpbmF0b3IpCisgICAgICAgIG1fY29vcmRpbmF0b3It
PnNldE1lZGlhU2Vzc2lvbihudWxscHRyKTsKKworICAgIG1fY29vcmRpbmF0b3IgPSBjb29yZGlu
YXRvcjsKKworICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAgICAgICBtX2Nvb3JkaW5hdG9yLT5z
ZXRNZWRpYVNlc3Npb24odGhpcyk7CisKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2
ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNvb3JkaW5hdG9yY2hhbmdlRXZlbnQsIEV2
ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorI2VuZGlm
CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKK0V4Y2VwdGlvbk9yPHZvaWQ+
IE1lZGlhU2Vzc2lvbjo6c2V0UGxheWxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgVmVjdG9yPFJlZlB0cjxNZWRpYU1ldGFkYXRhPj4mJiBwbGF5bGlzdCkKK3sKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIpOworCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4g
cmVzb2x2ZWRQbGF5bGlzdDsKKyAgICByZXNvbHZlZFBsYXlsaXN0LnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkocGxheWxpc3Quc2l6ZSgpKTsKKworICAgIGZvciAoYXV0byYgZW50cnkgOiBwbGF5bGlz
dCkgeworICAgICAgICBhdXRvIHJlc29sdmVkRW50cnkgPSBNZWRpYU1ldGFkYXRhOjpjcmVhdGUo
Y29udGV4dCwgeyBlbnRyeS0+bWV0YWRhdGEoKSB9KTsKKyAgICAgICAgaWYgKHJlc29sdmVkRW50
cnkuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZWRFbnRyeS5yZWxl
YXNlRXhjZXB0aW9uKCk7CisgICAgICAgIAorICAgICAgICByZXNvbHZlZFBsYXlsaXN0LnVuY2hl
Y2tlZEFwcGVuZChyZXNvbHZlZEVudHJ5LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKyAgICB9CisK
KyAgICBtX3BsYXlsaXN0ID0gV1RGTW92ZShyZXNvbHZlZFBsYXlsaXN0KTsKKworICAgIHJldHVy
biB7IH07Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVNlc3Npb246OnNldFBsYXliYWNrU3RhdGUo
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKIHsKICAgICBpZiAobV9wbGF5YmFja1N0
YXRlID09IHN0YXRlKQpAQCAtMTQxLDYgKzE4MiwxMiBAQCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0
aW9uSGFuZGxlcj4gTWVkaWFTZXNzaW9uOjpoYW5kbGVyRm9yQWN0aW9uKE1lZGlhU2Vzc2lvbkFj
dAogICAgIHJldHVybiBtX2FjdGlvbkhhbmRsZXJzLmdldChhY3Rpb24pOwogfQogCit2b2lkIE1l
ZGlhU2Vzc2lvbjo6Y2FsbEFjdGlvbkhhbmRsZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscyYgYWN0aW9uRGV0YWlscykKK3sKKyAgICBpZiAoYXV0byBoYW5kbGVyID0gbV9hY3Rpb25I
YW5kbGVycy5nZXQoYWN0aW9uRGV0YWlscy5hY3Rpb24pKQorICAgICAgICBoYW5kbGVyLT5oYW5k
bGVFdmVudChhY3Rpb25EZXRhaWxzKTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNz
aW9uOjpzZXRQb3NpdGlvblN0YXRlKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mJiBzdGF0
ZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaAppbmRleCA0ZjRiZTQ3NzI2
NDQwODZiNzdkNjFkOWY1YjA4MjNhMTVkMDUwNTY5Li43OTJmYzVkNjg1MDExY2FlMjRhMGJkNzQ0
NzY0OTM1MDQ1MDY5OThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uaApAQCAtMjcsNiArMjcsOSBAQAogCiAjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT04pCiAKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgor
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIK
ICNpbmNsdWRlICJKU01lZGlhUG9zaXRpb25TdGF0ZS5oIgogI2luY2x1ZGUgIkpTTWVkaWFTZXNz
aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgiCkBA
IC00Myw5ICs0NiwxOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYU1ldGFk
YXRhOworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CiBjbGFzcyBOYXZpZ2F0b3I7CiAK
LWNsYXNzIE1lZGlhU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4sIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb24+IHsKK2NsYXNzIE1lZGlhU2Vzc2lvbgor
ICAgIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uPgorI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQorICAgICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEKKyAgICAsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgorI2Vsc2UKKyAgICAs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb24+CisjZW5kaWYKK3sKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU2Vzc2lv
bj4gY3JlYXRlKE5hdmlnYXRvciYpOwogICAgIH5NZWRpYVNlc3Npb24oKTsKQEAgLTYwLDYgKzcz
LDE2IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQb3NpdGlvblN0YXRlKE9w
dGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9u
YWw8ZG91YmxlPiBjdXJyZW50UG9zaXRpb24oKSBjb25zdDsKIAorI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQorICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKiBjb29yZGlu
YXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fY29vcmRpbmF0b3IuZ2V0KCk7IH0KKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldENvb3JkaW5hdG9yKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKik7Cisj
ZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIGNvbnN0IFZl
Y3RvcjxSZWY8TWVkaWFNZXRhZGF0YT4+JiBwbGF5bGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxh
eWxpc3Q7IH0KKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQbGF5bGlzdChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgVmVjdG9yPFJlZlB0cjxNZWRpYU1ldGFkYXRhPj4mJik7CisjZW5kaWYKKwog
ICAgIHZvaWQgbWV0YWRhdGFVcGRhdGVkKCk7CiAKICAgICB2b2lkIGFjdGlvbkhhbmRsZXJzVXBk
YXRlZCgpOwpAQCAtNjcsMTIgKzkwLDI2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBS
ZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4gaGFuZGxlckZvckFjdGlvbihNZWRpYVNl
c3Npb25BY3Rpb24pIGNvbnN0OwogICAgIGJvb2wgaGFzQWN0aXZlQWN0aW9uSGFuZGxlcnMoKSBj
b25zdCB7IHJldHVybiAhbV9hY3Rpb25IYW5kbGVycy5pc0VtcHR5KCk7IH0KIAorICAgIHZvaWQg
Y2FsbEFjdGlvbkhhbmRsZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYpOworCisg
ICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAqbV9sb2dnZXIuZ2V0KCk7
IH0KKworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpk
ZXJlZjsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7
CiAKLSAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IHsgcmV0dXJuICptX2xvZ2dlci5n
ZXQoKTsgfQogICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X2xvZ0lkZW50aWZpZXI7IH0KIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gTWVkaWFTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9Cisg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7IH0KKworICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigp
OyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisjZW5k
aWYKKyAgICAKICAgICBXZWFrUHRyPE5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAgICAgUmVmUHRy
PE1lZGlhTWV0YWRhdGE+IG1fbWV0YWRhdGE7CiAgICAgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZSBtX3BsYXliYWNrU3RhdGUgeyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIH07CkBA
IC04Miw2ICsxMTksMTUgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPE1lZGlhU2Vzc2lvbkFjdGlv
biwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+LCBXVEY6OkludEhhc2g8TWVkaWFT
ZXNzaW9uQWN0aW9uPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVNlc3Npb25BY3Rp
b24+PiBtX2FjdGlvbkhhbmRsZXJzOwogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1fbG9nZ2Vy
OwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQorICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4g
bV9jb29yZGluYXRvcjsKKyAgICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVl
PiBtX2FzeW5jRXZlbnRRdWV1ZTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05f
UExBWUxJU1QpCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4gbV9wbGF5bGlzdDsKKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbi5pZGwKaW5kZXggODRmNDMwZDY4N2M3NGZlY2VlMTJhNjk2MTA1NWVi
NGQ5OTE1YWRiOC4uNWViZTk1NTEzN2VmYWIwOWVmMGI5ODBhMGNjY2QyNGIyZTEwMGFhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uaWRsCkBAIC0yNiw5ICsyNiw5IEBACiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lP
TiwKICAgICBFeHBvc2VkPVdpbmRvdywKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAog
ICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAotXSBpbnRlcmZhY2UgTWVkaWFTZXNzaW9u
IHsKK10gaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbiA6IEV2ZW50VGFyZ2V0IHsKKwogICAgIGF0dHJp
YnV0ZSBNZWRpYU1ldGFkYXRhPyBtZXRhZGF0YTsKIAogICAgIGF0dHJpYnV0ZSBNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlIHBsYXliYWNrU3RhdGU7CkBAIC0zNiw0ICszNiw5IEBACiAgICAgdW5k
ZWZpbmVkIHNldEFjdGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0aW9uIGFjdGlvbiwgTWVkaWFT
ZXNzaW9uQWN0aW9uSGFuZGxlcj8gaGFuZGxlcik7CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IHVuZGVmaW5lZCBzZXRQb3NpdGlvblN0YXRlKG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZT8g
c3RhdGUgPSBudWxsKTsKKworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SLCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yXSByZWFkb25seSBh
dHRyaWJ1dGUgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I/IGNvb3JkaW5hdG9yOworICAgIFtDb25k
aXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLCBFbmFibGVkQnlTZXR0aW5nPU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uY29vcmRpbmF0b3Jj
aGFuZ2U7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxl
ZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdCwgU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxN
ZWRpYU1ldGFkYXRhPiBwbGF5bGlzdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCmluZGV4IDVjYjY0NGZm
MzYyZGVkNzM3MDJiMTMzZjNmMjBhZDg2NzBiN2ZmNjEuLjIyOTcxYWQ2OWZlZTAyZjU4MzJhOTky
ZDFkMmE3NzAyNzE2YzIxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCkBAIC0zOSw2ICszOSw3IEBAIGVu
dW0gY2xhc3MgTWVkaWFTZXNzaW9uQWN0aW9uIHsKICAgICBTa2lwYWQsCiAgICAgU3RvcCwKICAg
ICBTZWVrdG8sCisgICAgU2V0dHJhY2ssCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkBA
IC01Niw3ICs1Nyw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVk
aWFTZXNzaW9uQWN0aW9uPiB7CiAgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6
TmV4dHRyYWNrLAogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNraXBhZCwK
ICAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTdG9wLAotICAgICAgICBXZWJD
b3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bworICAgICAgICBXZWJDb3JlOjpNZWRpYVNl
c3Npb25BY3Rpb246OlNlZWt0bywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9u
OjpTZXR0cmFjawogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbAppbmRleCA0NjM1ZTY5
NzM0ZWRhMTlkYzJhN2NhZWQ5YTVmYzcxMDc0NTk4Y2Q0Li41NzFhNmE0Mjc4NTI5YjhjZjQ2Mzky
MDI2ZTU3NjM3Njg0OGNkOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKQEAgLTM1LDQgKzM1LDcg
QEAKICAgICAic2tpcGFkIiwKICAgICAic3RvcCIsCiAgICAgInNlZWt0byIKKyNpZiBkZWZpbmVk
KE1FRElBX1NFU1NJT05fUExBWUxJU1QpICYmIE1FRElBX1NFU1NJT05fUExBWUxJU1QKKyAgICAs
ICJzZXR0cmFjayIKKyNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaAppbmRl
eCA2NDFlYTcyNGFjYTY3MDVkNzM1MDdlMjg3MWM1MTc0MTc5Njk2ZDdjLi5mMGRkZDliY2NlZjI5
N2RlZDA5Yzg1ZGJlNmE2NGJmNGVmZGRlYTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWls
cy5oCkBAIC0zNyw2ICszNyw5IEBAIHN0cnVjdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIHsK
ICAgICBPcHRpb25hbDxkb3VibGU+IHNlZWtPZmZzZXQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBz
ZWVrVGltZTsKICAgICBPcHRpb25hbDxib29sPiBmYXN0U2VlazsKKyNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9QTEFZTElTVCkKKyAgICBTdHJpbmcgdHJhY2tJZGVudGlmaWVyOworI2VuZGlmCiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCmluZGV4IDFhMWVmN2FlNzY1
YWUwMmYyMWUzMjMyYTEzNjRhOTZhMWFkZjE1NDcuLmM3NjgyZTY1MzllYzMxNDI5YzQ3ZTgxMmE0
MThhYmZjNWI2MmExYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCkBAIC0z
Miw0ICszMiw2IEBACiAgICAgZG91YmxlPyBzZWVrT2Zmc2V0OwogICAgIGRvdWJsZT8gc2Vla1Rp
bWU7CiAgICAgYm9vbGVhbj8gZmFzdFNlZWs7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VT
U0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gRE9N
U3RyaW5nPyB0cmFja0lkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZhZGU1NTVlYTYyNGFiZjI5MjEzY2YwMGUyODlhNTZlZWM0NmNmZTYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvci5jcHAKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb24u
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IHZvaWQqIG5leHRDb29yZGluYXRvckxvZ0lk
ZW50aWZpZXIoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBsb2dJZGVudGlmaWVyID0gY3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIoKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
b25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsKK30KKworUmVmPE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yPiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKFJlZjxQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yPiYmIHBsYXRmb3JtQ29vcmRpbmF0b3IpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoV1RGTW92ZShwbGF0Zm9ybUNv
b3JkaW5hdG9yKSkpOworfQorCitNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZv
cm1Db29yZGluYXRvcikKKyAgICA6IG1fcGxhdGZvcm1Db29yZGluYXRvcihXVEZNb3ZlKHBsYXRm
b3JtQ29vcmRpbmF0b3IpKQorICAgICwgbV9sb2dnZXIobWFrZVJlZihEb2N1bWVudDo6c2hhcmVk
TG9nZ2VyKCkpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKG5leHRDb29yZGluYXRvckxvZ0lkZW50
aWZpZXIoKSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCisgICAgbV9wbGF0
Zm9ybUNvb3JkaW5hdG9yLT5zZXRMb2dnZXIobV9sb2dnZXIuY29weVJlZigpLCBtX2xvZ0lkZW50
aWZpZXIpOworfQorCitNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6fk1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yKCkgPSBkZWZhdWx0OworCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVr
VG8oZG91YmxlIHRpbWUpCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0aW1lKTsK
KyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwg
Ik1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
bV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZWVrVG8odGltZSwgW3RpbWUsIHRoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghbV9z
ZXNzaW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlv
bkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0
aW9uOjpTZWVrdG8sCisgICAgICAgICAgICAuc2Vla1RpbWUgPSB0aW1lLAorICAgICAgICB9Owor
ICAgICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOworICAgIH0pOwor
fQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KCkKK3sKKyAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIpOworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9S
X0xPRyhMT0dJREVOVElGSUVSLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBsYXkoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICghbV9zZXNzaW9uKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIE1lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNz
aW9uQWN0aW9uOjpQbGF5LAorICAgICAgICB9OworICAgICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rp
b25IYW5kbGVyKGRldGFpbHMpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpwYXVzZSgpCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBp
ZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIk1lZGlh
U2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wbGF0
Zm9ybUNvb3JkaW5hdG9yLT5wYXVzZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
KnRoaXMpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsK
KyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBhdXNlLAorICAgICAg
ICB9OworICAgICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOworICAg
IH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBT
dHJpbmcmIHRyYWNrKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgaWYg
KCFtX3Nlc3Npb24pIHsKKyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJNZWRpYVNl
c3Npb24gaXMgTlVMTCEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZv
cm1Db29yZGluYXRvci0+c2V0VHJhY2sodHJhY2ssIFt0cmFjaywgdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWZQdHIoKnRoaXMpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3Nlc3Np
b24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246
OlNlZWt0bywKKyAgICAgICAgICAgIC50cmFja0lkZW50aWZpZXIgPSB0cmFjaywKKyAgICAgICAg
fTsKKyAgICAgICAgbV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKyAgICB9
KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKE1l
ZGlhU2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwor
ICAgIG1fc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Npb24pOworfQorCitXVEZMb2dDaGFubmVs
JiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCgpCit7CisgICAgcmV0dXJuIExv
Z01lZGlhOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikgJiYgRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yODg0NDdhNmI2MjlhMzFmODE5ODI0MTRmN2Q3MjQxMjRjMzM3MjVlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NFU1NJ
T05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CisjaW5jbHVkZSA8d3Rm
L09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CitjbGFzcyBN
ZWRpYVNlc3Npb247CisKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFJl
ZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IHsKK3B1YmxpYzoKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUoUmVmPFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5N
ZWRpYVNlc3Npb25Db29yZGluYXRvcigpOworCisgICAgdm9pZCBzZWVrVG8oZG91YmxlKTsKKyAg
ICB2b2lkIHBsYXkoKTsKKyAgICB2b2lkIHBhdXNlKCk7CisgICAgdm9pZCBzZXRUcmFjayhjb25z
dCBTdHJpbmcmKTsKKworICAgIHZvaWQgc2V0TWVkaWFTZXNzaW9uKE1lZGlhU2Vzc2lvbiopOwor
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmKTsKKworICAgIGNvbnN0IExvZ2dlciYgbG9n
Z2VyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXI7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgc3RhdGljIFdU
RkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogbG9nQ2xh
c3NOYW1lKCkgeyByZXR1cm4gIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQorCisgICAgV2Vh
a1B0cjxNZWRpYVNlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBSZWY8UGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvcj4gbV9wbGF0Zm9ybUNvb3JkaW5hdG9yOworICAgIFJlZjxjb25zdCBMb2dn
ZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKK307CisKK30K
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZjA5ZjQ5YjFlZmQ2NjNjZmRhM2QxYjBiYzUxNDllZTA0YjQ0MWQzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9u
YWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiwKKyAgICBFbmFibGVkQnlTZXR0aW5nPU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCitdIGludGVy
ZmFjZSBNZWRpYVNlc3Npb25Db29yZGluYXRvciB7CisgICAgdW5kZWZpbmVkIHNlZWtUbyhkb3Vi
bGUgdGltZSk7CisgICAgdW5kZWZpbmVkIHBsYXkoKTsKKyAgICB1bmRlZmluZWQgcGF1c2UoKTsK
KyAgICB1bmRlZmluZWQgc2V0VHJhY2soRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllcik7Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9y
TWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZp
Z2F0b3JNZWRpYVNlc3Npb24uaAppbmRleCAwNDIxOTYxN2MyMzg2OTMwMTA4YTY4NjBiMjEwMTI2
OWNlNTM2ODllLi43ZDJiZjMwNjhiZjU2N2MxYzZmOGEzYzJlODk1NGZhYWI0ZDIzM2QzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRp
YVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZp
Z2F0b3JNZWRpYVNlc3Npb24uaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgTmF2aWdhdG9yTWVkaWFTZXNzaW9uKE5hdmlnYXRvciYpOwogICAgIH5OYXZpZ2F0b3JNZWRp
YVNlc3Npb24oKTsKIAotICAgIHN0YXRpYyBNZWRpYVNlc3Npb24mIG1lZGlhU2Vzc2lvbihOYXZp
Z2F0b3ImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTWVkaWFTZXNzaW9uJiBtZWRpYVNl
c3Npb24oTmF2aWdhdG9yJik7CiAgICAgTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oKTsKIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYjBiYmMwYTJhYWU1YjIxZmVlY2JhMTk1YmU1OTc0
NzdhNWNhNDg3OS4uNTk5NTU2MWIyYTMwZjA0N2E1MTc0NDE1YzYzZTMzZDE1YTQxODEwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKQEAgLTEzMSw2ICsxMzEsNyBAQCBNb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVz
L01lZGlhQ2FwYWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYWNhcGFiaWxpdGllcy9OYXZpZ2F0
b3JNZWRpYUNhcGFiaWxpdGllcy5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGEuY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCitNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIE1vZHVsZXMvbWVkaWFzZXNz
aW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5jcHAKIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9CbG9iRXZlbnQuY3BwCkBA
IC0zMjAyLDYgKzMyMDMsNyBAQCBKU01lZGlhS2V5cy5jcHAKIEpTTWVkaWFLZXlzUmVxdWlyZW1l
bnQuY3BwCiBKU01lZGlhTGlzdC5jcHAKIEpTTWVkaWFNZXRhZGF0YS5jcHAKK0pTTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwCiBKU01lZGlhTWV0YWRhdGFJbml0LmNwcAogSlNNZWRpYVBvc2l0
aW9uU3RhdGUuY3BwCiBKU01lZGlhUXVlcnlMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0YmRkMTkwMWU4MmNkMDc4
YTNmNzQzNjIwNTZmMGM5NDA3NmIxY2MuLjgwYzJmZTc2MGIzNzYyOTM2MTgwNjRhMzg2MTgwYmJi
YjJkZjU4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTkwLDYgKzkwLDcgQEAKIAkJMDcwNzU2RDQxNDIzOUE0RjAwNDE0MTYx
IC8qIEpTSFRNTFRyYWNrRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcwNzU2RDIxNDIzOUE0RTAwNDE0MTYxIC8qIEpTSFRNTFRyYWNrRWxl
bWVudC5oICovOyB9OwogCQkwNzA3NTZERTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tD
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1
NkQ4MTQyMzlCNEIwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZS5oICovOyB9OwogCQkwNzA3NTZF
MDE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3NTZEQTE0MjM5QjRFMDA0MTQxNjEg
LyogSlNUZXh0VHJhY2tDdWVMaXN0LmggKi87IH07CisJCTA3MDhGMkI2MjVEREU0NUQwMDRGOTA4
NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyog
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovOyB9OwogCQkwNzA5RDc4RjFBRTU1
NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOUQ3OEQxQUU1NTU1NDAwNEU0MkY4IC8q
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwNzA5RDc5MjFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFu
YWdlck1hYy5jcHAgKi87IH07CiAJCTA3MDlENzkzMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzA5RDc5MTFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFu
YWdlck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xMjMsNiArMTI0LDcgQEAKIAkJMDczQTE1NTQyMTc3QTQyNjAwRUEwOEYyIC8qIFJlbW90
ZVZpZGVvU2FtcGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2NzFF
NDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMg
LyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NDBC
MTQ0MjVERTMxRjgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0MEIxNDMyNURF
MzFBOTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi87IH07CiAJ
CTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU4MkI5MThBNjlGMEUw
MDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUwMzNBODI1MkJEMzY4MDBGNzBDRTMgLyogVmlk
ZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzUwMzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFj
a1F1YWxpdHlNZXRyaWNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDEx
NDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovOyB9OwpAQCAtNTY3NCw2ICs1
Njc2LDcgQEAKIAkJMDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDc1NkQ5MTQyMzlCNEMwMDQxNDE2MSAvKiBKU1Rl
eHRUcmFja0N1ZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNUZXh0VHJhY2tDdWVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcw
NzU2REExNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFja0N1ZUxpc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzA5RDc4QzFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OEQxQUU1
NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNz
aW9uTWFuYWdlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTU3NjUsNiArNTc2OCwxMSBAQAogCQkwNzJBRTFFMzE4M0MwNzQxMDAwQTU5ODggLyogUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFF1aWNr
VGltZVBsdWdpblJlcGxhY2VtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDcyQUUxRTQxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUXVpY2tUaW1lUGx1Z2lu
UmVwbGFjZW1lbnQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkNBODYwMTZD
QjREQzMwMDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDMyNURDNkJEMzAwQTEzNTBF
IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA1MjVE
QzZCRDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3MkRCQzA2MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgcGF0
aCA9IC4uLy4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwNzJEQkMwNzI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3Mzc5NERDMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dl
ck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDT2ZmZXJBbnN3
ZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NEUzMTlFRTJG
RjIwMEU1QTA0NSAvKiBKU1JUQ0NvbmZpZ3VyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNSVENDb25maWd1cmF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDczNzk0RTQxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJh
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JUQ0NvbmZpZ3VyYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3ODYsNiArNTc5NCw4IEBACiAJ
CTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBB
dWRpb1NhbXBsZURhdGFTb3VyY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBBdWRpb1NhbXBsZURhdGFTb3VyY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERC
QSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
NDBCMTQzMjVERTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NEVDRUIxRTBDNEFFNTAwMEQwOTQ0IC8qIE1v
Y2tBdWRpb1NoYXJlZFVuaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9j
a0F1ZGlvU2hhcmVkVW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNF
QzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1vY2tBdWRpb1NoYXJlZFVuaXQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDZEMzBBMjE0NkVBMzcwMDNEREY4NCAvKiBJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE5NDk4LDYgKzE5NTA4LDggQEAKIAkJCQk1MTA1OEFEQTFENjc5MjU3MDA5QTUzOEMg
LyogTW9ja0dhbWVwYWRQcm92aWRlci5oICovLAogCQkJCTQxNTdFQkY5MUUzQUIwNjgwMEFDOUZF
OSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwICovLAogCQkJCTQxNTdFQkY4MUUz
QUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCAqLywKKwkJCQkw
NzQwQjE0MzI1REUzMUE5MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cCAqLywKKwkJCQkwNzQwQjE0MTI1REUzMUE4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmggKi8sCiAJCQkJMkQ2RjNFOEExQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQYWdl
T3ZlcmxheS5jcHAgKi8sCiAJCQkJMkQ2RjNFOEIxQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQYWdl
T3ZlcmxheS5oICovLAogCQkJCTJENkYzRThDMUMxRUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92
ZXJsYXkuaWRsICovLApAQCAtMjY3ODAsNiArMjY3OTIsNyBAQAogCQkJCTU1MDY0MEFEMjQwNzU2
REEwMEFBRTA0NSAvKiBQbGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oICovLAogCQkJCTA1NjJG
OTYwMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi8sCiAJCQkJQ0VFRkNEN0Ix
OURCMzNEQzAwMzg3NkQ3IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAorCQkJ
CTA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmggKi8sCiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8qIFBsYXRmb3JtVGV4dFRy
YWNrLmggKi8sCiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJh
bmdlcy5jcHAgKi8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGlt
ZVJhbmdlcy5oICovLApAQCAtMjgyMzQsNiArMjgyNDcsOSBAQAogCQkJCUNERERFQTM1MjUzOENF
NzAwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCAqLywKIAkJCQlDRERE
RUEzQTI1MzhFOUMyMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovLAog
CQkJCUNERERFQTM5MjUzOEU5QzIwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVy
LmlkbCAqLywKKwkJCQkwNzJEQkMwNTI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuY3BwICovLAorCQkJCTA3MkRCQzAzMjVEQzZCRDMwMEExMzUwRSAvKiBNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oICovLAorCQkJCTA3MkRCQkZCMjVEQjM4QkMwMEExMzUwRSAvKiBN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8sCiAJCQkJQ0REREVBMjkyNTM4Q0RDQjAwQTEz
MDBDIC8qIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCAqLywKIAkJCQlDRERERUEyODI1MzhD
RENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgKi8sCiAJCQkJQ0RE
REVBMjUyNTM4Q0RBQjAwQTEzMDBDIC8qIE5hdmlnYXRvcitNZWRpYVNlc3Npb24uaWRsICovLApA
QCAtMjgyNjIsNiArMjgyNzgsOCBAQAogCQkJCUNERERFQTQwMjUzOTExREIwMEExMzAwQyAvKiBK
U01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaCAqLywKIAkJCQlDRERERUE0RDI1MzkxM0JCMDBB
MTMwMEMgLyogSlNNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmNwcCAqLywKIAkJCQlDRERERUE0
RTI1MzkxM0JDMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmggKi8sCisJ
CQkJMDcyREJDMDcyNURDNkVEQTAwQTEzNTBFIC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwICovLAorCQkJCTA3MkRCQzA2MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmggKi8sCiAJCQkJQ0REREVBNDYyNTM5MTFERDAwQTEzMDBDIC8qIEpTTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAgKi8sCiAJCQkJQ0REREVBNDIyNTM5MTFEQzAwQTEzMDBD
IC8qIEpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJKTsKQEAgLTM0MTMxLDYg
KzM0MTQ5LDcgQEAKIAkJCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRUZDRDdDMTlEQjMzREMwMDM4NzZENyAvKiBQbGF0
Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MEUwOTE5MTg3
NUVFRkMwMDNBMUQzQyAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMDcwOEYyQjYyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Rjk0NDE2MTg2NEQwNDYwMDVEMzFDQiAvKiBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0NzY5
MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybU1vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM1OTg5MDU4MTRFOUMyOTkwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzYwMjksNiArMzYwNDgsNyBAQAogCQkJCTUxMDU4QURCMUQ2NzkyQzEw
MDlBNTM4QyAvKiBNb2NrR2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTA1OEFERDFE
Njc5MkMxMDA5QTUzOEMgLyogTW9ja0dhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0MTU3RUJGQTFFM0FCNjc5MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3NDBCMTQ0MjVERTMxRjgwMEUzOERCQSAvKiBN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ2RjNF
OTAxQzFFQ0IyNzAwNjFEQkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyRDk3RjA0NzE5REQ0MTNDMDAxRUU5QzMgLyogTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUExQUZFREU3MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5
bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDU5ZTRlYjQ5ZGU4OWJkNDdl
ZGMxMjk0YTkyM2VjNjNmNTVhZjY3NzkuLjNiZDgzMGVmMTIxNTFhYzU2M2NmNWYyZjlkMTg1MmQ4
YjUzYTEyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmgKQEAgLTE3MSw2ICsxNzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
bWFjcm8oTWVkaWFRdWVyeUxpc3RFdmVudCkgXAogICAgIG1hY3JvKE1lZGlhUmVjb3JkZXIpIFwK
ICAgICBtYWNybyhNZWRpYVJlY29yZGVyRXJyb3JFdmVudCkgXAorICAgIG1hY3JvKE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKSBcCiAgICAgbWFjcm8oTWVkaWFTb3VyY2UpIFwKICAgICBtYWNybyhN
ZWRpYVN0cmVhbSkgXAogICAgIG1hY3JvKE1lZGlhU3RyZWFtVHJhY2spIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCmluZGV4IGRjM2FmMDg1MmYyNmRlNTM4ZTQwMDU3OGY1OGI2NjM1NzRjYmI2ZTYu
LjAyMzI2M2FiOWQ1YTk2NDY5M2UwY2M4ODhmZDA5YjlkNDc3ZjU4NmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaApAQCAtOTcsNiArOTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFj
cm8oY29ubmVjdGluZykgXAogICAgIG1hY3JvKGNvbnRleHRtZW51KSBcCiAgICAgbWFjcm8oY29u
dHJvbGxlcmNoYW5nZSkgXAorICAgIG1hY3JvKGNvb3JkaW5hdG9yY2hhbmdlKSBcCiAgICAgbWFj
cm8oY29weSkgXAogICAgIG1hY3JvKGN1ZWNoYW5nZSkgXAogICAgIG1hY3JvKGN1dCkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggNjk2ZWE5Y2ViZDIxZDE0
OWFlYTVlMGJiNjQzN2FjZWZiOGNhMjAzNC4uMWE4MDFmNDgwOWQ0NTE2ZjUxYjg5NTA4MmRlMDBl
YjdjZDljNWFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFj
dG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBA
IC0yMyw2ICsyMyw3IEBAIE1lZGlhRGV2aWNlcyBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KIE1l
ZGlhS2V5U2Vzc2lvbiBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIE1lZGlhUXVlcnlMaXN0
CiBNZWRpYVJlY29yZGVyIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQorTWVkaWFTZXNzaW9uIGNv
bmRpdGlvbmFsPU1FRElBX1NFU1NJT04KIE1lZGlhU291cmNlIGNvbmRpdGlvbmFsPU1FRElBX1NP
VVJDRQogTWVkaWFTdHJlYW0gY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBNZWRpYVN0cmVhbVRy
YWNrIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBhZWNkOTI0MWQ0ZTdhMGIzYzY5OTk5ODQ4ZTFlYjVkMWNjZGQ3
MzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRl
IDx3dGYvVW5pcXVlUmVmLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVi
bGljIFJlZkNvdW50ZWQ8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVs
dDsKKworICAgIHVzaW5nIFNlZWtDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT47CisgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhkb3VibGUsIFNlZWtDb21wbGV0ZWRD
YWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBQbGF5Q29tcGxldGVkQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+OworICAgIHZpcnR1YWwgdm9pZCBwbGF5KFBsYXlDb21wbGV0
ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBQYXVzZUNvbXBsZXRlZENhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoUGF1c2VD
b21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBTZXRUcmFja0NvbXBsZXRlZENh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKwor
ICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYgbG9nZ2VyLCBjb25zdCB2b2lkKiBsb2dJ
ZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKGxvZ2dlcik7
CisgICAgICAgIG1fbG9nSWRlbnRpZmllciA9IGxvZ0lkZW50aWZpZXI7CisgICAgfQorCitwcm90
ZWN0ZWQ6CisgICAgZXhwbGljaXQgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0g
ZGVmYXVsdDsKKworICAgIGNvbnN0IExvZ2dlciogbG9nZ2VyUHRyKCkgY29uc3QgeyByZXR1cm4g
bV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1l
KCkgY29uc3QgeyByZXR1cm4gIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9Cisg
ICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IHsgcmV0dXJuIExvZ01lZGlhOyB9
CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29u
c3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NFU1NJT04pICYmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDYxZWE5YTE1YmE5Y2QxOTMzZDgzZTU1Mjdk
OTk3ZTc0NjY1ZjJlMTAuLjM5MjM0MzAzODlmYjdhNmI2M2ExM2E5NDc0NjdjM2E1ZGY2ODBmOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMzMyw2ICszMzMsMTIgQEAK
ICNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisj
aW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmgiCisjZW5kaWYKKwogdXNpbmcgSlNDOjpD
YWxsRGF0YTsKIHVzaW5nIEpTQzo6Q29kZUJsb2NrOwogdXNpbmcgSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGU7CkBAIC02MDI1LDggKzYwMzEsMjMgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxz
OjpzZW5kTWVkaWFTZXNzaW9uQWN0aW9uKE1lZGlhU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QKICAg
ICB9CiAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiB9CisKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKK0V4Y2VwdGlvbk9yPHZvaWQ+IElu
dGVybmFsczo6cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAoIWNvbnRleHREb2N1bWVudCgpIHx8ICFj
b250ZXh0RG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAgIGF1dG8mIHNlc3Npb24gPSBOYXZpZ2F0b3JN
ZWRpYVNlc3Npb246Om1lZGlhU2Vzc2lvbihjb250ZXh0RG9jdW1lbnQoKS0+ZG9tV2luZG93KCkt
Pm5hdmlnYXRvcigpKTsKKyAgICBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNpbmds
ZXRvbihjb250ZXh0KSk7CisgICAgc2Vzc2lvbi5zZXRDb29yZGluYXRvcihtX21lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmdldCgpKTsKKworICAgIHJldHVybiB7IH07Cit9CiAjZW5kaWYKIAorI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCiBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHN0
cmluZyhQYXJ0aWFsT3JkZXJpbmcgb3JkZXJpbmcpCiB7CiAgICAgaWYgKGlzX2x0KG9yZGVyaW5n
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDdlYmE2NTc4OWY4YmZkMmYyNjZi
Mzc0Mzk2NzM1NmY0MjA2YmQ5ZDguLmFmMGEwMzk0MjJkY2MxYzM5ODVmYWZlMGZkNDMzNGY0MWM4
YjUyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTM0LDYgKzEzNCw5IEBA
IGNsYXNzIFdlYlhSVGVzdDsKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIGNsYXNzIE1lZGlh
U2Vzc2lvbjsKIHN0cnVjdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzOworI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7
CisjZW5kaWYKICNlbmRpZgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Q
cm9taXNlRGVmZXJyZWQ7CkBAIC0xMDcyLDYgKzEwNzUsMTEgQEAgcHVibGljOgogI2lmIEVOQUJM
RShNRURJQV9TRVNTSU9OKQogICAgIEV4Y2VwdGlvbk9yPGRvdWJsZT4gY3VycmVudE1lZGlhU2Vz
c2lvblBvc2l0aW9uKGNvbnN0IE1lZGlhU2Vzc2lvbiYpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNlbmRNZWRpYVNlc3Npb25BY3Rpb24oTWVkaWFTZXNzaW9uJiwgY29uc3QgTWVkaWFTZXNzaW9u
QWN0aW9uRGV0YWlscyYpOworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworI2VuZGlmCisKICNlbmRpZgogCiAgICAgZW51
bSBUcmVlVHlwZSA6IHVpbnQ4X3QgeyBUcmVlLCBTaGFkb3dJbmNsdWRpbmdUcmVlLCBDb21wb3Nl
ZFRyZWUgfTsKQEAgLTExMTQsNiArMTEyMiwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJY
UikKICAgICBSZWZQdHI8V2ViWFJUZXN0PiBtX3hyVGVzdDsKICNlbmRpZgorCisjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yPiBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworI2VuZGlmCisKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBk
M2M1MzIyYTgyODhiMjljOGU0OGY5MGY2MzI1MGVhOGYzZDc2ZTY5Li44YWI0MjlkMDJjODkxMDY0
NmJkZjFhNzM0NmJkYjYwZTU0MmE4YWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCkBAIC05NjksNiArOTY5LDcgQEAgZW51bSBUcmVlVHlwZSB7CiAKICAgICBbQ29uZGl0aW9u
YWw9TUVESUFfU0VTU0lPTiwgTWF5VGhyb3dFeGNlcHRpb25dIGRvdWJsZSBjdXJyZW50TWVkaWFT
ZXNzaW9uUG9zaXRpb24oTWVkaWFTZXNzaW9uIHNlc3Npb24pOwogICAgIFtDb25kaXRpb25hbD1N
RURJQV9TRVNTSU9OLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNlbmRNZWRpYVNlc3Np
b25BY3Rpb24oTWVkaWFTZXNzaW9uIHNlc3Npb24sIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMg
YWN0aW9uRGV0YWlscyk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IsIE1heVRocm93RXhjZXB0aW9uLCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB1
bmRlZmluZWQgcmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKIAogICAgIERP
TVN0cmluZyB0cmVlT3JkZXIoTm9kZSBhLCBOb2RlIGIsIG9wdGlvbmFsIFRyZWVUeXBlIHRyZWUg
PSAiVHJlZSIpOwogICAgIERPTVN0cmluZyB0cmVlT3JkZXJCb3VuZGFyeVBvaW50cyhOb2RlIGNv
bnRhaW5lckEsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0QSwgTm9kZSBjb250YWluZXJCLCB1bnNpZ25l
ZCBsb25nIG9mZnNldEIsIG9wdGlvbmFsIFRyZWVUeXBlIHRyZWUgPSAiVHJlZSIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYwMTQ5YjU2YWExNWFjNjE3MDExYTkxZTNiOTA3OGEyYTY1NWYzODcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKwor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUikKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8
d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9VVUlELmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3ImIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
c2luZ2xldG9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY29vcmRpbmF0b3Io
Y29udGV4dCk7CisgICAgcmV0dXJuIGNvb3JkaW5hdG9yOworfQorCitNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCit7Cit9CisKK3ZvaWQg
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIFNlZWtDb21w
bGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUo
TE9HSURFTlRJRklFUiwgdGltZSk7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsK
KyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7Cisg
ICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQt
PnBvc3RUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCit2
b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxs
YmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJ
RklFUik7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNl
dFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNr
KQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9j
b250ZXh0LT5wb3N0VGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsK
K30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg4N2ZlM2E2YTc4YzAw
MDViMWE3MmFjOWY1ZWI3YjI0OTMxYmJhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw1NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKKworI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
ciA6IHB1YmxpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yJiBzaW5nbGV0b24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpOworCisgICAgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICB2aXJ0dWFsIH5Nb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ByaXZhdGU6CisKKyAgICB2b2lkIHNlZWtUbyhkb3VibGUs
IFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHBsYXkoUGxheUNvbXBs
ZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxs
YmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tD
b21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKworICAgIFJlZjxTY3JpcHRFeGVjdXRpb25Db250
ZXh0PiBtX2NvbnRleHQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4OWJhOTIyNDMwMTE5
OTBmZjM0YzZiNTM1Y2Q5OTk3NTViODA1MTguLjExM2YzNzNkYjdhODZlNDA0YTMxM2E3ZjhmZTkz
MTA3MDM3OGUwMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMi0xOCAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBFeHBl
cmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0
bWw6IEFkZGVkLgorCiAyMDIxLTAyLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZWVuYWJsZSBHUFVQcm9jZXNzIE1lZGlhIGZsYWcgaW4gV2ViUlRDIHRl
c3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29v
cmRpbmF0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9t
b2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDU4ZGIxMDJmYmMwMDQ5
ODhjZGVjY2FlYjQ5NGI3YWIyNTY0OTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIyIEBACitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciA9
PSAndW5kZWZpbmVkJykgT0sKK1JVTihpbnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IoKSkKK0VWRU5UKGNvb3JkaW5hdG9yY2hhbmdlKQorRVhQRUNURUQgKG5hdmln
YXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IgIT0gJ3VuZGVmaW5lZCcpIE9LCisKK1JVTihu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKSkKK0VYUEVDVEVEIChsYXRl
c3RBY3Rpb24gIT0gJ3BsYXknKSBPSworQUNUSU9OOiBwbGF5CitFWFBFQ1RFRCAobGF0ZXN0QWN0
aW9uID09ICdwbGF5JykgT0sKKworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0
b3IucGF1c2UoKSkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gIT0gJ3BhdXNlJykgT0sKK0FDVElP
TjogcGF1c2UKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3BhdXNlJykgT0sKKworUlVOKG5h
dmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEwKSkKK0VYUEVDVEVEIChs
YXRlc3RBY3Rpb24gIT0gJ3NlZWt0bycpIE9LCitBQ1RJT046IHNlZWt0bworRVhQRUNURUQgKGxh
dGVzdEFjdGlvbiA9PSAnc2Vla3RvJykgT0sKKworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43YWZkNzNhZWVhY2E1ZDZjNWY4ZTNkZDRiMTc0ZjMzODM3OTU3MzA2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5h
dG9yLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDx0aXRsZT5tb2NrLW1lZGlhc2Vzc2lvbi1jb29yZGluYXRvcjwvdGl0bGU+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisK
KyAgICBsZXQgbGF0ZXN0QWN0aW9uOworCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCBhc3luYyBldmVudCA9PiB7CisKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICBmYWlsVGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEludGVybmFscycpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgY2hhbmdlUHJv
bWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgbmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbi5hZGRFdmVudExpc3RlbmVyKCdjb29yZGluYXRvcmNoYW5nZScsIChldmVudCkg
PT4geworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRVZFTlQoJHtldmVudC50eXBlfSlg
KTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yJywgdW5kZWZpbmVkKTsKKworICAgICAgICBydW4oJ2ludGVybmFscy5yZWdpc3Rlck1v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvcigpJyk7CisKKyAgICAgICAgYXdhaXQgY2hhbmdlUHJv
bWlzZTsKKyAgICAgICAgCisgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5jb29yZGluYXRvcicsIHVuZGVmaW5lZCwgJyE9Jyk7CisKKyAgICAgICAgbGV0IGFjdGlv
bnMgPSBbJ3BsYXknLCAncGF1c2UnLCAnc2Vla3RvJ107CisgICAgICAgIGFjdGlvbnMuZm9yRWFj
aChhY3Rpb24gPT4geworICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRBY3Rp
b25IYW5kbGVyKGFjdGlvbiwgYWN0aW9uRGV0YWlscyA9PiB7CisgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKGBBQ1RJT046ICR7YWN0aW9uRGV0YWlscy5hY3Rpb259YCk7CisgICAgICAgICAg
ICAgICAgbGF0ZXN0QWN0aW9uID0gYWN0aW9uRGV0YWlscy5hY3Rpb247CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBsZXQgdGVzdEFjdGlvbiA9IGFzeW5j
IChhY3Rpb24pID0+IHsKKyAgICAgICAgICAgIGxldCBjb21tYW5kOworICAgICAgICAgICAgaWYg
KGFjdGlvbiA9PSAnc2Vla3RvJykKKyAgICAgICAgICAgICAgICBjb21tYW5kID0gJ3NlZWtUbygx
MCknCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY29tbWFuZCA9IGAke2FjdGlv
bn0oKWA7CisKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgICAgICBydW4o
YG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IuJHtjb21tYW5kfWApOworICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RBY3Rpb24nLCBhY3Rpb24sICchPScpOworICAgICAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0QWN0aW9uJywgYWN0aW9u
LCAnPT0nKTsKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9u
cykKKyAgICAgICAgICAgIGF3YWl0IHRlc3RBY3Rpb24oYWN0aW9uKTsKKworICAgICAgICBjb25z
b2xlV3JpdGUoJycpOworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSwge29uY2U6IHRydWV9KTsK
KworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420984</attachid>
            <date>2021-02-19 09:51:54 -0800</date>
            <delta_ts>2021-02-19 15:09:18 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-222158-20210219095153.patch</filename>
            <type>text/plain</type>
            <size>69698</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjk3Njg5NGQ4M2ExZDZiYjI2YWY0ZGJhYmUyMjA4YmNkNjE2OTMy
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAyLTE1ICBQZXIgQXJuZSAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQ2xvc2UgWFBDIGNvbm5lY3Rpb25z
IGJlZm9yZSBlbnRlcmluZyBzYW5kYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhlNTdmZGYxOTE2OTIwMjVj
YThjMjIzYWI3MDEzMWQwMWJlZDQ5NS4uMWE3YWFkMzIzNWVmNjcxYjQwODBlYzFiZDVhY2Q2NWYx
NTBhNTFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAyLTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIEV4
cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE1OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzQ1MDg4NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YUluaXQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGFJ
bml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6c2V0Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpzZXRQbGF5bGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmNh
bGxBY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRpbmF0b3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6bmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nSWRlbnRpZmll
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9n
Q2xhc3NOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsLgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0V2
ZW50TmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpzZXRMb2dnZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6bG9nZ2VyUHRyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0lkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2xhc3NOYW1lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Omxv
Z0NoYW5uZWwgY29uc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaWRsOgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFRyYWNrKToKKyAgICAgICAgKiB0ZXN0aW5n
L01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaC4KKwogMjAyMS0w
Mi0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgbGlid2Vi
cnRjIGluc3RhbGxzIHNvbWUgZmlsZXMgaW50byBpbmNvcnJlY3QgbG9jYXRpb25zIGluIC91c3Iv
bG9jYWwvaW5jbHVkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBiMmJmOTAyZWJk
OTgwNTEyNGQyZGI4MDBhNzc2MmExMzI1ZTM3OWIzLi5iYmFhZDAwMTZhMTgyMTEzNzU4MzFkNjE2
MmFmOTI4ODJkNDE4MTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNTYyLDYg
KzU2MiwxOSBAQCBNZWRpYVJlY29yZGVyRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVm
YXVsdDogZmFsc2UKIAorTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29y
ZGluYXRvciBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBleHBlcmlt
ZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yIEFQSSIKKyAgY29uZGl0aW9uOiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExl
Z2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDog
ZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTWVkaWFTZXNzaW9u
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIk1lZGlhIFNlc3Np
b24gQVBJIgpAQCAtNTc1LDYgKzU4OCwxOSBAQCBNZWRpYVNlc3Npb25FbmFibGVkOgogICAgIFdl
YkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYVNlc3Npb25QbGF5bGlzdEVuYWJs
ZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBlcmltZW50YWwgTWVk
aWFTZXNzaW9uIHBsYXlsaXN0IEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5h
YmxlIGV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gcGxheWxpc3QgQVBJIgorICBjb25kaXRpb246
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2Vi
S2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZh
dWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBNb2RlbEVs
ZW1lbnRFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiSFRNTCA8
bW9kZWw+IGVsZW1lbnQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggNzhk
NTg3M2EzMDg5MTAyMGU1YTc3MmJjOTUwYTJlYjY0MTNmYjVlMC4uMTNlYmU5M2E4ZDYzZDgzN2Iy
OGVmMTI4NTU4MzU5MTNiMGY3ODQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aApAQCAtMzI4LDYgKzMyOCwxNCBAQAogI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTiAxCiAj
ZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKSAm
JiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMjAw
MDAKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IgMQorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCkgJiYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTIwMDAwCisjZGVmaW5l
IEVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNUIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQo
RU5BQkxFX01FRElBX1NPVVJDRSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZP
Uk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShJT1NfRkFNSUxZ
X1NJTVVMQVRPUikKICNkZWZpbmUgRU5BQkxFX01FRElBX1NPVVJDRSAxCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggN2FiZTlmNWZhM2I1MWQ1ZTkxNWRhN2IzNTM4N2Q4Yzg1M2EzZGFi
Ny4uMmVkNDE4NjY3MGI4ZDBjYTJkMDczYTYwZTJlMGUyODVjMmUzMmYxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTMzNiw2ICszMzYsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxF
UwogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKICAgICBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbAogICAgIE1v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaWRsCisgICAgTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCiAgICAgTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwKICAgICBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3IrTWVkaWFTZXNzaW9uLmlkbAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA2OGNmZDRhMDcyNjI1
MzQ4YWNlNTdiOTNmZGE3NzNlY2IyYzY4MTdmLi40YTgwNGE3ZjViY2NmMDc0MmRmMzBlMDQ4OTkx
ZjAxZmM2ODI4ZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKQEAgLTE3Myw2ICsxNzMsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5pZGwKKyQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRv
citNZWRpYVNlc3Npb24uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc291cmNlL0F1
ZGlvVHJhY2srTWVkaWFTb3VyY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDE3MjM2NGQ5YjU1MTEwOTI0ZGQ5M2M3ZGFjYzY4
NjI5ZmQ3OWJlN2MuLjk5OTBiYWQxNzQxYjU4YWYwMDgyNDlkNzc2OTM2N2YzYTBhMGQ0N2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC0xMjk5LDYgKzEyOTksOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNl
c3Npb25BY3Rpb25IYW5kbGVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
U291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZmJhOWVlNWEwMTM0
OWZiNjFhYmNiYWEyZDViMjQ0M2UwMjBjZTliOS4uODRjZDE1NzVmNWUyYzZjNzVhNWIzOTExMTVi
ZjlhODIzNDYxYzU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMDcsNiAr
MjA3LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5pZGwg
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNz
aW9uL05hdmlnYXRvcitNZWRpYVNlc3Npb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAK
aW5kZXggZjZmZjMxZmIwOGRkNDk4MWEzYmNlOTAzOTJiZGJkMmNkYTVmY2RiNi4uOWRhMjAxNTIw
ZjQ4YmY1MTFiYTllMGM3OWRhNzBjNDZjNDA1NTBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAKQEAgLTQyLDYgKzQy
LDkgQEAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhTWV0YWRhdGE+PiBNZWRpYU1ldGFkYXRhOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY28KICAgICAgICAgbWV0YWRhdGEtPnNldFRpdGxl
KGluaXQtPnRpdGxlKTsKICAgICAgICAgbWV0YWRhdGEtPnNldEFydGlzdChpbml0LT5hcnRpc3Qp
OwogICAgICAgICBtZXRhZGF0YS0+c2V0QWxidW0oaW5pdC0+YWxidW0pOworI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgICAgICBtZXRhZGF0YS0+c2V0VHJhY2tJZGVudGlm
aWVyKGluaXQtPnRyYWNrSWRlbnRpZmllcik7CisjZW5kaWYKICAgICAgICAgYXV0byBwb3NzaWJs
ZUV4Y2VwdGlvbiA9IG1ldGFkYXRhLT5zZXRBcnR3b3JrKGNvbnRleHQsIFdURk1vdmUoaW5pdC0+
YXJ0d29yaykpOwogICAgICAgICBpZiAocG9zc2libGVFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgcG9zc2libGVFeGNlcHRpb24uZXhjZXB0
aW9uKCkgfTsKQEAgLTEwNSw2ICsxMDgsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFNZXRh
ZGF0YTo6c2V0QXJ0d29yayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBWZWMKICAg
ICByZXR1cm4geyB9OwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCit2
b2lkIE1lZGlhTWV0YWRhdGE6OnNldFRyYWNrSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIpCit7CisgICAgaWYgKG1fbWV0YWRhdGEudHJhY2tJZGVudGlmaWVyID09IGlkZW50aWZp
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWV0YWRhdGEudHJhY2tJZGVudGlmaWVyID0g
aWRlbnRpZmllcjsKKyAgICBtZXRhZGF0YVVwZGF0ZWQoKTsKK30KKyNlbmRpZgorCiB2b2lkIE1l
ZGlhTWV0YWRhdGE6Om1ldGFkYXRhVXBkYXRlZCgpCiB7CiAgICAgaWYgKG1fc2Vzc2lvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEu
aAppbmRleCAzMGUwOTNkNmQyN2RkYjc0MTUyODFlZThiNWQxMDA0ZWZjZmFhNWRhLi44NTQ4Njlj
NjM2YzM3NTBlZDc5OWFlOTM2NjliZjUyYWFjNTA1Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCkBAIC01OSw2ICs1OSwx
MSBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPE1lZGlhSW1hZ2U+JiBhcnR3b3JrKCkgY29u
c3QgeyByZXR1cm4gbV9tZXRhZGF0YS5hcnR3b3JrOyB9CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0QXJ0d29yayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVmVjdG9yPE1lZGlhSW1hZ2U+JiYp
OwogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgU3RyaW5n
JiB0cmFja0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLnRyYWNrSWRlbnRp
ZmllcjsgfQorICAgIHZvaWQgc2V0VHJhY2tJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOworI2Vu
ZGlmCisKICAgICBjb25zdCBNZWRpYVNlc3Npb25NZXRhZGF0YSYgbWV0YWRhdGEoKSBjb25zdCB7
IHJldHVybiBtX21ldGFkYXRhOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCmluZGV4IGIyOGU5OWQz
Yjc5ZTVlZTYxYzYxY2VkNzk4MWMzY2IyMDdlMzgxMjEuLmU2MjRlYmM0OGVlMWZlMGIwY2E2ZGIx
MjQ3MWUyMjExOTVhMTdjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCkBAIC0zMyw0ICszMyw2IEBACiAgICAgYXR0
cmlidXRlIERPTVN0cmluZyBhcnRpc3Q7CiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhbGJ1bTsK
ICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNl
cHRpb25dIGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxNZWRpYUltYWdlPiBhcnR3b3JrOworCisgICAg
W0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fUExBWUxJU1QsIEVuYWJsZWRCeVNldHRpbmc9TWVk
aWFTZXNzaW9uUGxheWxpc3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHJhY2tJZGVudGlmaWVyOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGFJbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhSW5pdC5oCmluZGV4IDY2OWRlZmZhMmQ2OTQwODVmMDhmMTBkZjFiOTE2ZWY0NGU4
ODVlMGQuLmQ4NmY5MTI5MzM0MWQyZDkwNTQzNTEzZGJhODUzZTc0NTYxNGNjOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0
YUluaXQuaApAQCAtMzUsNiArMzUsOSBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0YUluaXQgewogICAg
IFN0cmluZyB0aXRsZTsKICAgICBTdHJpbmcgYXJ0aXN0OwogICAgIFN0cmluZyBhbGJ1bTsKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBTdHJpbmcgdHJhY2tJZGVudGlm
aWVyOworI2VuZGlmCiAgICAgVmVjdG9yPE1lZGlhSW1hZ2U+IGFydHdvcms7CiAKICAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CkBAIC00Mywy
OCArNDYsNDAgQEAgc3RydWN0IE1lZGlhTWV0YWRhdGFJbml0IHsKIAogdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gaW5saW5lIHZvaWQgTWVkaWFNZXRhZGF0YUluaXQ6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgdGl0bGUgPDwgYXJ0aXN0IDw8IGFsYnVt
IDw8IGFydHdvcms7CisgICAgZW5jb2RlciA8PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0KKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICA8PCB0cmFja0lkZW50aWZpZXIK
KyNlbmRpZgorICAgIDw8IGFydHdvcms7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlu
bGluZSBPcHRpb25hbDxNZWRpYU1ldGFkYXRhSW5pdD4gTWVkaWFNZXRhZGF0YUluaXQ6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIFN0cmluZyB0aXRsZTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHRpdGxlKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyNkZWZpbmUgREVDT0RFKG5h
bWUsIHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBu
YW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7IFwK
IAotICAgIFN0cmluZyBhcnRpc3Q7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcnRpc3QpKQot
ICAgICAgICByZXR1cm4geyB9OworICAgIERFQ09ERSh0aXRsZSwgU3RyaW5nKTsKKyAgICBERUNP
REUoYXJ0aXN0LCBTdHJpbmcpOworICAgIERFQ09ERShhbGJ1bSwgU3RyaW5nKTsKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBERUNPREUodHJhY2tJZGVudGlmaWVyLCBT
dHJpbmcpOworI2VuZGlmCisgICAgREVDT0RFKGFydHdvcmssIFZlY3RvcjxNZWRpYUltYWdlPik7
CiAKLSAgICBTdHJpbmcgYWxidW07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhbGJ1bSkpCi0g
ICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBWZWN0b3I8TWVkaWFJbWFnZT4gYXJ0d29yazsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGFydHdvcmspKQotICAgICAgICByZXR1cm4geyB9OworICAg
IHJldHVybiB7IHsKKyAgICAgICAgKnRpdGxlLAorICAgICAgICAqYXJ0aXN0LAorICAgICAgICAq
YWxidW0sCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgICAgICp0cmFj
a0lkZW50aWZpZXIsCisjZW5kaWYKKyAgICAgICAgKmFydHdvcmsKKyAgICB9IH07CiAKLSAgICBy
ZXR1cm4gTWVkaWFNZXRhZGF0YUluaXQgeyBXVEZNb3ZlKHRpdGxlKSwgV1RGTW92ZShhcnRpc3Qp
LCBXVEZNb3ZlKGFsYnVtKSwgV1RGTW92ZShhcnR3b3JrKSB9OworI3VuZGVmIERFQ09ERQogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhSW5pdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhSW5pdC5pZGwKaW5kZXggOGIwZjU1Y2YxNGE1ODM4Y2I1NDg5NTY1ZDAyNzJk
YWZhZDllMTIzZC4uMGRjOGVmMDA3YjEwOTUxYjBkNTkxOWViMDMxMjQzNGYzZjY0NDYxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0
YUluaXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGFJbml0LmlkbApAQCAtMzAsNSArMzAsNiBAQAogICAgIERPTVN0cmluZyB0aXRsZSA9
ICIiOwogICAgIERPTVN0cmluZyBhcnRpc3QgPSAiIjsKICAgICBET01TdHJpbmcgYWxidW0gPSAi
IjsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0
dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllciA9ICIi
OwogICAgIHNlcXVlbmNlPE1lZGlhSW1hZ2U+IGFydHdvcmsgPSBbXTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAppbmRl
eCA5MDFkZGIwYTdiNGZlOWU5MzYzZTVmZjMxZjJlYWI0N2E5ZDM2NDhkLi43YjRmMGRkNjllN2Jm
OGI5OTY2N2FmMTliM2YwMGM1YzAwZjNiYzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
IAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYU1ldGFkYXRhLmgiCisjaW5j
bHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKIApAQCAtNzUsNyArNzYs
OSBAQCBSZWY8TWVkaWFTZXNzaW9uPiBNZWRpYVNlc3Npb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5h
dmlnYXRvcikKIH0KIAogTWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24oTmF2aWdhdG9yJiBuYXZp
Z2F0b3IpCi0gICAgOiBtX25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorICAgIDog
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIobmF2aWdhdG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKKyAgICAsIG1fbmF2aWdhdG9yKG1ha2VXZWFrUHRyKG5hdmlnYXRvcikpCisgICAgLCBt
X2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNyZWF0ZSgqdGhp
cykpCiB7CiAgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKERvY3VtZW50OjpzaGFyZWRMb2dnZXIo
KSk7CiAgICAgbV9sb2dJZGVudGlmaWVyID0gbmV4dExvZ0lkZW50aWZpZXIoKTsKQEAgLTg4LDcg
KzkxLDYgQEAgTWVkaWFTZXNzaW9uOjp+TWVkaWFTZXNzaW9uKCkgPSBkZWZhdWx0Owogdm9pZCBN
ZWRpYVNlc3Npb246OnNldE1ldGFkYXRhKFJlZlB0cjxNZWRpYU1ldGFkYXRhPiYmIG1ldGFkYXRh
KQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Ci0KICAgICBpZiAobV9tZXRhZGF0
YSkKICAgICAgICAgbV9tZXRhZGF0YS0+cmVzZXRNZWRpYVNlc3Npb24oKTsKICAgICBtX21ldGFk
YXRhID0gV1RGTW92ZShtZXRhZGF0YSk7CkBAIC05Nyw2ICs5OSw0NSBAQCB2b2lkIE1lZGlhU2Vz
c2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+JiYgbWV0YWRhdGEpCiAgICAg
bWV0YWRhdGFVcGRhdGVkKCk7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUikKK3ZvaWQgTWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcihNZWRpYVNlc3Npb25Db29y
ZGluYXRvciogY29vcmRpbmF0b3IpCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsK
KworICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAgICAgICBtX2Nvb3JkaW5hdG9yLT5zZXRNZWRp
YVNlc3Npb24obnVsbHB0cik7CisKKyAgICBtX2Nvb3JkaW5hdG9yID0gY29vcmRpbmF0b3I7CisK
KyAgICBpZiAobV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29yZGluYXRvci0+c2V0TWVkaWFT
ZXNzaW9uKHRoaXMpOworCisgICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb29yZGluYXRvcmNoYW5nZUV2ZW50LCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKK30KKyNlbmRpZgorCisjaWYg
RU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCitFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNl
c3Npb246OnNldFBsYXlsaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFZlY3Rv
cjxSZWZQdHI8TWVkaWFNZXRhZGF0YT4+JiYgcGxheWxpc3QpCit7CisgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSKTsKKworICAgIFZlY3RvcjxSZWY8TWVkaWFNZXRhZGF0YT4+IHJlc29sdmVk
UGxheWxpc3Q7CisgICAgcmVzb2x2ZWRQbGF5bGlzdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBs
YXlsaXN0LnNpemUoKSk7CisKKyAgICBmb3IgKGF1dG8mIGVudHJ5IDogcGxheWxpc3QpIHsKKyAg
ICAgICAgYXV0byByZXNvbHZlZEVudHJ5ID0gTWVkaWFNZXRhZGF0YTo6Y3JlYXRlKGNvbnRleHQs
IHsgZW50cnktPm1ldGFkYXRhKCkgfSk7CisgICAgICAgIGlmIChyZXNvbHZlZEVudHJ5Lmhhc0V4
Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkRW50cnkucmVsZWFzZUV4Y2Vw
dGlvbigpOworICAgICAgICAKKyAgICAgICAgcmVzb2x2ZWRQbGF5bGlzdC51bmNoZWNrZWRBcHBl
bmQocmVzb2x2ZWRFbnRyeS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisgICAgfQorCisgICAgbV9w
bGF5bGlzdCA9IFdURk1vdmUocmVzb2x2ZWRQbGF5bGlzdCk7CisKKyAgICByZXR1cm4geyB9Owor
fQorI2VuZGlmCisKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRQbGF5YmFja1N0YXRlKE1lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCiB7CiAgICAgaWYgKG1fcGxheWJhY2tTdGF0ZSA9PSBz
dGF0ZSkKQEAgLTE0MSw2ICsxODIsMTIgQEAgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRs
ZXI+IE1lZGlhU2Vzc2lvbjo6aGFuZGxlckZvckFjdGlvbihNZWRpYVNlc3Npb25BY3QKICAgICBy
ZXR1cm4gbV9hY3Rpb25IYW5kbGVycy5nZXQoYWN0aW9uKTsKIH0KIAordm9pZCBNZWRpYVNlc3Np
b246OmNhbGxBY3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMmIGFj
dGlvbkRldGFpbHMpCit7CisgICAgaWYgKGF1dG8gaGFuZGxlciA9IG1fYWN0aW9uSGFuZGxlcnMu
Z2V0KGFjdGlvbkRldGFpbHMuYWN0aW9uKSkKKyAgICAgICAgaGFuZGxlci0+aGFuZGxlRXZlbnQo
YWN0aW9uRGV0YWlscyk7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU2Vzc2lvbjo6c2V0
UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYgc3RhdGUpCiB7CiAg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXggNGY0YmU0NzcyNjQ0MDg2Yjc3
ZDYxZDlmNWIwODIzYTE1ZDA1MDU2OS4uZWQzMGQyMzlkNTNmM2NmYWIxMmViOTA4MmVkOWMwNDRj
Y2I2ZTk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRl
ICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCiAjaW5jbHVk
ZSAiSlNNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJKU01lZGlhU2Vzc2lvbkFjdGlv
bi5oIgogI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIgpAQCAtNDMsOSAr
NDYsMTEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFNZXRhZGF0YTsKK2Ns
YXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgTmF2aWdhdG9yOwogCi1jbGFzcyBN
ZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb24+LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPiB7CitjbGFzcyBNZWRpYVNlc3Npb24gOiBwdWJsaWMg
UmVmQ291bnRlZDxNZWRpYVNlc3Npb24+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU2Vzc2lvbj4gY3JlYXRl
KE5hdmlnYXRvciYpOwogICAgIH5NZWRpYVNlc3Npb24oKTsKQEAgLTYwLDYgKzY1LDE2IEBAIHB1
YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQb3NpdGlvblN0YXRlKE9wdGlvbmFsPE1l
ZGlhUG9zaXRpb25TdGF0ZT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8ZG91Ymxl
PiBjdXJyZW50UG9zaXRpb24oKSBjb25zdDsKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NP
T1JESU5BVE9SKQorICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKiBjb29yZGluYXRvcigpIGNv
bnN0IHsgcmV0dXJuIG1fY29vcmRpbmF0b3IuZ2V0KCk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldENvb3JkaW5hdG9yKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKik7CisjZW5kaWYKKwor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIGNvbnN0IFZlY3RvcjxSZWY8
TWVkaWFNZXRhZGF0YT4+JiBwbGF5bGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWxpc3Q7IH0K
KyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQbGF5bGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgVmVjdG9yPFJlZlB0cjxNZWRpYU1ldGFkYXRhPj4mJik7CisjZW5kaWYKKwogICAgIHZvaWQg
bWV0YWRhdGFVcGRhdGVkKCk7CiAKICAgICB2b2lkIGFjdGlvbkhhbmRsZXJzVXBkYXRlZCgpOwpA
QCAtNjcsMTIgKzgyLDI0IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVk
aWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4gaGFuZGxlckZvckFjdGlvbihNZWRpYVNlc3Npb25BY3Rp
b24pIGNvbnN0OwogICAgIGJvb2wgaGFzQWN0aXZlQWN0aW9uSGFuZGxlcnMoKSBjb25zdCB7IHJl
dHVybiAhbV9hY3Rpb25IYW5kbGVycy5pc0VtcHR5KCk7IH0KIAorICAgIHZvaWQgY2FsbEFjdGlv
bkhhbmRsZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYpOworCisgICAgY29uc3Qg
TG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAqbV9sb2dnZXIuZ2V0KCk7IH0KKworICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKKwog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7CiAKLSAgICBj
b25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IHsgcmV0dXJuICptX2xvZ2dlci5nZXQoKTsgfQog
ICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50
aWZpZXI7IH0KIAorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gTWVkaWFTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VU
eXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKworICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5h
bCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigp
OyB9CisKICAgICBXZWFrUHRyPE5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAgICAgUmVmUHRyPE1l
ZGlhTWV0YWRhdGE+IG1fbWV0YWRhdGE7CiAgICAgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBt
X3BsYXliYWNrU3RhdGUgeyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIH07CkBAIC04
Miw2ICsxMDksMTYgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPE1lZGlhU2Vzc2lvbkFjdGlvbiwg
UmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+LCBXVEY6OkludEhhc2g8TWVkaWFTZXNz
aW9uQWN0aW9uPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVNlc3Npb25BY3Rpb24+
PiBtX2FjdGlvbkhhbmRsZXJzOwogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwog
ICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKworICAgIFVuaXF1ZVJlZjxNYWluVGhy
ZWFkR2VuZXJpY0V2ZW50UXVldWU+IG1fYXN5bmNFdmVudFF1ZXVlOworCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yPiBtX2Nvb3JkaW5hdG9yOworI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9Q
TEFZTElTVCkKKyAgICBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiBtX3BsYXlsaXN0OworI2Vu
ZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmlkbAppbmRleCA4NGY0MzBkNjg3Yzc0ZmVjZWUxMmE2OTYxMDU1ZWI0
ZDk5MTVhZGI4Li5jZjU3OWQ0Njc5ODNiNDBjYWY2ZmRmZWI0MmJlNWM4NDcwZDdiMjcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjYsOSArMjYsOSBAQAogWwogICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT04sCiAg
ICAgRXhwb3NlZD1XaW5kb3csCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBF
eHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbiB7Citd
IGludGVyZmFjZSBNZWRpYVNlc3Npb24gOiBFdmVudFRhcmdldCB7CisKICAgICBhdHRyaWJ1dGUg
TWVkaWFNZXRhZGF0YT8gbWV0YWRhdGE7CiAKICAgICBhdHRyaWJ1dGUgTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZSBwbGF5YmFja1N0YXRlOwpAQCAtMzYsNCArMzYsOSBAQAogICAgIHVuZGVmaW5l
ZCBzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vzc2lvbkFjdGlvbiBhY3Rpb24sIE1lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXI/IGhhbmRsZXIpOwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRl
ZmluZWQgc2V0UG9zaXRpb25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0aW9uU3RhdGU/IHN0YXRl
ID0gbnVsbCk7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiwg
RW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25Db29yZGluYXRvcl0gcmVhZG9ubHkgYXR0cmli
dXRlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPyBjb29yZGluYXRvcjsKKyAgICBbQ29uZGl0aW9u
YWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Np
b25Db29yZGluYXRvcl0gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmNvb3JkaW5hdG9yY2hhbmdl
OworCisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fUExBWUxJU1QsIEVuYWJsZWRCeVNl
dHRpbmc9TWVkaWFTZXNzaW9uUGxheWxpc3QsIFNldHRlckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8TWVkaWFN
ZXRhZGF0YT4gcGxheWxpc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaAppbmRleCA1Y2I2NDRmZjM2MmRl
ZDczNzAyYjEzM2YzZjIwYWQ4NjcwYjdmZjYxLi45YmM0ZjAwMTNiNDZiNTJhODFjMDAwNzk3MjJh
MzYwMTJmN2NjMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw2ICszOSw3IEBAIGVudW0gY2xhc3Mg
TWVkaWFTZXNzaW9uQWN0aW9uIHsKICAgICBTa2lwYWQsCiAgICAgU3RvcCwKICAgICBTZWVrdG8s
CisgICAgU2V0dHJhY2ssCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkBAIC01Niw3ICs1
Nyw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFTZXNzaW9u
QWN0aW9uPiB7CiAgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6TmV4dHRyYWNr
LAogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNraXBhZCwKICAgICAgICAg
V2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTdG9wLAotICAgICAgICBXZWJDb3JlOjpNZWRp
YVNlc3Npb25BY3Rpb246OlNlZWt0bworICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rp
b246OlNlZWt0bywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTZXR0cmFj
awogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbAppbmRleCA0NjM1ZTY5NzM0ZWRhMTlk
YzJhN2NhZWQ5YTVmYzcxMDc0NTk4Y2Q0Li5lZjIzNjA5ZGNmYmUwZTNmZmUxYzkyNzVlMThhZGFj
YzE1YmRjYmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNCArMzUsNyBAQAogICAgICJza2lw
YWQiLAogICAgICJzdG9wIiwKICAgICAic2Vla3RvIgorI2lmIGRlZmluZWQoTUVESUFfU0VTU0lP
Tl9QTEFZTElTVCkgJiYgTUVESUFfU0VTU0lPTl9QTEFZTElTVAorICAgICwgInNldHRyYWNrIgor
I2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCmluZGV4IDY0MWVhNzI0YWNh
NjcwNWQ3MzUwN2UyODcxYzUxNzQxNzk2OTZkN2MuLmY1OTA5ZDQ2ZjhlYWM2NmQwZjNjOWRkN2U3
NTMyZTM2MDQ2OGQ2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNiArMzcs
OSBAQCBzdHJ1Y3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyB7CiAgICAgT3B0aW9uYWw8ZG91
YmxlPiBzZWVrT2Zmc2V0OwogICAgIE9wdGlvbmFsPGRvdWJsZT4gc2Vla1RpbWU7CiAgICAgT3B0
aW9uYWw8Ym9vbD4gZmFzdFNlZWs7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1Qp
CisgICAgU3RyaW5nIHRyYWNrSWRlbnRpZmllcjsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmlkbAppbmRleCAxYTFlZjdhZTc2NWFlMDJmMjFlMzIzMmExMzY0
YTk2YTFhZGYxNTQ3Li4yZDhjNjA3MzdjNmQ2N2ZkMTI1ZTEzZTkxNjk4ZWNmYTgwMjZjMDkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw0ICszMiw2IEBACiAgICAgZG91
YmxlPyBzZWVrT2Zmc2V0OwogICAgIGRvdWJsZT8gc2Vla1RpbWU7CiAgICAgYm9vbGVhbj8gZmFz
dFNlZWs7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxl
ZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gRE9NU3RyaW5nPyB0cmFja0lkZW50aWZp
ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZGU1NTVl
YTYyNGFiZjI5MjEzY2YwMGUyODlhNTZlZWM0NmNmZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5j
cHAKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb24uaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3Rh
dGljIGNvbnN0IHZvaWQqIG5leHRDb29yZGluYXRvckxvZ0lkZW50aWZpZXIoKQoreworICAgIHN0
YXRpYyB1aW50NjRfdCBsb2dJZGVudGlmaWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIoKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVu
dGlmaWVyKTsKK30KKworUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6Y3JlYXRlKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYm
IHBsYXRmb3JtQ29vcmRpbmF0b3IpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IoV1RGTW92ZShwbGF0Zm9ybUNvb3JkaW5hdG9yKSkpOworfQorCitN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29yZGluYXRvcikKKyAgICA6
IG1fcGxhdGZvcm1Db29yZGluYXRvcihXVEZNb3ZlKHBsYXRmb3JtQ29vcmRpbmF0b3IpKQorICAg
ICwgbV9sb2dnZXIobWFrZVJlZihEb2N1bWVudDo6c2hhcmVkTG9nZ2VyKCkpKQorICAgICwgbV9s
b2dJZGVudGlmaWVyKG5leHRDb29yZGluYXRvckxvZ0lkZW50aWZpZXIoKSkKK3sKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIpOworCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZXRM
b2dnZXIobV9sb2dnZXIuY29weVJlZigpLCBtX2xvZ0lkZW50aWZpZXIpOworfQorCitNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6fk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0Owor
Cit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUpCit7Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0aW1lKTsKKyAgICBpZiAoIW1fc2Vzc2lvbikg
eworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxM
ISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9y
LT5zZWVrVG8odGltZSwgW3RpbWUsIHRoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0
aGlzKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghbV9zZXNzaW9uKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7Cisg
ICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpTZWVrdG8sCisgICAgICAg
ICAgICAuc2Vla1RpbWUgPSB0aW1lLAorICAgICAgICB9OworICAgICAgICBtX3Nlc3Npb24tPmNh
bGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpwbGF5KCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwor
ICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAi
TWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBsYXkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
UHRyKCp0aGlzKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghbV9zZXNzaW9uKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWls
cyB7CisgICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpQbGF5LAorICAg
ICAgICB9OworICAgICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOwor
ICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSgpCit7Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAg
ICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wYXVz
ZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpXSAoKSBtdXRhYmxlIHsK
KyAgICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
TWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24g
PSBNZWRpYVNlc3Npb25BY3Rpb246OlBhdXNlLAorICAgICAgICB9OworICAgICAgICBtX3Nlc3Np
b24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOworICAgIH0pOworfQorCit2b2lkIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcmIHRyYWNrKQoreworICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgaWYgKCFtX3Nlc3Npb24pIHsKKyAgICAg
ICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJNZWRpYVNlc3Npb24gaXMgTlVMTCEiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+c2V0VHJh
Y2sodHJhY2ssIFt0cmFjaywgdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMp
XSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAg
ICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywKKyAgICAgICAgICAg
IC50cmFja0lkZW50aWZpZXIgPSB0cmFjaywKKyAgICAgICAgfTsKKyAgICAgICAgbV9zZXNzaW9u
LT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikK
K3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIG1fc2Vzc2lvbiA9IG1ha2VX
ZWFrUHRyKHNlc3Npb24pOworfQorCitXVEZMb2dDaGFubmVsJiBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6bG9nQ2hhbm5lbCgpCit7CisgICAgcmV0dXJuIExvZ01lZGlhOworfQorCit9CisKKyNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODg0NDdhNmI2
MjlhMzFmODE5ODI0MTRmN2Q3MjQxMjRjMzM3MjVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNp
bmNsdWRlIDx3dGYvTG9nZ2VyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVk
ZSA8d3RmL1VuaXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CitjbGFzcyBNZWRpYVNlc3Npb247CisKK2NsYXNz
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I+IHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5NZWRpYVNlc3Npb25Db29yZGluYXRv
cigpOworCisgICAgdm9pZCBzZWVrVG8oZG91YmxlKTsKKyAgICB2b2lkIHBsYXkoKTsKKyAgICB2
b2lkIHBhdXNlKCk7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcmKTsKKworICAgIHZv
aWQgc2V0TWVkaWFTZXNzaW9uKE1lZGlhU2Vzc2lvbiopOworCitwcml2YXRlOgorICAgIGV4cGxp
Y2l0IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yPiYmKTsKKworICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4g
bV9sb2dnZXI7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgc3RhdGljIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5u
ZWwoKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgeyByZXR1cm4gIk1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQorCisgICAgV2Vha1B0cjxNZWRpYVNlc3Npb24+IG1f
c2Vzc2lvbjsKKyAgICBSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9wbGF0
Zm9ybUNvb3JkaW5hdG9yOworICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNv
bnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TRVNTSU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjA5ZjQ5YjFlZmQ2NjNjZmRhM2Qx
YjBiYzUxNDllZTA0YjQ0MWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCkBAIC0wLDAgKzEs
MzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUiwKKyAgICBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLAor
ICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAg
RXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCitdIGludGVyZmFjZSBNZWRpYVNlc3Npb25Db29y
ZGluYXRvciB7CisgICAgdW5kZWZpbmVkIHNlZWtUbyhkb3VibGUgdGltZSk7CisgICAgdW5kZWZp
bmVkIHBsYXkoKTsKKyAgICB1bmRlZmluZWQgcGF1c2UoKTsKKyAgICB1bmRlZmluZWQgc2V0VHJh
Y2soRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllcik7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaApp
bmRleCAwNDIxOTYxN2MyMzg2OTMwMTA4YTY4NjBiMjEwMTI2OWNlNTM2ODllLi43ZDJiZjMwNjhi
ZjU2N2MxYzZmOGEzYzJlODk1NGZhYWI0ZDIzM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaApA
QCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgTmF2aWdhdG9yTWVkaWFTZXNz
aW9uKE5hdmlnYXRvciYpOwogICAgIH5OYXZpZ2F0b3JNZWRpYVNlc3Npb24oKTsKIAotICAgIHN0
YXRpYyBNZWRpYVNlc3Npb24mIG1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7CiAg
ICAgTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggYjBiYmMwYTJhYWU1YjIxZmVlY2JhMTk1YmU1OTc0NzdhNWNhNDg3OS4uNTk5NTU2MWIy
YTMwZjA0N2E1MTc0NDE1YzYzZTMzZDE1YTQxODEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEzMSw2
ICsxMzEsNyBAQCBNb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL01lZGlhQ2FwYWJpbGl0aWVzLmNw
cAogTW9kdWxlcy9tZWRpYWNhcGFiaWxpdGllcy9OYXZpZ2F0b3JNZWRpYUNhcGFiaWxpdGllcy5j
cHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuY3BwCiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCitNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vz
c2lvbi5jcHAKIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKIE1v
ZHVsZXMvbWVkaWFyZWNvcmRlci9CbG9iRXZlbnQuY3BwCkBAIC0zMjAyLDYgKzMyMDMsNyBAQCBK
U01lZGlhS2V5cy5jcHAKIEpTTWVkaWFLZXlzUmVxdWlyZW1lbnQuY3BwCiBKU01lZGlhTGlzdC5j
cHAKIEpTTWVkaWFNZXRhZGF0YS5jcHAKK0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiBK
U01lZGlhTWV0YWRhdGFJbml0LmNwcAogSlNNZWRpYVBvc2l0aW9uU3RhdGUuY3BwCiBKU01lZGlh
UXVlcnlMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGU0YmRkMTkwMWU4MmNkMDc4YTNmNzQzNjIwNTZmMGM5NDA3NmIx
Y2MuLjgwYzJmZTc2MGIzNzYyOTM2MTgwNjRhMzg2MTgwYmJiYjJkZjU4MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkwLDYg
KzkwLDcgQEAKIAkJMDcwNzU2RDQxNDIzOUE0RjAwNDE0MTYxIC8qIEpTSFRNTFRyYWNrRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwNzU2
RDIxNDIzOUE0RTAwNDE0MTYxIC8qIEpTSFRNTFRyYWNrRWxlbWVudC5oICovOyB9OwogCQkwNzA3
NTZERTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkQ4MTQyMzlCNEIwMDQxNDE2MSAv
KiBKU1RleHRUcmFja0N1ZS5oICovOyB9OwogCQkwNzA3NTZFMDE0MjM5QjRFMDA0MTQxNjEgLyog
SlNUZXh0VHJhY2tDdWVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzA3NTZEQTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0
LmggKi87IH07CisJCTA3MDhGMkI2MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvci5oICovOyB9OwogCQkwNzA5RDc4RjFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDcwOUQ3OEQxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
NzA5RDc5MjFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc5MDFB
RTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgKi87IH07CiAJ
CTA3MDlENzkzMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc5MTFB
RTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjMsNiArMTI0LDcgQEAK
IAkJMDczQTE1NTQyMTc3QTQyNjAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNBMTU1MzIxNzdBMzlB
MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2NzFFNDM4NUFDMDA3MUMwRUMgLyogQXVk
aW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJM
aXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5
RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NDBCMTQ0MjVERTMxRjgwMEUzOERCQSAv
KiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0MEIxNDMyNURFMzFBOTAwRTM4REJBIC8qIE1vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi87IH07CiAJCTA3NEU4MkJCMThBNjlGMEUwMDdF
RjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRp
bWVSYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNzUwMzNBODI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRy
aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUw
MzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1Mzg2MDMx
NDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENh
Y2hlZFRleHRUcmFjay5oICovOyB9OwpAQCAtNTY3NCw2ICs1Njc2LDcgQEAKIAkJMDcwNzU2RDgx
NDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MDc1NkQ5MTQyMzlCNEMwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVMaXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2REExNDIzOUI0RTAwNDE0MTYx
IC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1RleHRUcmFja0N1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcw
OEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA5RDc4QzFBRTU1
NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OEQxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA5
RDc5MDFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3NjUsNiArNTc2OCwxMSBA
QAogCQkwNzJBRTFFMzE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyQUUxRTQxODNDMDc0MTAwMEE1
OTg4IC8qIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBwYXRoID0gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkNBODYwMTZDQjREQzMwMDhBRTEzMSAvKiBDYXB0
aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDcyREJDMDMyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA1MjVEQzZCRDMwMEExMzUwRSAvKiBNZWRp
YVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA2MjVE
QzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4u
L1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25D
b29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkMwNzI1REM2
RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgcGF0aCA9IC4uLy4uLy4uLy4u
Ly4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5
NERDMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NEUzMTlFRTJGRjIwMEU1QTA0NSAvKiBKU1JUQ0Nv
bmZpZ3VyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNS
VENDb25maWd1cmF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0
RTQxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1JUQ0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTU3ODYsNiArNTc5NCw4IEBACiAJCTA3M0I4NzYzMUU0Mzg1OUQwMDcx
QzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2Uu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1NhbXBsZURh
dGFTb3VyY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY1MUU0Mzg1
OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDBCMTQzMjVERTMxQTkwMEUzOERC
QSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc0NEVDRUIxRTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0F1ZGlvU2hhcmVkVW5pdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQgLyog
TW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IE1vY2tBdWRpb1NoYXJlZFVuaXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3NDZEMzBBMjE0NkVBMzcwMDNEREY4NCAvKiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NDk4LDYgKzE5NTA4
LDggQEAKIAkJCQk1MTA1OEFEQTFENjc5MjU3MDA5QTUzOEMgLyogTW9ja0dhbWVwYWRQcm92aWRl
ci5oICovLAogCQkJCTQxNTdFQkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uY3BwICovLAogCQkJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2Nr
TGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCAqLywKKwkJCQkwNzQwQjE0MzI1REUzMUE5MDBFMzhE
QkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJCQkwNzQwQjE0MTI1
REUzMUE4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCiAJCQkJ
MkQ2RjNFOEExQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5jcHAgKi8sCiAJCQkJ
MkQ2RjNFOEIxQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5oICovLAogCQkJCTJE
NkYzRThDMUMxRUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXkuaWRsICovLApAQCAtMjY3
ODAsNiArMjY3OTIsNyBAQAogCQkJCTU1MDY0MEFEMjQwNzU2REEwMEFBRTA0NSAvKiBQbGF0Zm9y
bUltYWdlQnVmZmVyQmFja2VuZC5oICovLAogCQkJCTA1NjJGOTYwMTU3M0Y4OEYwMDMxQ0ExNiAv
KiBQbGF0Zm9ybUxheWVyLmggKi8sCiAJCQkJQ0VFRkNEN0IxOURCMzNEQzAwMzg3NkQ3IC8qIFBs
YXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAorCQkJCTA3MDhGMkI0MjVEREU0NUQwMDRG
OTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCiAJCQkJMDcyODQ3
RTIxNkVCQzVCMDAwNDNDRkE0IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmggKi8sCiAJCQkJMDc0RTgy
QjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5jcHAgKi8sCiAJCQkJMDc0
RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovLApAQCAtMjgy
MzQsNiArMjgyNDcsOSBAQAogCQkJCUNERERFQTM1MjUzOENFNzAwMEExMzAwQyAvKiBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmlkbCAqLywKIAkJCQlDRERERUEzQTI1MzhFOUMyMDBBMTMwMEMg
LyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovLAogCQkJCUNERERFQTM5MjUzOEU5QzIw
MEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCAqLywKKwkJCQkwNzJEQkMw
NTI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJ
CTA3MkRCQzAzMjVEQzZCRDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICov
LAorCQkJCTA3MkRCQkZCMjVEQjM4QkMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5pZGwgKi8sCiAJCQkJQ0REREVBMjkyNTM4Q0RDQjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGUuaCAqLywKIAkJCQlDRERERUEyODI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgKi8sCiAJCQkJQ0REREVBMjUyNTM4Q0RBQjAwQTEzMDBD
IC8qIE5hdmlnYXRvcitNZWRpYVNlc3Npb24uaWRsICovLApAQCAtMjgyNjIsNiArMjgyNzgsOCBA
QAogCQkJCUNERERFQTQwMjUzOTExREIwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkRl
dGFpbHMuaCAqLywKIAkJCQlDRERERUE0RDI1MzkxM0JCMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Np
b25BY3Rpb25IYW5kbGVyLmNwcCAqLywKIAkJCQlDRERERUE0RTI1MzkxM0JDMDBBMTMwMEMgLyog
SlNNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmggKi8sCisJCQkJMDcyREJDMDcyNURDNkVEQTAw
QTEzNTBFIC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3MkRCQzA2
MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCiAJCQkJ
Q0REREVBNDYyNTM5MTFERDAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5j
cHAgKi8sCiAJCQkJQ0REREVBNDIyNTM5MTFEQzAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZS5oICovLAogCQkJKTsKQEAgLTM0MTMxLDYgKzM0MTQ5LDcgQEAKIAkJCQlGNTQ0
Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNFRUZDRDdDMTlEQjMzREMwMDM4NzZENyAvKiBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MEUwOTE5MTg3NUVFRkMwMDNBMUQzQyAvKiBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDcwOEYyQjYyNURERTQ1RDAw
NEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3Rjk0NDE2MTg2NEQwNDYwMDVEMzFDQiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0NzY5MDlBQzRENDMwMEE2QUFCNCAvKiBQ
bGF0Zm9ybU1vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1OTg5MDU4MTRFOUMyOTkw
MEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovLApAQCAtMzYwMjks
NiArMzYwNDgsNyBAQAogCQkJCTUxMDU4QURCMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBh
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTA1OEFERDFENjc5MkMxMDA5QTUzOEMgLyogTW9j
a0dhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTU3RUJGQTFFM0FCNjc5
MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTA3NDBCMTQ0MjVERTMxRjgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ2RjNFOTAxQzFFQ0IyNzAwNjFEQkQ0IC8q
IE1vY2tQYWdlT3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDk3RjA0NzE5REQ0MTND
MDAxRUU5QzMgLyogTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUExQUZFREU3MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oCmluZGV4IDU5ZTRlYjQ5ZGU4OWJkNDdlZGMxMjk0YTkyM2VjNjNmNTVhZjY3
NzkuLjNiZDgzMGVmMTIxNTFhYzU2M2NmNWYyZjlkMTg1MmQ4YjUzYTEyZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE3MSw2
ICsxNzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oTWVkaWFRdWVyeUxpc3RF
dmVudCkgXAogICAgIG1hY3JvKE1lZGlhUmVjb3JkZXIpIFwKICAgICBtYWNybyhNZWRpYVJlY29y
ZGVyRXJyb3JFdmVudCkgXAorICAgIG1hY3JvKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKSBcCiAg
ICAgbWFjcm8oTWVkaWFTb3VyY2UpIFwKICAgICBtYWNybyhNZWRpYVN0cmVhbSkgXAogICAgIG1h
Y3JvKE1lZGlhU3RyZWFtVHJhY2spIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IGRjM2Fm
MDg1MmYyNmRlNTM4ZTQwMDU3OGY1OGI2NjM1NzRjYmI2ZTYuLjAyMzI2M2FiOWQ1YTk2NDY5M2Uw
Y2M4ODhmZDA5YjlkNDc3ZjU4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtOTcsNiAr
OTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oY29ubmVjdGluZykgXAogICAg
IG1hY3JvKGNvbnRleHRtZW51KSBcCiAgICAgbWFjcm8oY29udHJvbGxlcmNoYW5nZSkgXAorICAg
IG1hY3JvKGNvb3JkaW5hdG9yY2hhbmdlKSBcCiAgICAgbWFjcm8oY29weSkgXAogICAgIG1hY3Jv
KGN1ZWNoYW5nZSkgXAogICAgIG1hY3JvKGN1dCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldEZhY3RvcnkuaW4KaW5kZXggNjk2ZWE5Y2ViZDIxZDE0OWFlYTVlMGJiNjQzN2FjZWZiOGNh
MjAzNC4uMWE4MDFmNDgwOWQ0NTE2ZjUxYjg5NTA4MmRlMDBlYjdjZDljNWFmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC0yMyw2ICsyMyw3IEBAIE1lZGlh
RGV2aWNlcyBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KIE1lZGlhS2V5U2Vzc2lvbiBjb25kaXRp
b25hbD1FTkNSWVBURURfTUVESUEKIE1lZGlhUXVlcnlMaXN0CiBNZWRpYVJlY29yZGVyIGNvbmRp
dGlvbmFsPU1FRElBX1NUUkVBTQorTWVkaWFTZXNzaW9uIGNvbmRpdGlvbmFsPU1FRElBX1NFU1NJ
T04KIE1lZGlhU291cmNlIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQogTWVkaWFTdHJlYW0gY29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBNZWRpYVN0cmVhbVRyYWNrIGNvbmRpdGlvbmFsPU1FRElB
X1NUUkVBTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBh
ZWNkOTI0MWQ0ZTdhMGIzYzY5OTk5ODQ4ZTFlYjVkMWNjZGQ3MzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4K
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8UGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKKworICAgIHVzaW5nIFNlZWtD
b21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CisgICAgdmlydHVh
bCB2b2lkIHNlZWtUbyhkb3VibGUsIFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAg
ICB1c2luZyBQbGF5Q29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
OworICAgIHZpcnR1YWwgdm9pZCBwbGF5KFBsYXlDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisK
KyAgICB1c2luZyBQYXVzZUNvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPjsKKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmKSA9
IDA7CisKKyAgICB1c2luZyBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPjsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nLCBT
ZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHZvaWQgc2V0TG9nZ2VyKGNv
bnN0IExvZ2dlciYgbG9nZ2VyLCBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKQorICAgIHsKKyAg
ICAgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKGxvZ2dlcik7CisgICAgICAgIG1fbG9nSWRlbnRp
ZmllciA9IGxvZ0lkZW50aWZpZXI7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQg
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKKworICAgIGNvbnN0
IExvZ2dlciogbG9nZ2VyUHRyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAg
ICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJZGVudGlm
aWVyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgeyByZXR1cm4gIlBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9n
Q2hhbm5lbCgpIGNvbnN0IHsgcmV0dXJuIExvZ01lZGlhOyB9CisKK3ByaXZhdGU6CisgICAgUmVm
UHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlm
aWVyOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDYxZWE5YTE1YmE5Y2QxOTMzZDgzZTU1MjdkOTk3ZTc0NjY1ZjJlMTAuLjM5MjM0
MzAzODlmYjdhNmI2M2ExM2E5NDc0NjdjM2E1ZGY2ODBmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTMzMyw2ICszMzMsMTIgQEAKICNpbmNsdWRlIDx3dGYvc3BpL2Rh
cndpbi9TYW5kYm94U1BJLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NP
T1JESU5BVE9SKQorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisjaW5jbHVk
ZSAiTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yTWVk
aWFTZXNzaW9uLmgiCisjZW5kaWYKKwogdXNpbmcgSlNDOjpDYWxsRGF0YTsKIHVzaW5nIEpTQzo6
Q29kZUJsb2NrOwogdXNpbmcgSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU7CkBAIC02MDI1LDggKzYw
MzEsMjMgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzZW5kTWVkaWFTZXNzaW9uQWN0
aW9uKE1lZGlhU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QKICAgICB9CiAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiB9CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsczo6cmVnaXN0ZXJNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkK
K3sKKyAgICBpZiAoIWNvbnRleHREb2N1bWVudCgpIHx8ICFjb250ZXh0RG9jdW1lbnQoKS0+ZG9t
V2luZG93KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Ig
fTsKKworICAgIGF1dG8mIHNlc3Npb24gPSBOYXZpZ2F0b3JNZWRpYVNlc3Npb246Om1lZGlhU2Vz
c2lvbihjb250ZXh0RG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPm5hdmlnYXRvcigpKTsKKyAgICBt
X21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0
ZShNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNpbmdsZXRvbihjb250ZXh0KSk7CisgICAg
c2Vzc2lvbi5zZXRDb29yZGluYXRvcihtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmdldCgpKTsK
KworICAgIHJldHVybiB7IH07Cit9CiAjZW5kaWYKIAorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OKQorCiBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHN0cmluZyhQYXJ0aWFsT3JkZXJpbmcg
b3JkZXJpbmcpCiB7CiAgICAgaWYgKGlzX2x0KG9yZGVyaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCmluZGV4IDdlYmE2NTc4OWY4YmZkMmYyNjZiMzc0Mzk2NzM1NmY0MjA2YmQ5ZDgu
LmFmMGEwMzk0MjJkY2MxYzM5ODVmYWZlMGZkNDMzNGY0MWM4YjUyM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaApAQCAtMTM0LDYgKzEzNCw5IEBAIGNsYXNzIFdlYlhSVGVzdDsKICNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIGNsYXNzIE1lZGlhU2Vzc2lvbjsKIHN0cnVjdCBNZWRp
YVNlc3Npb25BY3Rpb25EZXRhaWxzOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQorY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CisjZW5kaWYKICNlbmRpZgogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CkBAIC0x
MDcyLDYgKzEwNzUsMTEgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAg
IEV4Y2VwdGlvbk9yPGRvdWJsZT4gY3VycmVudE1lZGlhU2Vzc2lvblBvc2l0aW9uKGNvbnN0IE1l
ZGlhU2Vzc2lvbiYpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNlbmRNZWRpYVNlc3Npb25BY3Rp
b24oTWVkaWFTZXNzaW9uJiwgY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYpOworCisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gcmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpOworI2VuZGlmCisKICNlbmRpZgogCiAgICAgZW51bSBUcmVlVHlwZSA6IHVpbnQ4X3Qg
eyBUcmVlLCBTaGFkb3dJbmNsdWRpbmdUcmVlLCBDb21wb3NlZFRyZWUgfTsKQEAgLTExMTQsNiAr
MTEyMiwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJYUikKICAgICBSZWZQdHI8V2ViWFJU
ZXN0PiBtX3hyVGVzdDsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCisgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX21lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOworI2VuZGlmCisKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBkM2M1MzIyYTgyODhiMjljOGU0OGY5
MGY2MzI1MGVhOGYzZDc2ZTY5Li44YWI0MjlkMDJjODkxMDY0NmJkZjFhNzM0NmJkYjYwZTU0MmE4
YWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC05NjksNiArOTY5LDcg
QEAgZW51bSBUcmVlVHlwZSB7CiAKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTiwgTWF5
VGhyb3dFeGNlcHRpb25dIGRvdWJsZSBjdXJyZW50TWVkaWFTZXNzaW9uUG9zaXRpb24oTWVkaWFT
ZXNzaW9uIHNlc3Npb24pOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OLCBNYXlUaHJv
d0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNlbmRNZWRpYVNlc3Npb25BY3Rpb24oTWVkaWFTZXNzaW9u
IHNlc3Npb24sIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgYWN0aW9uRGV0YWlscyk7CisgICAg
W0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsIE1heVRocm93RXhjZXB0aW9u
LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB1bmRlZmluZWQgcmVnaXN0ZXJNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKIAogICAgIERPTVN0cmluZyB0cmVlT3JkZXIoTm9k
ZSBhLCBOb2RlIGIsIG9wdGlvbmFsIFRyZWVUeXBlIHRyZWUgPSAiVHJlZSIpOwogICAgIERPTVN0
cmluZyB0cmVlT3JkZXJCb3VuZGFyeVBvaW50cyhOb2RlIGNvbnRhaW5lckEsIHVuc2lnbmVkIGxv
bmcgb2Zmc2V0QSwgTm9kZSBjb250YWluZXJCLCB1bnNpZ25lZCBsb25nIG9mZnNldEIsIG9wdGlv
bmFsIFRyZWVUeXBlIHRyZWUgPSAiVHJlZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwMTQ5
YjU2YWExNWFjNjE3MDExYTkxZTNiOTA3OGEyYTY1NWYzODcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKQEAg
LTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgor
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9VVUlELmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z1ZpZXcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3ImIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2luZ2xldG9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY29vcmRpbmF0b3IoY29udGV4dCk7CisgICAgcmV0dXJu
IGNvb3JkaW5hdG9yOworfQorCitNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorICAg
IDogbV9jb250ZXh0KGNvbnRleHQpCit7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxi
YWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgdGltZSk7
CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0g
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2soKTsK
KyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoUGxh
eUNvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NT
SUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFtjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewor
ICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6cGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQorewor
ICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9jb250ZXh0
LT5wb3N0VGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKwor
dm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFRyYWNrKGNvbnN0IFN0cmluZywg
U2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0df
SUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRh
YmxlIHsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZjMWE0MmRiMGRiYTFiN2M5ZTIzM2M1OWQ1MjVjYmE5YWI4
MGYxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ig
eworcHVibGljOgorICAgIHN0YXRpYyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3ImIHNpbmds
ZXRvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisKKyAgICBNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHZpcnR1YWwgfk1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKworICAgIHZvaWQg
c2Vla1RvKGRvdWJsZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQg
cGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBwYXVzZShQYXVz
ZUNvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgc2V0VHJhY2soY29uc3QgU3Ry
aW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworCisgICAgUmVmPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29udGV4dDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TRVNTSU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBmODliYTkyMjQzMDExOTkwZmYzNGM2YjUzNWNkOTk5NzU1YjgwNTE4Li4xMTNmMzczZGI3
YTg2ZTQwNGEzMTNhN2Y4ZmU5MzEwNzAzNzhlMDIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGlu
YXRvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNlc3Npb24v
bW9jay1jb29yZGluYXRvci5odG1sOiBBZGRlZC4KKwogMjAyMS0wMi0xNiAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVlbmFibGUgR1BVUHJvY2VzcyBNZWRp
YSBmbGFnIGluIFdlYlJUQyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGQ1OGRiMTAyZmJjMDA0OTg4Y2RlY2NhZWI0OTRiN2FiMjU2NDk1ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNl
c3Npb24uY29vcmRpbmF0b3IgPT0gJ3VuZGVmaW5lZCcpIE9LCitSVU4oaW50ZXJuYWxzLnJlZ2lz
dGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkpCitFVkVOVChjb29yZGluYXRvcmNoYW5n
ZSkKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yICE9ICd1bmRl
ZmluZWQnKSBPSworCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5
KCkpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uICE9ICdwbGF5JykgT0sKK0FDVElPTjogcGxheQor
RVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAncGxheScpIE9LCisKK1JVTihuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBhdXNlKCkpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uICE9
ICdwYXVzZScpIE9LCitBQ1RJT046IHBhdXNlCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdw
YXVzZScpIE9LCisKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnNlZWtU
bygxMCkpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uICE9ICdzZWVrdG8nKSBPSworQUNUSU9OOiBz
ZWVrdG8KK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3NlZWt0bycpIE9LCisKK0VORCBPRiBU
RVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1j
b29yZGluYXRvci5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNv
b3JkaW5hdG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FmZDczYWVlYWNhNWQ2YzVmOGUzZGQ0YjE3NGYz
MzgzNzk1NzMwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNl
c3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bW9jay1tZWRpYXNlc3Npb24tY29vcmRp
bmF0b3I8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorCisgICAgbGV0IGxhdGVzdEFjdGlvbjsKKworICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworCisgICAgICAgIGlmICgh
d2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1
aXJlcyBJbnRlcm5hbHMnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGNvbnN0IGNoYW5nZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAg
ICAgICAgIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uYWRkRXZlbnRMaXN0ZW5lcignY29vcmRpbmF0
b3JjaGFuZ2UnLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEVW
RU5UKCR7ZXZlbnQudHlwZX0pYCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcicsIHVuZGVmaW5lZCk7CisKKyAgICAgICAgcnVuKCdp
bnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKScpOworCisgICAg
ICAgIGF3YWl0IGNoYW5nZVByb21pc2U7CisgICAgICAgIAorICAgICAgICB0ZXN0RXhwZWN0ZWQo
J25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3InLCB1bmRlZmluZWQsICchPScpOwor
CisgICAgICAgIGxldCBhY3Rpb25zID0gWydwbGF5JywgJ3BhdXNlJywgJ3NlZWt0byddOworICAg
ICAgICBhY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IHsKKyAgICAgICAgICAgIG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24uc2V0QWN0aW9uSGFuZGxlcihhY3Rpb24sIGFjdGlvbkRldGFpbHMgPT4gewor
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgQUNUSU9OOiAke2FjdGlvbkRldGFpbHMuYWN0
aW9ufWApOworICAgICAgICAgICAgICAgIGxhdGVzdEFjdGlvbiA9IGFjdGlvbkRldGFpbHMuYWN0
aW9uOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgbGV0
IHRlc3RBY3Rpb24gPSBhc3luYyAoYWN0aW9uKSA9PiB7CisgICAgICAgICAgICBsZXQgY29tbWFu
ZDsKKyAgICAgICAgICAgIGlmIChhY3Rpb24gPT0gJ3NlZWt0bycpCisgICAgICAgICAgICAgICAg
Y29tbWFuZCA9ICdzZWVrVG8oMTApJworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGNvbW1hbmQgPSBgJHthY3Rpb259KClgOworCisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycp
OworICAgICAgICAgICAgcnVuKGBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLiR7
Y29tbWFuZH1gKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0aW9uJywgYWN0
aW9uLCAnIT0nKTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2xh
dGVzdEFjdGlvbicsIGFjdGlvbiwgJz09Jyk7CisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChs
ZXQgYWN0aW9uIG9mIGFjdGlvbnMpCisgICAgICAgICAgICBhd2FpdCB0ZXN0QWN0aW9uKGFjdGlv
bik7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAg
IH0sIHtvbmNlOiB0cnVlfSk7CisKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421040</attachid>
            <date>2021-02-19 15:09:21 -0800</date>
            <delta_ts>2021-02-19 16:29:39 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-222158-20210219150921.patch</filename>
            <type>text/plain</type>
            <size>69802</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjk3Njg5NGQ4M2ExZDZiYjI2YWY0ZGJhYmUyMjA4YmNkNjE2OTMy
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAyLTE1ICBQZXIgQXJuZSAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQ2xvc2UgWFBDIGNvbm5lY3Rpb25z
IGJlZm9yZSBlbnRlcmluZyBzYW5kYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhlNTdmZGYxOTE2OTIwMjVj
YThjMjIzYWI3MDEzMWQwMWJlZDQ5NS4uN2FjMTMwYmQ2MjUyZTQ0MGNhYjhjZDM4NWYxMDU4ZDVk
OGYxNjY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAyLTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIEV4
cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE1OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzQ1MDg4NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YUluaXQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGFJ
bml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6c2V0Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpzZXRQbGF5bGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmNh
bGxBY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRpbmF0b3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6bmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDogTmV3LgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nSWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2xh
c3NOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5pZGw6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0
b3JNZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAg
ICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TG9nZ2VyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlclB0ciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Ojpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsIGNvbnN0KToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAg
ICAgKiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzaW5nbGV0b24pOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaDogTmV3LgorCiAyMDIxLTAyLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBsaWJ3ZWJydGMgaW5zdGFsbHMgc29tZSBmaWxlcyBpbnRvIGlu
Y29ycmVjdCBsb2NhdGlvbnMgaW4gL3Vzci9sb2NhbC9pbmNsdWRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCmluZGV4IGIyYmY5MDJlYmQ5ODA1MTI0ZDJkYjgwMGE3NzYyYTEzMjVlMzc5YjMu
LmJiYWFkMDAxNmExODIxMTM3NTgzMWQ2MTYyYWY5Mjg4MmQ0MTgxNWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCkBAIC01NjIsNiArNTYyLDE5IEBAIE1lZGlhUmVjb3JkZXJFbmFibGVk
OgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYVNlc3Npb25Db29y
ZGluYXRvckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBl
cmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURl
c2NyaXB0aW9uOiAiRW5hYmxlIGV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3Ig
QVBJIgorICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICBk
ZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZh
dWx0OiBmYWxzZQorCiBNZWRpYVNlc3Npb25FbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFu
UmVhZGFibGVOYW1lOiAiTWVkaWEgU2Vzc2lvbiBBUEkiCkBAIC01NzUsNiArNTg4LDE5IEBAIE1l
ZGlhU2Vzc2lvbkVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAK
K01lZGlhU2Vzc2lvblBsYXlsaXN0RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRh
YmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gcGxheWxpc3QgQVBJIgorICBodW1h
blJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBw
bGF5bGlzdCBBUEkiCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1Qp
CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxz
ZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAg
IGRlZmF1bHQ6IGZhbHNlCisKIE1vZGVsRWxlbWVudEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJIVE1MIDxtb2RlbD4gZWxlbWVudCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaAppbmRleCA3OGQ1ODczYTMwODkxMDIwZTVhNzcyYmM5NTBhMmViNjQx
M2ZiNWUwLi4xM2ViZTkzYThkNjNkODM3YjI4ZWYxMjg1NTgzNTkxM2IwZjc4NDkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC0zMjgsNiArMzI4LDE0IEBACiAjZGVmaW5l
IEVOQUJMRV9NRURJQV9TRVNTSU9OIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX01F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01BWF9BTExPV0VEID49IDEyMDAwMAorI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNT
SU9OX1BMQVlMSVNUKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhf
QUxMT1dFRCA+PSAxMjAwMDAKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1Qg
MQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKSAmJiAhUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVU
VikgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQogI2RlZmluZSBFTkFCTEVfTUVE
SUFfU09VUkNFIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3YWJlOWY1ZmEzYjUx
ZDVlOTE1ZGE3YjM1Mzg3ZDhjODUzYTNkYWI3Li4yZWQ0MTg2NjcwYjhkMGNhMmQwNzNhNjBlMmUw
ZTI4NWMyZTMyZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzM2LDYgKzMzNiw3IEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uQWN0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
QWN0aW9uSGFuZGxlci5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvcitNZWRpYVNl
c3Npb24uaWRsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IDY4Y2ZkNGEwNzI2MjUzNDhhY2U1N2I5M2ZkYTc3M2VjYjJjNjgxN2YuLjRh
ODA0YTdmNWJjY2YwNzQyZGYzMGUwNDg5OTFmMDFmYzY4MjhkODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDYgKzE3Myw3IEBA
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRl
dGFpbHMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb25IYW5kbGVyLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMTcy
MzY0ZDliNTUxMTA5MjRkZDkzYzdkYWNjNjg2MjlmZDc5YmU3Yy4uOTk5MGJhZDE3NDFiNThhZjAw
ODI0OWQ3NzY5MzY3ZjNhMGEwZDQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOTksNiArMTI5OSw4IEBAICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlv
bkhhbmRsZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25QbGF5YmFj
a1N0YXRlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBmYmE5ZWU1YTAxMzQ5ZmI2MWFiY2JhYTJkNWIyNDQzZTAyMGNlOWI5Li44
NGNkMTU3NWY1ZTJjNmM3NWE1YjM5MTExNWJmOWE4MjM0NjFjNTU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTIwNyw2ICsyMDcsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rp
b25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFT
dHJlYW1UcmFjay5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCBmNmZmMzFmYjA4ZGQ0OTgxYTNiY2U5MDM5
MmJkYmQyY2RhNWZjZGI2Li45ZGEyMDE1MjBmNDhiZjUxMWJhOWUwYzc5ZGE3MGM0NmM0MDU1MGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1l
dGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmNwcApAQCAtNDIsNiArNDIsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFNZXRh
ZGF0YT4+IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwog
ICAgICAgICBtZXRhZGF0YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRhZGF0
YS0+c2V0QXJ0aXN0KGluaXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1bShp
bml0LT5hbGJ1bSk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgICAg
IG1ldGFkYXRhLT5zZXRUcmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsKKyNl
bmRpZgogICAgICAgICBhdXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFydHdv
cmsoY29udGV4dCwgV1RGTW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3NzaWJs
ZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBwb3NzaWJsZUV4Y2VwdGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTA1LDYgKzEwOCwxNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBNZWRpYU1ldGFkYXRhOjpzZXRBcnR3b3JrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFZlYwogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9QTEFZTElTVCkKK3ZvaWQgTWVkaWFNZXRhZGF0YTo6c2V0VHJhY2tJZGVu
dGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9tZXRhZGF0YS50
cmFja0lkZW50aWZpZXIgPT0gaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9t
ZXRhZGF0YS50cmFja0lkZW50aWZpZXIgPSBpZGVudGlmaWVyOworICAgIG1ldGFkYXRhVXBkYXRl
ZCgpOworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFNZXRhZGF0YTo6bWV0YWRhdGFVcGRhdGVkKCkK
IHsKICAgICBpZiAobV9zZXNzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCmluZGV4IDMwZTA5M2Q2ZDI3ZGRiNzQxNTI4MWVl
OGI1ZDEwMDRlZmNmYWE1ZGEuLjg1NDg2OWM2MzZjMzc1MGVkNzk5YWU5MzY2OWJmNTJhYWM1MDVj
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmgKQEAgLTU5LDYgKzU5LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8
TWVkaWFJbWFnZT4mIGFydHdvcmsoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmFydHdvcms7
IH0KICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBcnR3b3JrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBWZWN0b3I8TWVkaWFJbWFnZT4mJik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9Q
TEFZTElTVCkKKyAgICBjb25zdCBTdHJpbmcmIHRyYWNrSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fbWV0YWRhdGEudHJhY2tJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRUcmFja0lkZW50
aWZpZXIoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIGNvbnN0IE1lZGlhU2Vzc2lvbk1l
dGFkYXRhJiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGE7IH0KIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YS5pZGwKaW5kZXggYjI4ZTk5ZDNiNzllNWVlNjFjNjFjZWQ3OTgxYzNjYjIwN2UzODEy
MS4uZTYyNGViYzQ4ZWUxZmUwYjBjYTZkYjEyNDcxZTIyMTE5NWExN2M3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwK
QEAgLTMzLDQgKzMzLDYgQEAKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFydGlzdDsKICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGFsYnVtOwogICAgIFtTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1l
ZGlhSW1hZ2U+IGFydHdvcms7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZ
TElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERP
TVN0cmluZyB0cmFja0lkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmgKaW5kZXggNjY5ZGVmZmEy
ZDY5NDA4NWYwOGYxMGRmMWI5MTZlZjQ0ZTg4NWUwZC4uZDg2ZjkxMjkzMzQxZDJkOTA1NDM1MTNk
YmE4NTNlNzQ1NjE0Y2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oCkBAIC0zNSw2ICszNSw5IEBAIHN0cnVj
dCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAgICAgU3RyaW5nIHRpdGxlOwogICAgIFN0cmluZyBhcnRp
c3Q7CiAgICAgU3RyaW5nIGFsYnVtOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNU
KQorICAgIFN0cmluZyB0cmFja0lkZW50aWZpZXI7CisjZW5kaWYKICAgICBWZWN0b3I8TWVkaWFJ
bWFnZT4gYXJ0d29yazsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKQEAgLTQzLDI4ICs0Niw0MCBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0
YUluaXQgewogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRpYU1ldGFk
YXRhSW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8
PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0gPDwgYXJ0d29yazsKKyAgICBlbmNvZGVyIDw8IHRp
dGxlIDw8IGFydGlzdCA8PCBhbGJ1bQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNU
KQorICAgIDw8IHRyYWNrSWRlbnRpZmllcgorI2VuZGlmCisgICAgPDwgYXJ0d29yazsKIH0KIAog
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRhdGFJbml0
PiBNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgU3Ry
aW5nIHRpdGxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGl0bGUpKQotICAgICAgICByZXR1
cm4geyB9OworI2RlZmluZSBERUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+
IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsgXAogCi0gICAgU3RyaW5nIGFydGlzdDsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFydGlzdCkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgREVDT0RF
KHRpdGxlLCBTdHJpbmcpOworICAgIERFQ09ERShhcnRpc3QsIFN0cmluZyk7CisgICAgREVDT0RF
KGFsYnVtLCBTdHJpbmcpOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAg
IERFQ09ERSh0cmFja0lkZW50aWZpZXIsIFN0cmluZyk7CisjZW5kaWYKKyAgICBERUNPREUoYXJ0
d29yaywgVmVjdG9yPE1lZGlhSW1hZ2U+KTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFsYnVtKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIFZlY3Rv
cjxNZWRpYUltYWdlPiBhcnR3b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0d29yaykp
Ci0gICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHsgeworICAgICAgICAqdGl0bGUsCisg
ICAgICAgICphcnRpc3QsCisgICAgICAgICphbGJ1bSwKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9QTEFZTElTVCkKKyAgICAgICAgKnRyYWNrSWRlbnRpZmllciwKKyNlbmRpZgorICAgICAgICAq
YXJ0d29yaworICAgIH0gfTsKIAotICAgIHJldHVybiBNZWRpYU1ldGFkYXRhSW5pdCB7IFdURk1v
dmUodGl0bGUpLCBXVEZNb3ZlKGFydGlzdCksIFdURk1vdmUoYWxidW0pLCBXVEZNb3ZlKGFydHdv
cmspIH07CisjdW5kZWYgREVDT0RFCiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbAppbmRleCA4YjBm
NTVjZjE0YTU4MzhjYjU0ODk1NjVkMDI3MmRhZmFkOWUxMjNkLi4wZGM4ZWYwMDdiMTA5NTFiMGQ1
OTE5ZWIwMzEyNDM0ZjNmNjQ0NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCkBAIC0zMCw1ICszMCw2
IEBACiAgICAgRE9NU3RyaW5nIHRpdGxlID0gIiI7CiAgICAgRE9NU3RyaW5nIGFydGlzdCA9ICIi
OwogICAgIERPTVN0cmluZyBhbGJ1bSA9ICIiOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNT
SU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0XSBET01T
dHJpbmcgdHJhY2tJZGVudGlmaWVyID0gIiI7CiAgICAgc2VxdWVuY2U8TWVkaWFJbWFnZT4gYXJ0
d29yayA9IFtdOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IDkwMWRkYjBhN2I0ZmU5ZTkzNjNlNWZmMzFmMmVh
YjQ3YTlkMzY0OGQuLmY3ZjY0NmRiMTJjZWI4ZWU0ZTQzZDMzMGU0NDczOTQwMjMzYjkxMDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk1lZGlhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
IgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5oIgogCkBAIC03NSw3ICs3NiwxMSBAQCBSZWY8TWVkaWFTZXNzaW9uPiBNZWRpYVNl
c3Npb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKIH0KIAogTWVkaWFTZXNzaW9uOjpN
ZWRpYVNlc3Npb24oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCi0gICAgOiBtX25hdmlnYXRvcihtYWtl
V2Vha1B0cihuYXZpZ2F0b3IpKQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIobmF2
aWdhdG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAsIG1fbmF2aWdhdG9yKG1ha2VX
ZWFrUHRyKG5hdmlnYXRvcikpCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNy
ZWF0ZSgqdGhpcykpCisjZW5kaWYKIHsKICAgICBtX2xvZ2dlciA9IG1ha2VSZWZQdHIoRG9jdW1l
bnQ6OnNoYXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZpZXIgPSBuZXh0TG9nSWRlbnRp
ZmllcigpOwpAQCAtODgsNyArOTMsNiBAQCBNZWRpYVNlc3Npb246On5NZWRpYVNlc3Npb24oKSA9
IGRlZmF1bHQ7CiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0
YWRhdGE+JiYgbWV0YWRhdGEpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKLQog
ICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBtX21ldGFkYXRhLT5yZXNldE1lZGlhU2Vzc2lv
bigpOwogICAgIG1fbWV0YWRhdGEgPSBXVEZNb3ZlKG1ldGFkYXRhKTsKQEAgLTk3LDYgKzEwMSw0
NSBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+
JiYgbWV0YWRhdGEpCiAgICAgbWV0YWRhdGFVcGRhdGVkKCk7CiB9CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKK3ZvaWQgTWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRv
cihNZWRpYVNlc3Npb25Db29yZGluYXRvciogY29vcmRpbmF0b3IpCit7CisgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSKTsKKworICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAgICAgICBtX2Nv
b3JkaW5hdG9yLT5zZXRNZWRpYVNlc3Npb24obnVsbHB0cik7CisKKyAgICBtX2Nvb3JkaW5hdG9y
ID0gY29vcmRpbmF0b3I7CisKKyAgICBpZiAobV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29y
ZGluYXRvci0+c2V0TWVkaWFTZXNzaW9uKHRoaXMpOworCisgICAgbV9hc3luY0V2ZW50UXVldWUt
PmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb29yZGluYXRvcmNoYW5n
ZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsK
K30KKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCitFeGNlcHRp
b25Pcjx2b2lkPiBNZWRpYVNlc3Npb246OnNldFBsYXlsaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIFZlY3RvcjxSZWZQdHI8TWVkaWFNZXRhZGF0YT4+JiYgcGxheWxpc3QpCit7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKworICAgIFZlY3RvcjxSZWY8TWVkaWFN
ZXRhZGF0YT4+IHJlc29sdmVkUGxheWxpc3Q7CisgICAgcmVzb2x2ZWRQbGF5bGlzdC5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHBsYXlsaXN0LnNpemUoKSk7CisKKyAgICBmb3IgKGF1dG8mIGVudHJ5
IDogcGxheWxpc3QpIHsKKyAgICAgICAgYXV0byByZXNvbHZlZEVudHJ5ID0gTWVkaWFNZXRhZGF0
YTo6Y3JlYXRlKGNvbnRleHQsIHsgZW50cnktPm1ldGFkYXRhKCkgfSk7CisgICAgICAgIGlmIChy
ZXNvbHZlZEVudHJ5Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVk
RW50cnkucmVsZWFzZUV4Y2VwdGlvbigpOworICAgICAgICAKKyAgICAgICAgcmVzb2x2ZWRQbGF5
bGlzdC51bmNoZWNrZWRBcHBlbmQocmVzb2x2ZWRFbnRyeS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CisgICAgfQorCisgICAgbV9wbGF5bGlzdCA9IFdURk1vdmUocmVzb2x2ZWRQbGF5bGlzdCk7CisK
KyAgICByZXR1cm4geyB9OworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRQbGF5
YmFja1N0YXRlKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCiB7CiAgICAgaWYgKG1f
cGxheWJhY2tTdGF0ZSA9PSBzdGF0ZSkKQEAgLTE0MSw2ICsxODQsMTIgQEAgUmVmUHRyPE1lZGlh
U2Vzc2lvbkFjdGlvbkhhbmRsZXI+IE1lZGlhU2Vzc2lvbjo6aGFuZGxlckZvckFjdGlvbihNZWRp
YVNlc3Npb25BY3QKICAgICByZXR1cm4gbV9hY3Rpb25IYW5kbGVycy5nZXQoYWN0aW9uKTsKIH0K
IAordm9pZCBNZWRpYVNlc3Npb246OmNhbGxBY3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMmIGFjdGlvbkRldGFpbHMpCit7CisgICAgaWYgKGF1dG8gaGFuZGxlciA9
IG1fYWN0aW9uSGFuZGxlcnMuZ2V0KGFjdGlvbkRldGFpbHMuYWN0aW9uKSkKKyAgICAgICAgaGFu
ZGxlci0+aGFuZGxlRXZlbnQoYWN0aW9uRGV0YWlscyk7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+
IE1lZGlhU2Vzc2lvbjo6c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3Rh
dGU+JiYgc3RhdGUpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXgg
NGY0YmU0NzcyNjQ0MDg2Yjc3ZDYxZDlmNWIwODIzYTE1ZDA1MDU2OS4uMzBiN2MzNWUxNmFhMGRl
MTEyOGZiOGQzMTljMzE3YTRkNmE5N2ZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVu
dFF1ZXVlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJK
U01lZGlhU2Vzc2lvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5oIgpAQCAtNDMsOSArNDYsMTkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
TWVkaWFNZXRhZGF0YTsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgTmF2
aWdhdG9yOwogCi1jbGFzcyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNl
c3Npb24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPiB7CitjbGFzcyBNZWRp
YVNlc3Npb24KKyAgICA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4KKyAgICAsIHB1
YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SKQorICAgICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEKKyNl
bHNlCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPgorI2VuZGlmCit7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxN
ZWRpYVNlc3Npb24+IGNyZWF0ZShOYXZpZ2F0b3ImKTsKICAgICB+TWVkaWFTZXNzaW9uKCk7CkBA
IC02MCw2ICs3MywxNiBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UG9zaXRp
b25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIE9wdGlvbmFsPGRvdWJsZT4gY3VycmVudFBvc2l0aW9uKCkgY29uc3Q7CiAKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBNZWRpYVNlc3Npb25Db29yZGluYXRv
ciogY29vcmRpbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdG9yLmdldCgpOyB9Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29yZGluYXRvcihNZWRpYVNlc3Npb25Db29yZGlu
YXRvciopOworI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAg
ICBjb25zdCBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiYgcGxheWxpc3QoKSBjb25zdCB7IHJl
dHVybiBtX3BsYXlsaXN0OyB9CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UGxheWxpc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFZlY3RvcjxSZWZQdHI8TWVkaWFNZXRhZGF0YT4+JiYpOwor
I2VuZGlmCisKICAgICB2b2lkIG1ldGFkYXRhVXBkYXRlZCgpOwogCiAgICAgdm9pZCBhY3Rpb25I
YW5kbGVyc1VwZGF0ZWQoKTsKQEAgLTY3LDEyICs5MCwyNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+IGhhbmRsZXJGb3JBY3Rp
b24oTWVkaWFTZXNzaW9uQWN0aW9uKSBjb25zdDsKICAgICBib29sIGhhc0FjdGl2ZUFjdGlvbkhh
bmRsZXJzKCkgY29uc3QgeyByZXR1cm4gIW1fYWN0aW9uSGFuZGxlcnMuaXNFbXB0eSgpOyB9CiAK
KyAgICB2b2lkIGNhbGxBY3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFp
bHMmKTsKKworICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4gKm1fbG9n
Z2VyLmdldCgpOyB9CisKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CisgICAgdXNpbmcgUmVm
Q291bnRlZDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uKE5h
dmlnYXRvciYpOwogCi0gICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAq
bV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1lZGlhU2Vzc2lvbkV2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisKKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmlu
YWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYo
KTsgfQorI2VuZGlmCisKICAgICBXZWFrUHRyPE5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAgICAg
UmVmUHRyPE1lZGlhTWV0YWRhdGE+IG1fbWV0YWRhdGE7CiAgICAgTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSBtX3BsYXliYWNrU3RhdGUgeyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25l
IH07CkBAIC04Miw2ICsxMTksMTUgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPE1lZGlhU2Vzc2lv
bkFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+LCBXVEY6OkludEhhc2g8
TWVkaWFTZXNzaW9uQWN0aW9uPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVNlc3Np
b25BY3Rpb24+PiBtX2FjdGlvbkhhbmRsZXJzOwogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1f
bG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKworI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4gbV9jb29yZGluYXRvcjsKKyAgICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVu
dFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fUExBWUxJU1QpCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4gbV9wbGF5bGlz
dDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKaW5kZXggODRmNDMwZDY4N2M3NGZlY2VlMTJhNjk2
MTA1NWViNGQ5OTE1YWRiOC4uYTYzMmYwOGQ0YjU1NDQ4MTk1ZmYxMjg5NTI0YTI3ZTI2Njg0YjI4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb24uaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI2LDkgKzI2LDEzIEBACiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VT
U0lPTiwKICAgICBFeHBvc2VkPVdpbmRvdywKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAorI2lmIGRlZmluZWQoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikgJiYgTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUgorXSBpbnRlcmZh
Y2UgTWVkaWFTZXNzaW9uIDogRXZlbnRUYXJnZXQgeworI2Vsc2UKIF0gaW50ZXJmYWNlIE1lZGlh
U2Vzc2lvbiB7CisjZW5kaWYKKwogICAgIGF0dHJpYnV0ZSBNZWRpYU1ldGFkYXRhPyBtZXRhZGF0
YTsKIAogICAgIGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBsYXliYWNrU3Rh
dGU7CkBAIC0zNiw0ICs0MCw5IEBACiAgICAgdW5kZWZpbmVkIHNldEFjdGlvbkhhbmRsZXIoTWVk
aWFTZXNzaW9uQWN0aW9uIGFjdGlvbiwgTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj8gaGFuZGxl
cik7CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRQb3NpdGlvblN0YXRl
KG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZT8gc3RhdGUgPSBudWxsKTsKKworICAgIFtDb25k
aXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLCBFbmFibGVkQnlTZXR0aW5nPU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I/IGNvb3JkaW5hdG9yOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SLCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yXSBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9uY29vcmRpbmF0b3JjaGFuZ2U7CisKKyAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5
bGlzdCwgU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNl
cHRpb25dIGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxNZWRpYU1ldGFkYXRhPiBwbGF5bGlzdDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25BY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkFjdGlvbi5oCmluZGV4IDVjYjY0NGZmMzYyZGVkNzM3MDJiMTMzZjNmMjBhZDg2NzBi
N2ZmNjEuLjliYzRmMDAxM2I0NmI1MmE4MWMwMDA3OTcyMmEzNjAxMmY3Y2MyMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkFjdGlvbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM5LDYgKzM5LDcgQEAgZW51bSBjbGFzcyBNZWRpYVNlc3Npb25BY3Rpb24gewog
ICAgIFNraXBhZCwKICAgICBTdG9wLAogICAgIFNlZWt0bywKKyAgICBTZXR0cmFjaywKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKQEAgLTU2LDcgKzU3LDggQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb24+IHsKICAgICAgICAgV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpOZXh0dHJhY2ssCiAgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkFjdGlvbjo6U2tpcGFkLAogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25B
Y3Rpb246OlN0b3AsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3Rv
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNldHRyYWNrCiAgICAgPjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFj
dGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb24uaWRsCmluZGV4IDQ2MzVlNjk3MzRlZGExOWRjMmE3Y2FlZDlhNWZjNzEwNzQ1OThj
ZDQuLmVmMjM2MDlkY2ZiZTBlM2ZmZTFjOTI3NWUxOGFkYWNjMTViZGNiY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
QWN0aW9uLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zNSw0ICszNSw3IEBACiAgICAgInNraXBhZCIsCiAgICAgInN0b3AiLAogICAg
ICJzZWVrdG8iCisjaWYgZGVmaW5lZChNRURJQV9TRVNTSU9OX1BMQVlMSVNUKSAmJiBNRURJQV9T
RVNTSU9OX1BMQVlMSVNUCisgICAgLCAic2V0dHJhY2siCisjZW5kaWYKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25E
ZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzLmgKaW5kZXggNjQxZWE3MjRhY2E2NzA1ZDczNTA3ZTI4NzFjNTE3NDE3
OTY5NmQ3Yy4uZjU5MDlkNDZmOGVhYzY2ZDBmM2M5ZGQ3ZTc1MzJlMzYwNDY4ZDZhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0
aW9uRGV0YWlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw5IEBAIHN0cnVjdCBNZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzIHsKICAgICBPcHRpb25hbDxkb3VibGU+IHNlZWtPZmZzZXQ7CiAgICAg
T3B0aW9uYWw8ZG91YmxlPiBzZWVrVGltZTsKICAgICBPcHRpb25hbDxib29sPiBmYXN0U2VlazsK
KyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBTdHJpbmcgdHJhY2tJZGVu
dGlmaWVyOworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRs
CmluZGV4IDFhMWVmN2FlNzY1YWUwMmYyMWUzMjMyYTEzNjRhOTZhMWFkZjE1NDcuLjJkOGM2MDcz
N2M2ZDY3ZmQxMjVlMTNlOTE2OThlY2ZhODAyNmMwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlv
bkRldGFpbHMuaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMyLDQgKzMyLDYgQEAKICAgICBkb3VibGU/IHNlZWtPZmZzZXQ7CiAgICAg
ZG91YmxlPyBzZWVrVGltZTsKICAgICBib29sZWFuPyBmYXN0U2VlazsKKworICAgIFtDb25kaXRp
b25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lv
blBsYXlsaXN0XSBET01TdHJpbmc/IHRyYWNrSWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFkZTU1NWVhNjI0YWJmMjkyMTNjZjAwZTI4OWE1
NmVlYzQ2Y2ZlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDE1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25D
b29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
Ik1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3Qgdm9pZCogbmV4dENv
b3JkaW5hdG9yTG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50
aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitSZWY8TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoUmVm
PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29yZGluYXRvcikK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25Db29yZGluYXRvcihXVEZN
b3ZlKHBsYXRmb3JtQ29vcmRpbmF0b3IpKSk7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQorICAgIDogbV9wbGF0Zm9ybUNvb3JkaW5hdG9y
KFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRvcikpCisgICAgLCBtX2xvZ2dlcihtYWtlUmVmKERv
Y3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4dENvb3Jk
aW5hdG9yTG9nSWRlbnRpZmllcigpKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7
CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNldExvZ2dlcihtX2xvZ2dlci5jb3B5UmVm
KCksIG1fbG9nSWRlbnRpZmllcik7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsIHRpbWUpOworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhM
T0dJREVOVElGSUVSLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNlZWtUbyh0aW1lLCBbdGltZSwg
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpXSAoKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgTWVk
aWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBN
ZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywKKyAgICAgICAgICAgIC5zZWVrVGltZSA9IHRpbWUs
CisgICAgICAgIH07CisgICAgICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWls
cyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoKQor
eworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgaWYgKCFtX3Nlc3Npb24pIHsK
KyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJNZWRpYVNlc3Npb24gaXMgTlVMTCEi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+
cGxheShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpXSAoKSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rp
b24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBsYXksCisgICAgICAgIH07CisgICAgICAgIG1fc2Vz
c2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVO
VElGSUVSLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBhdXNlKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZlB0cigqdGhpcyldICgpIG11dGFibGUgeworICAgICAgICBpZiAoIW1fc2Vzc2lv
bikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBNZWRpYVNlc3Npb25BY3Rpb25EZXRh
aWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6
UGF1c2UsCisgICAgICAgIH07CisgICAgICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIo
ZGV0YWlscyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNl
dFRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2spCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJ
RklFUiwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCB0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyldICgpIG11dGFibGUgeworICAgICAg
ICBpZiAoIW1fc2Vzc2lvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlh
U2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICAgICAgLnRyYWNrSWRlbnRpZmllciA9IHRy
YWNrLAorICAgICAgICB9OworICAgICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRl
dGFpbHMpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRN
ZWRpYVNlc3Npb24oTWVkaWFTZXNzaW9uKiBzZXNzaW9uKQoreworICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUik7CisgICAgbV9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lvbik7Cit9CisK
K1dURkxvZ0NoYW5uZWwmIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkKK3sK
KyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ODQ0N2E2YjYyOWEzMWY4MTk4MjQxNGY3ZDcyNDEy
NGMzMzcyNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKSAmJiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4K
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjsKK2NsYXNzIE1lZGlhU2Vzc2lvbjsKKworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4geworcHVibGlj
OgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
IGNyZWF0ZShSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgfk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCk7CisKKyAgICB2b2lkIHNlZWtU
byhkb3VibGUpOworICAgIHZvaWQgcGxheSgpOworICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2b2lk
IHNldFRyYWNrKGNvbnN0IFN0cmluZyYpOworCisgICAgdm9pZCBzZXRNZWRpYVNlc3Npb24oTWVk
aWFTZXNzaW9uKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYpOworCisgICAgY29u
c3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlcjsgfQorICAgIGNvbnN0
IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0K
KyAgICBzdGF0aWMgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpOworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBsb2dDbGFzc05hbWUoKSB7IHJldHVybiAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ii
OyB9CisKKyAgICBXZWFrUHRyPE1lZGlhU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIFJlZjxQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX3BsYXRmb3JtQ29vcmRpbmF0b3I7CisgICAg
UmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlm
aWVyOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVmMDlmNDliMWVmZDY2M2NmZGEzZDFiMGJjNTE0OWVlMDRiNDQxZDMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvci5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLAorICAgIEVuYWJsZWRC
eVNldHRpbmc9TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IsCisgICAgRXhwb3NlZD1XaW5kb3csCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VY
UE9SVCwKK10gaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHsKKyAgICB1bmRlZmlu
ZWQgc2Vla1RvKGRvdWJsZSB0aW1lKTsKKyAgICB1bmRlZmluZWQgcGxheSgpOworICAgIHVuZGVm
aW5lZCBwYXVzZSgpOworICAgIHVuZGVmaW5lZCBzZXRUcmFjayhET01TdHJpbmcgdHJhY2tJZGVu
dGlmaWVyKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCmluZGV4IDA0MjE5NjE3YzIzODY5MzAx
MDhhNjg2MGIyMTAxMjY5Y2U1MzY4OWUuLjdkMmJmMzA2OGJmNTY3YzFjNmY4YTNjMmU4OTU0ZmFh
YjRkMjMzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCkBAIC00MSw3ICs0MSw3IEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBOYXZpZ2F0b3JNZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7CiAgICAg
fk5hdmlnYXRvck1lZGlhU2Vzc2lvbigpOwogCi0gICAgc3RhdGljIE1lZGlhU2Vzc2lvbiYgbWVk
aWFTZXNzaW9uKE5hdmlnYXRvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBNZWRpYVNl
c3Npb24mIG1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsKICAgICBNZWRpYVNlc3Npb24mIG1lZGlh
U2Vzc2lvbigpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiMGJiYzBhMmFhZTViMjFm
ZWVjYmExOTViZTU5NzQ3N2E1Y2E0ODc5Li41OTk1NTYxYjJhMzBmMDQ3YTUxNzQ0MTVjNjNlMzNk
MTVhNDE4MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTMxLDYgKzEzMSw3IEBAIE1vZHVsZXMvbWVk
aWFjYXBhYmlsaXRpZXMvTWVkaWFDYXBhYmlsaXRpZXMuY3BwCiBNb2R1bGVzL21lZGlhY2FwYWJp
bGl0aWVzL05hdmlnYXRvck1lZGlhQ2FwYWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YS5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5j
cHAKK01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAogTW9k
dWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmNwcAogTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Js
b2JFdmVudC5jcHAKQEAgLTMyMDIsNiArMzIwMyw3IEBAIEpTTWVkaWFLZXlzLmNwcAogSlNNZWRp
YUtleXNSZXF1aXJlbWVudC5jcHAKIEpTTWVkaWFMaXN0LmNwcAogSlNNZWRpYU1ldGFkYXRhLmNw
cAorSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIEpTTWVkaWFNZXRhZGF0YUluaXQuY3Bw
CiBKU01lZGlhUG9zaXRpb25TdGF0ZS5jcHAKIEpTTWVkaWFRdWVyeUxpc3QuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTRi
ZGQxOTAxZTgyY2QwNzhhM2Y3NDM2MjA1NmYwYzk0MDc2YjFjYy4uODBjMmZlNzYwYjM3NjI5MzYx
ODA2NGEzODYxODBiYmJiMmRmNTgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTAsNiArOTAsNyBAQAogCQkwNzA3NTZENDE0
MjM5QTRGMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3NTZEMjE0MjM5QTRFMDA0MTQxNjEgLyog
SlNIVE1MVHJhY2tFbGVtZW50LmggKi87IH07CiAJCTA3MDc1NkRFMTQyMzlCNEUwMDQxNDE2MSAv
KiBKU1RleHRUcmFja0N1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi87
IH07CiAJCTA3MDc1NkUwMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkRBMTQy
MzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCAqLzsgfTsKKwkJMDcwOEYyQjYy
NURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDhGMkI0MjVEREU0
NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi87IH07CiAJ
CTA3MDlENzhGMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc4RDFBRTU1
NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MDlENzkyMUFFNTU1N0UwMDRFNDJG
OCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLzsgfTsKIAkJMDcwOUQ3OTMxQUU1NTU3RTAwNEU0
MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlENzkxMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTEyMyw2ICsxMjQsNyBAQAogCQkwNzNBMTU1NDIxNzdBNDI2MDBF
QTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRl
b1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0
Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMw
RUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1w
bGVEYXRhU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMDc0MEIxNDQyNURFMzFGODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzQwQjE0MzI1REUzMUE5MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcCAqLzsgfTsKIAkJMDc0RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJh
bmdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0
RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTAzM0E4MjUyQkQzNjgw
MEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAv
KiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2Fj
aGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07
CkBAIC01Njc0LDYgKzU2NzYsNyBAQAogCQkwNzA3NTZEODE0MjM5QjRCMDA0MTQxNjEgLyogSlNU
ZXh0VHJhY2tDdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJh
Y2tDdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2RDkxNDIzOUI0QzAw
NDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1ZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzA3NTZEQTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlTGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYg
LyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzhDMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAv
KiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTc2NSw2ICs1NzY4LDExIEBACiAJCTA3MkFFMUUzMTgzQzA3NDEw
MDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzJBRTFFNDE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2lu
UmVwbGFjZW1lbnQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBR
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQkZCMjVEQjM4QkMw
MEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkMwMzI1
REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDcyREJDMDUyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDYyNURDNkVEQTAwQTEzNTBFIC8qIEpTTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA3MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVi
dWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0REMxOUVFMkM1MjAwRTVBMDQ1IC8q
IFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSVENPZmZlckFuc3dlck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDczNzk0RTMxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ0NvbmZpZ3VyYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTRFNDE5RUUyRkYyMDBFNUEwNDUgLyog
SlNSVENDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UlRDQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTc4Niw2
ICs1Nzk0LDggQEAKIAkJMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVm
ZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1NhbXBsZUJ1
ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjQxRTQzODU5
RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0MEIxNDEy
NURFMzFBODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDc0MEIxNDMyNURFMzFBOTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNFQjFFMEM0QUU1
MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNb2NrQXVkaW9TaGFyZWRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3NDRFQ0VDMUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrQXVkaW9TaGFyZWRVbml0Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTW9ja0F1ZGlvU2hhcmVk
VW5pdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NkQzMEEyMTQ2RUEzNzAw
M0RERjg0IC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTk0OTgsNiArMTk1MDgsOCBAQAogCQkJCTUxMDU4QURBMUQ2
NzkyNTcwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmggKi8sCiAJCQkJNDE1N0VCRjkx
RTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgKi8sCiAJ
CQkJNDE1N0VCRjgxRTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bi5oICovLAorCQkJCTA3NDBCMTQzMjVERTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQkyRDZGM0U4QTFDMUVDQjFDMDA2MURC
RDQgLyogTW9ja1BhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDZGM0U4QjFDMUVDQjFDMDA2MURC
RDQgLyogTW9ja1BhZ2VPdmVybGF5LmggKi8sCiAJCQkJMkQ2RjNFOEMxQzFFQ0IxQzAwNjFEQkQ0
IC8qIE1vY2tQYWdlT3ZlcmxheS5pZGwgKi8sCkBAIC0yNjc4MCw2ICsyNjc5Miw3IEBACiAJCQkJ
NTUwNjQwQUQyNDA3NTZEQTAwQUFFMDQ1IC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJCYWNrZW5kLmgg
Ki8sCiAJCQkJMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLywK
IAkJCQlDRUVGQ0Q3QjE5REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyLmggKi8sCisJCQkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQkwNzI4NDdFMjE2RUJDNUIwMDA0M0NGQTQgLyog
UGxhdGZvcm1UZXh0VHJhY2suaCAqLywKIAkJCQkwNzRFODJCODE4QTY5RjBFMDA3RUY1NEMgLyog
UGxhdGZvcm1UaW1lUmFuZ2VzLmNwcCAqLywKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMg
LyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8sCkBAIC0yODIzNCw2ICsyODI0Nyw5IEBACiAJCQkJ
Q0REREVBMzUyNTM4Q0U3MDAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRs
ICovLAogCQkJCUNERERFQTNBMjUzOEU5QzIwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25I
YW5kbGVyLmggKi8sCiAJCQkJQ0REREVBMzkyNTM4RTlDMjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXIuaWRsICovLAorCQkJCTA3MkRCQzA1MjVEQzZCRDMwMEExMzUwRSAvKiBN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDcyREJDMDMyNURDNkJEMzAwQTEz
NTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCisJCQkJMDcyREJCRkIyNURCMzhC
QzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbCAqLywKIAkJCQlDRERERUEy
OTI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJ
CUNERERFQTI4MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlk
bCAqLywKIAkJCQlDRERERUEyNTI1MzhDREFCMDBBMTMwMEMgLyogTmF2aWdhdG9yK01lZGlhU2Vz
c2lvbi5pZGwgKi8sCkBAIC0yODI2Miw2ICsyODI3OCw4IEBACiAJCQkJQ0REREVBNDAyNTM5MTFE
QjAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oICovLAogCQkJCUNERERF
QTREMjUzOTEzQkIwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwICov
LAogCQkJCUNERERFQTRFMjUzOTEzQkMwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhh
bmRsZXIuaCAqLywKKwkJCQkwNzJEQkMwNzI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDcyREJDMDYyNURDNkVEQTAwQTEzNTBFIC8qIEpT
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQlDRERERUE0NjI1MzkxMUREMDBBMTMw
MEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmNwcCAqLywKIAkJCQlDRERERUE0MjI1
MzkxMURDMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggKi8sCiAJCQkp
OwpAQCAtMzQxMzEsNiArMzQxNDksNyBAQAogCQkJCUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAv
KiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VFRkNEN0MxOURCMzNEQzAw
Mzg3NkQ3IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDcwRTA5MTkxODc1RUVGQzAwM0ExRDNDIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwNzA4RjJCNjI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGOTQ0MTYxODY0RDA0
NjAwNUQzMUNCIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM1QzQ3NjkwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzU5ODkwNTgxNEU5QzI5OTAwRThEMThCIC8qIFBsYXRmb3JtUGFz
dGVib2FyZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjAyOSw2ICszNjA0OCw3IEBACiAJCQkJNTEw
NThBREIxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxMDU4QUREMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQxNTdFQkZBMUUzQUI2NzkwMEFDOUZFOSAvKiBNb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc0MEIxNDQyNURFMzFG
ODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDZGM0U5MDFDMUVDQjI3MDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEOTdGMDQ3MTlERDQxM0MwMDFFRTlDMyAvKiBNb2NrUGFnZU92
ZXJsYXlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFBRkVERTcxRjhCRkY2RDAwODcw
MTNGIC8qIE1vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggNTll
NGViNDlkZTg5YmQ0N2VkYzEyOTRhOTIzZWM2M2Y1NWFmNjc3OS4uM2JkODMwZWYxMjE1MWFjNTYz
Y2Y1ZjJmOWQxODUyZDhiNTNhMTJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTcxLDYgKzE3MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBtYWNybyhNZWRpYVF1ZXJ5TGlzdEV2ZW50KSBcCiAgICAgbWFjcm8oTWVk
aWFSZWNvcmRlcikgXAogICAgIG1hY3JvKE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50KSBcCisgICAg
bWFjcm8oTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpIFwKICAgICBtYWNybyhNZWRpYVNvdXJjZSkg
XAogICAgIG1hY3JvKE1lZGlhU3RyZWFtKSBcCiAgICAgbWFjcm8oTWVkaWFTdHJlYW1UcmFjaykg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggZGMzYWYwODUyZjI2ZGU1MzhlNDAwNTc4ZjU4
YjY2MzU3NGNiYjZlNi4uMDIzMjYzYWI5ZDVhOTY0NjkzZTBjYzg4OGZkMDliOWQ0NzdmNTg2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC05Nyw2ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhjb25uZWN0aW5nKSBcCiAgICAgbWFjcm8oY29udGV4dG1lbnUpIFwK
ICAgICBtYWNybyhjb250cm9sbGVyY2hhbmdlKSBcCisgICAgbWFjcm8oY29vcmRpbmF0b3JjaGFu
Z2UpIFwKICAgICBtYWNybyhjb3B5KSBcCiAgICAgbWFjcm8oY3VlY2hhbmdlKSBcCiAgICAgbWFj
cm8oY3V0KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA2
OTZlYTljZWJkMjFkMTQ5YWVhNWUwYmI2NDM3YWNlZmI4Y2EyMDM0Li43YTJjMGE4ZDhjMDc2MTlk
MGU2N2IyMjdhMzA0ZTYyYWNmODllZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4KQEAgLTIzLDYgKzIzLDcgQEAgTWVkaWFEZXZpY2VzIGNvbmRpdGlvbmFsPU1F
RElBX1NUUkVBTQogTWVkaWFLZXlTZXNzaW9uIGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQQog
TWVkaWFRdWVyeUxpc3QKIE1lZGlhUmVjb3JkZXIgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCitN
ZWRpYVNlc3Npb24gY29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUgogTWVkaWFT
b3VyY2UgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBNZWRpYVN0cmVhbSBjb25kaXRpb25hbD1N
RURJQV9TVFJFQU0KIE1lZGlhU3RyZWFtVHJhY2sgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGFlY2Q5MjQxZDRl
N2EwYjNjNjk5OTk4NDhlMWViNWQxY2NkZDczNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgorI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCisgICAgdXNpbmcgU2Vla0NvbXBsZXRlZENh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vl
a1RvKGRvdWJsZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHVzaW5nIFBs
YXlDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CisgICAgdmly
dHVhbCB2b2lkIHBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHVzaW5n
IFBhdXNlQ29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworICAg
IHZpcnR1YWwgdm9pZCBwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAg
IHVzaW5nIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+OworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNrQ29t
cGxldGVkQ2FsbGJhY2smJikgPSAwOworCisgICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgTG9nZ2Vy
JiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCisgICAgeworICAgICAgICBtX2xv
Z2dlciA9IG1ha2VSZWZQdHIobG9nZ2VyKTsKKyAgICAgICAgbV9sb2dJZGVudGlmaWVyID0gbG9n
SWRlbnRpZmllcjsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCisgICAgY29uc3QgTG9nZ2VyKiBs
b2dnZXJQdHIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAgIGNvbnN0IHZv
aWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAg
ICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiAiUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvciI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkg
Y29uc3QgeyByZXR1cm4gTG9nTWVkaWE7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8Y29uc3Qg
TG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
NjFlYTlhMTViYTljZDE5MzNkODNlNTUyN2Q5OTdlNzQ2NjVmMmUxMC4uMzkyMzQzMDM4OWZiN2E2
YjYzYTEzYTk0NzQ2N2MzYTVkZjY4MGY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcApAQCAtMzMzLDYgKzMzMywxMiBAQAogI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1NhbmRi
b3hTUEkuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYVNlc3Npb24u
aCIKKyNlbmRpZgorCiB1c2luZyBKU0M6OkNhbGxEYXRhOwogdXNpbmcgSlNDOjpDb2RlQmxvY2s7
CiB1c2luZyBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTsKQEAgLTYwMjUsOCArNjAzMSwyMyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnNlbmRNZWRpYVNlc3Npb25BY3Rpb24oTWVkaWFT
ZXNzaW9uJiBzZXNzaW9uLCBjb25zdAogICAgIH0KICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfTsKIH0KKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQorRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpyZWdpc3Rlck1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQoreworICAgIGlm
ICghY29udGV4dERvY3VtZW50KCkgfHwgIWNvbnRleHREb2N1bWVudCgpLT5kb21XaW5kb3coKSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAg
YXV0byYgc2Vzc2lvbiA9IE5hdmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uKGNvbnRl
eHREb2N1bWVudCgpLT5kb21XaW5kb3coKS0+bmF2aWdhdG9yKCkpOworICAgIG1fbWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IgPSBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6c2luZ2xldG9uKGNvbnRleHQpKTsKKyAgICBzZXNzaW9uLnNl
dENvb3JkaW5hdG9yKG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuZ2V0KCkpOworCisgICAgcmV0
dXJuIHsgfTsKK30KICNlbmRpZgogCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pCisK
IGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc3RyaW5nKFBhcnRpYWxPcmRlcmluZyBvcmRlcmluZykK
IHsKICAgICBpZiAoaXNfbHQob3JkZXJpbmcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
aW5kZXggN2ViYTY1Nzg5ZjhiZmQyZjI2NmIzNzQzOTY3MzU2ZjQyMDZiZDlkOC4uYWYwYTAzOTQy
MmRjYzFjMzk4NWZhZmUwZmQ0MzM0ZjQxYzhiNTIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCkBAIC0xMzQsNiArMTM0LDkgQEAgY2xhc3MgV2ViWFJUZXN0OwogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQogY2xhc3MgTWVkaWFTZXNzaW9uOwogc3RydWN0IE1lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHM7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCitjbGFz
cyBNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKKyNlbmRpZgogI2VuZGlmCiAKIHRlbXBsYXRlPHR5
cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKQEAgLTEwNzIsNiArMTA3
NSwxMSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgRXhjZXB0aW9u
T3I8ZG91YmxlPiBjdXJyZW50TWVkaWFTZXNzaW9uUG9zaXRpb24oY29uc3QgTWVkaWFTZXNzaW9u
Jik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2VuZE1lZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNl
c3Npb24mLCBjb25zdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzJik7CisKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiByZWdpc3Rl
ck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7Cisj
ZW5kaWYKKwogI2VuZGlmCiAKICAgICBlbnVtIFRyZWVUeXBlIDogdWludDhfdCB7IFRyZWUsIFNo
YWRvd0luY2x1ZGluZ1RyZWUsIENvbXBvc2VkVHJlZSB9OwpAQCAtMTExNCw2ICsxMTIyLDExIEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQlhSKQogICAgIFJlZlB0cjxXZWJYUlRlc3Q+IG1feHJU
ZXN0OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAg
ICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I7CisjZW5kaWYKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGQzYzUzMjJhODI4OGIyOWM4ZTQ4ZjkwZjYzMjUwZWE4
ZjNkNzZlNjkuLjhhYjQyOWQwMmM4OTEwNjQ2YmRmMWE3MzQ2YmRiNjBlNTQyYThhZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTk2OSw2ICs5NjksNyBAQCBlbnVtIFRy
ZWVUeXBlIHsKIAogICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OLCBNYXlUaHJvd0V4Y2Vw
dGlvbl0gZG91YmxlIGN1cnJlbnRNZWRpYVNlc3Npb25Qb3NpdGlvbihNZWRpYVNlc3Npb24gc2Vz
c2lvbik7CiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT04sIE1heVRocm93RXhjZXB0aW9u
XSB1bmRlZmluZWQgc2VuZE1lZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNlc3Npb24gc2Vzc2lvbiwg
TWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBhY3Rpb25EZXRhaWxzKTsKKyAgICBbQ29uZGl0aW9u
YWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiwgTWF5VGhyb3dFeGNlcHRpb24sIENhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHVuZGVmaW5lZCByZWdpc3Rlck1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcigpOwogCiAgICAgRE9NU3RyaW5nIHRyZWVPcmRlcihOb2RlIGEsIE5vZGUg
Yiwgb3B0aW9uYWwgVHJlZVR5cGUgdHJlZSA9ICJUcmVlIik7CiAgICAgRE9NU3RyaW5nIHRyZWVP
cmRlckJvdW5kYXJ5UG9pbnRzKE5vZGUgY29udGFpbmVyQSwgdW5zaWduZWQgbG9uZyBvZmZzZXRB
LCBOb2RlIGNvbnRhaW5lckIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0Qiwgb3B0aW9uYWwgVHJlZVR5
cGUgdHJlZSA9ICJUcmVlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAxNDliNTZhYTE1YWM2
MTcwMTFhOTFlM2I5MDc4YTJhNjU1ZjM4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDg3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1VVSUQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciYgTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzaW5nbGV0b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yPiBjb29yZGluYXRvcihjb250ZXh0KTsKKyAgICByZXR1cm4gY29vcmRpbmF0
b3I7Cit9CisKK01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKK3sKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNl
ZWtUbyhkb3VibGUgdGltZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7Cisg
ICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKKyAgICBtX2Nv
bnRleHQtPnBvc3RUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOwor
fQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShQbGF5Q29tcGxldGVk
Q2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lE
RU5USUZJRVIpOworICAgIG1fY29udGV4dC0+cG9zdFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNh
bGxiYWNrKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlT
X0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNr
KFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
IG11dGFibGUgeworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCit2b2lkIE1vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0Nv
bXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJM
RShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAg
ICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZmMxYTQyZGIwZGJhMWI3YzllMjMzYzU5ZDUyNWNiYTlhYjgwZjE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCisKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciB7CitwdWJsaWM6
CisgICAgc3RhdGljIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciYgc2luZ2xldG9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKTsKKworICAgIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgdmlydHVhbCB+TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCitwcml2YXRlOgorCisgICAgdm9pZCBzZWVrVG8oZG91
YmxlLCBTZWVrQ29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBwbGF5KFBsYXlD
b21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVk
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRy
YWNrQ29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7CisKKyAgICBSZWY8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dD4gbV9jb250ZXh0OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NF
U1NJT04pICYmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4OWJh
OTIyNDMwMTE5OTBmZjM0YzZiNTM1Y2Q5OTk3NTViODA1MTguLjExM2YzNzNkYjdhODZlNDA0YTMx
M2E3ZjhmZTkzMTA3MDM3OGUwMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMi0xOCAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2Fd
IEFkZCBFeHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3Jk
aW5hdG9yLmh0bWw6IEFkZGVkLgorCiAyMDIxLTAyLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWVuYWJsZSBHUFVQcm9jZXNzIE1lZGlhIGZsYWcgaW4g
V2ViUlRDIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9u
L21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
c2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDU4ZGIx
MDJmYmMwMDQ5ODhjZGVjY2FlYjQ5NGI3YWIyNTY0OTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIyIEBACitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29y
ZGluYXRvciA9PSAndW5kZWZpbmVkJykgT0sKK1JVTihpbnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IoKSkKK0VWRU5UKGNvb3JkaW5hdG9yY2hhbmdlKQorRVhQRUNU
RUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IgIT0gJ3VuZGVmaW5lZCcpIE9L
CisKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKSkKK0VYUEVD
VEVEIChsYXRlc3RBY3Rpb24gIT0gJ3BsYXknKSBPSworQUNUSU9OOiBwbGF5CitFWFBFQ1RFRCAo
bGF0ZXN0QWN0aW9uID09ICdwbGF5JykgT0sKKworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
Y29vcmRpbmF0b3IucGF1c2UoKSkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gIT0gJ3BhdXNlJykg
T0sKK0FDVElPTjogcGF1c2UKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3BhdXNlJykgT0sK
KworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEwKSkKK0VY
UEVDVEVEIChsYXRlc3RBY3Rpb24gIT0gJ3NlZWt0bycpIE9LCitBQ1RJT046IHNlZWt0bworRVhQ
RUNURUQgKGxhdGVzdEFjdGlvbiA9PSAnc2Vla3RvJykgT0sKKworRU5EIE9GIFRFU1QKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9y
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3Iu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YWZkNzNhZWVhY2E1ZDZjNWY4ZTNkZDRiMTc0ZjMzODM3OTU3MzA2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2Nr
LWNvb3JkaW5hdG9yLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDx0aXRsZT5tb2NrLW1lZGlhc2Vzc2lvbi1jb29yZGluYXRvcjwvdGl0
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQ+CisKKyAgICBsZXQgbGF0ZXN0QWN0aW9uOworCisgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWlsVGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEludGVy
bmFscycpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qg
Y2hhbmdlUHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5hZGRFdmVudExpc3RlbmVyKCdjb29yZGluYXRvcmNoYW5nZScs
IChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRVZFTlQoJHtldmVu
dC50eXBlfSlgKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLmNvb3JkaW5hdG9yJywgdW5kZWZpbmVkKTsKKworICAgICAgICBydW4oJ2ludGVybmFscy5y
ZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcigpJyk7CisKKyAgICAgICAgYXdhaXQg
Y2hhbmdlUHJvbWlzZTsKKyAgICAgICAgCisgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcicsIHVuZGVmaW5lZCwgJyE9Jyk7CisKKyAgICAgICAg
bGV0IGFjdGlvbnMgPSBbJ3BsYXknLCAncGF1c2UnLCAnc2Vla3RvJ107CisgICAgICAgIGFjdGlv
bnMuZm9yRWFjaChhY3Rpb24gPT4geworICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5zZXRBY3Rpb25IYW5kbGVyKGFjdGlvbiwgYWN0aW9uRGV0YWlscyA9PiB7CisgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKGBBQ1RJT046ICR7YWN0aW9uRGV0YWlscy5hY3Rpb259YCk7Cisg
ICAgICAgICAgICAgICAgbGF0ZXN0QWN0aW9uID0gYWN0aW9uRGV0YWlscy5hY3Rpb247CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBsZXQgdGVzdEFjdGlv
biA9IGFzeW5jIChhY3Rpb24pID0+IHsKKyAgICAgICAgICAgIGxldCBjb21tYW5kOworICAgICAg
ICAgICAgaWYgKGFjdGlvbiA9PSAnc2Vla3RvJykKKyAgICAgICAgICAgICAgICBjb21tYW5kID0g
J3NlZWtUbygxMCknCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY29tbWFuZCA9
IGAke2FjdGlvbn0oKWA7CisKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAg
ICAgICBydW4oYG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IuJHtjb21tYW5kfWAp
OworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RBY3Rpb24nLCBhY3Rpb24sICchPScp
OworICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0QWN0aW9u
JywgYWN0aW9uLCAnPT0nKTsKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGxldCBhY3Rpb24g
b2YgYWN0aW9ucykKKyAgICAgICAgICAgIGF3YWl0IHRlc3RBY3Rpb24oYWN0aW9uKTsKKworICAg
ICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSwge29uY2U6
IHRydWV9KTsKKworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421055</attachid>
            <date>2021-02-19 16:29:43 -0800</date>
            <delta_ts>2021-02-19 16:50:40 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-222158-20210219162942.patch</filename>
            <type>text/plain</type>
            <size>73385</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjk3Njg5NGQ4M2ExZDZiYjI2YWY0ZGJhYmUyMjA4YmNkNjE2OTMy
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAyLTE1ICBQZXIgQXJuZSAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQ2xvc2UgWFBDIGNvbm5lY3Rpb25z
IGJlZm9yZSBlbnRlcmluZyBzYW5kYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhlNTdmZGYxOTE2OTIwMjVj
YThjMjIzYWI3MDEzMWQwMWJlZDQ5NS4uN2FjMTMwYmQ2MjUyZTQ0MGNhYjhjZDM4NWYxMDU4ZDVk
OGYxNjY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAyLTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIEV4
cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE1OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzQ1MDg4NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YUluaXQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGFJ
bml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6c2V0Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpzZXRQbGF5bGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmNh
bGxBY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRpbmF0b3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6bmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDogTmV3LgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nSWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2xh
c3NOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5pZGw6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0
b3JNZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAg
ICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TG9nZ2VyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlclB0ciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Ojpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsIGNvbnN0KToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAg
ICAgKiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzaW5nbGV0b24pOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaDogTmV3LgorCiAyMDIxLTAyLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBsaWJ3ZWJydGMgaW5zdGFsbHMgc29tZSBmaWxlcyBpbnRvIGlu
Y29ycmVjdCBsb2NhdGlvbnMgaW4gL3Vzci9sb2NhbC9pbmNsdWRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCmluZGV4IGIyYmY5MDJlYmQ5ODA1MTI0ZDJkYjgwMGE3NzYyYTEzMjVlMzc5YjMu
LmJiYWFkMDAxNmExODIxMTM3NTgzMWQ2MTYyYWY5Mjg4MmQ0MTgxNWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCkBAIC01NjIsNiArNTYyLDE5IEBAIE1lZGlhUmVjb3JkZXJFbmFibGVk
OgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYVNlc3Npb25Db29y
ZGluYXRvckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBl
cmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURl
c2NyaXB0aW9uOiAiRW5hYmxlIGV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3Ig
QVBJIgorICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICBk
ZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZh
dWx0OiBmYWxzZQorCiBNZWRpYVNlc3Npb25FbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFu
UmVhZGFibGVOYW1lOiAiTWVkaWEgU2Vzc2lvbiBBUEkiCkBAIC01NzUsNiArNTg4LDE5IEBAIE1l
ZGlhU2Vzc2lvbkVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAK
K01lZGlhU2Vzc2lvblBsYXlsaXN0RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRh
YmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gcGxheWxpc3QgQVBJIgorICBodW1h
blJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBw
bGF5bGlzdCBBUEkiCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1Qp
CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxz
ZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAg
IGRlZmF1bHQ6IGZhbHNlCisKIE1vZGVsRWxlbWVudEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJIVE1MIDxtb2RlbD4gZWxlbWVudCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaAppbmRleCA3OGQ1ODczYTMwODkxMDIwZTVhNzcyYmM5NTBhMmViNjQx
M2ZiNWUwLi4xM2ViZTkzYThkNjNkODM3YjI4ZWYxMjg1NTgzNTkxM2IwZjc4NDkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC0zMjgsNiArMzI4LDE0IEBACiAjZGVmaW5l
IEVOQUJMRV9NRURJQV9TRVNTSU9OIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX01F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01BWF9BTExPV0VEID49IDEyMDAwMAorI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNT
SU9OX1BMQVlMSVNUKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhf
QUxMT1dFRCA+PSAxMjAwMDAKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1Qg
MQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKSAmJiAhUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVU
VikgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQogI2RlZmluZSBFTkFCTEVfTUVE
SUFfU09VUkNFIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3YWJlOWY1ZmEzYjUx
ZDVlOTE1ZGE3YjM1Mzg3ZDhjODUzYTNkYWI3Li4yZWQ0MTg2NjcwYjhkMGNhMmQwNzNhNjBlMmUw
ZTI4NWMyZTMyZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzM2LDYgKzMzNiw3IEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uQWN0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
QWN0aW9uSGFuZGxlci5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvcitNZWRpYVNl
c3Npb24uaWRsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IDY4Y2ZkNGEwNzI2MjUzNDhhY2U1N2I5M2ZkYTc3M2VjYjJjNjgxN2YuLjRh
ODA0YTdmNWJjY2YwNzQyZGYzMGUwNDg5OTFmMDFmYzY4MjhkODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDYgKzE3Myw3IEBA
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRl
dGFpbHMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb25IYW5kbGVyLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMTcy
MzY0ZDliNTUxMTA5MjRkZDkzYzdkYWNjNjg2MjlmZDc5YmU3Yy4uOTk5MGJhZDE3NDFiNThhZjAw
ODI0OWQ3NzY5MzY3ZjNhMGEwZDQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOTksNiArMTI5OSw4IEBAICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlv
bkhhbmRsZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25QbGF5YmFj
a1N0YXRlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBmYmE5ZWU1YTAxMzQ5ZmI2MWFiY2JhYTJkNWIyNDQzZTAyMGNlOWI5Li44
NGNkMTU3NWY1ZTJjNmM3NWE1YjM5MTExNWJmOWE4MjM0NjFjNTU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTIwNyw2ICsyMDcsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rp
b25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFT
dHJlYW1UcmFjay5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCBmNmZmMzFmYjA4ZGQ0OTgxYTNiY2U5MDM5
MmJkYmQyY2RhNWZjZGI2Li45ZGEyMDE1MjBmNDhiZjUxMWJhOWUwYzc5ZGE3MGM0NmM0MDU1MGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1l
dGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmNwcApAQCAtNDIsNiArNDIsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFNZXRh
ZGF0YT4+IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwog
ICAgICAgICBtZXRhZGF0YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRhZGF0
YS0+c2V0QXJ0aXN0KGluaXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1bShp
bml0LT5hbGJ1bSk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgICAg
IG1ldGFkYXRhLT5zZXRUcmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsKKyNl
bmRpZgogICAgICAgICBhdXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFydHdv
cmsoY29udGV4dCwgV1RGTW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3NzaWJs
ZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBwb3NzaWJsZUV4Y2VwdGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTA1LDYgKzEwOCwxNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBNZWRpYU1ldGFkYXRhOjpzZXRBcnR3b3JrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFZlYwogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9QTEFZTElTVCkKK3ZvaWQgTWVkaWFNZXRhZGF0YTo6c2V0VHJhY2tJZGVu
dGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9tZXRhZGF0YS50
cmFja0lkZW50aWZpZXIgPT0gaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9t
ZXRhZGF0YS50cmFja0lkZW50aWZpZXIgPSBpZGVudGlmaWVyOworICAgIG1ldGFkYXRhVXBkYXRl
ZCgpOworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFNZXRhZGF0YTo6bWV0YWRhdGFVcGRhdGVkKCkK
IHsKICAgICBpZiAobV9zZXNzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCmluZGV4IDMwZTA5M2Q2ZDI3ZGRiNzQxNTI4MWVl
OGI1ZDEwMDRlZmNmYWE1ZGEuLjg1NDg2OWM2MzZjMzc1MGVkNzk5YWU5MzY2OWJmNTJhYWM1MDVj
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmgKQEAgLTU5LDYgKzU5LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8
TWVkaWFJbWFnZT4mIGFydHdvcmsoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmFydHdvcms7
IH0KICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBcnR3b3JrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBWZWN0b3I8TWVkaWFJbWFnZT4mJik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9Q
TEFZTElTVCkKKyAgICBjb25zdCBTdHJpbmcmIHRyYWNrSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fbWV0YWRhdGEudHJhY2tJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRUcmFja0lkZW50
aWZpZXIoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIGNvbnN0IE1lZGlhU2Vzc2lvbk1l
dGFkYXRhJiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGE7IH0KIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YS5pZGwKaW5kZXggYjI4ZTk5ZDNiNzllNWVlNjFjNjFjZWQ3OTgxYzNjYjIwN2UzODEy
MS4uZTYyNGViYzQ4ZWUxZmUwYjBjYTZkYjEyNDcxZTIyMTE5NWExN2M3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwK
QEAgLTMzLDQgKzMzLDYgQEAKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFydGlzdDsKICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGFsYnVtOwogICAgIFtTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1l
ZGlhSW1hZ2U+IGFydHdvcms7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZ
TElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERP
TVN0cmluZyB0cmFja0lkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmgKaW5kZXggNjY5ZGVmZmEy
ZDY5NDA4NWYwOGYxMGRmMWI5MTZlZjQ0ZTg4NWUwZC4uZDg2ZjkxMjkzMzQxZDJkOTA1NDM1MTNk
YmE4NTNlNzQ1NjE0Y2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oCkBAIC0zNSw2ICszNSw5IEBAIHN0cnVj
dCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAgICAgU3RyaW5nIHRpdGxlOwogICAgIFN0cmluZyBhcnRp
c3Q7CiAgICAgU3RyaW5nIGFsYnVtOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNU
KQorICAgIFN0cmluZyB0cmFja0lkZW50aWZpZXI7CisjZW5kaWYKICAgICBWZWN0b3I8TWVkaWFJ
bWFnZT4gYXJ0d29yazsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKQEAgLTQzLDI4ICs0Niw0MCBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0
YUluaXQgewogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRpYU1ldGFk
YXRhSW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8
PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0gPDwgYXJ0d29yazsKKyAgICBlbmNvZGVyIDw8IHRp
dGxlIDw8IGFydGlzdCA8PCBhbGJ1bQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNU
KQorICAgIDw8IHRyYWNrSWRlbnRpZmllcgorI2VuZGlmCisgICAgPDwgYXJ0d29yazsKIH0KIAog
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRhdGFJbml0
PiBNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgU3Ry
aW5nIHRpdGxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGl0bGUpKQotICAgICAgICByZXR1
cm4geyB9OworI2RlZmluZSBERUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+
IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsgXAogCi0gICAgU3RyaW5nIGFydGlzdDsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFydGlzdCkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgREVDT0RF
KHRpdGxlLCBTdHJpbmcpOworICAgIERFQ09ERShhcnRpc3QsIFN0cmluZyk7CisgICAgREVDT0RF
KGFsYnVtLCBTdHJpbmcpOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAg
IERFQ09ERSh0cmFja0lkZW50aWZpZXIsIFN0cmluZyk7CisjZW5kaWYKKyAgICBERUNPREUoYXJ0
d29yaywgVmVjdG9yPE1lZGlhSW1hZ2U+KTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFsYnVtKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIFZlY3Rv
cjxNZWRpYUltYWdlPiBhcnR3b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0d29yaykp
Ci0gICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHsgeworICAgICAgICAqdGl0bGUsCisg
ICAgICAgICphcnRpc3QsCisgICAgICAgICphbGJ1bSwKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9QTEFZTElTVCkKKyAgICAgICAgKnRyYWNrSWRlbnRpZmllciwKKyNlbmRpZgorICAgICAgICAq
YXJ0d29yaworICAgIH0gfTsKIAotICAgIHJldHVybiBNZWRpYU1ldGFkYXRhSW5pdCB7IFdURk1v
dmUodGl0bGUpLCBXVEZNb3ZlKGFydGlzdCksIFdURk1vdmUoYWxidW0pLCBXVEZNb3ZlKGFydHdv
cmspIH07CisjdW5kZWYgREVDT0RFCiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbAppbmRleCA4YjBm
NTVjZjE0YTU4MzhjYjU0ODk1NjVkMDI3MmRhZmFkOWUxMjNkLi4wZGM4ZWYwMDdiMTA5NTFiMGQ1
OTE5ZWIwMzEyNDM0ZjNmNjQ0NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCkBAIC0zMCw1ICszMCw2
IEBACiAgICAgRE9NU3RyaW5nIHRpdGxlID0gIiI7CiAgICAgRE9NU3RyaW5nIGFydGlzdCA9ICIi
OwogICAgIERPTVN0cmluZyBhbGJ1bSA9ICIiOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNT
SU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0XSBET01T
dHJpbmcgdHJhY2tJZGVudGlmaWVyID0gIiI7CiAgICAgc2VxdWVuY2U8TWVkaWFJbWFnZT4gYXJ0
d29yayA9IFtdOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IDkwMWRkYjBhN2I0ZmU5ZTkzNjNlNWZmMzFmMmVh
YjQ3YTlkMzY0OGQuLmY3ZjY0NmRiMTJjZWI4ZWU0ZTQzZDMzMGU0NDczOTQwMjMzYjkxMDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk1lZGlhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
IgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5oIgogCkBAIC03NSw3ICs3NiwxMSBAQCBSZWY8TWVkaWFTZXNzaW9uPiBNZWRpYVNl
c3Npb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKIH0KIAogTWVkaWFTZXNzaW9uOjpN
ZWRpYVNlc3Npb24oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCi0gICAgOiBtX25hdmlnYXRvcihtYWtl
V2Vha1B0cihuYXZpZ2F0b3IpKQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIobmF2
aWdhdG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAsIG1fbmF2aWdhdG9yKG1ha2VX
ZWFrUHRyKG5hdmlnYXRvcikpCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNy
ZWF0ZSgqdGhpcykpCisjZW5kaWYKIHsKICAgICBtX2xvZ2dlciA9IG1ha2VSZWZQdHIoRG9jdW1l
bnQ6OnNoYXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZpZXIgPSBuZXh0TG9nSWRlbnRp
ZmllcigpOwpAQCAtODgsNyArOTMsNiBAQCBNZWRpYVNlc3Npb246On5NZWRpYVNlc3Npb24oKSA9
IGRlZmF1bHQ7CiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0
YWRhdGE+JiYgbWV0YWRhdGEpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKLQog
ICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBtX21ldGFkYXRhLT5yZXNldE1lZGlhU2Vzc2lv
bigpOwogICAgIG1fbWV0YWRhdGEgPSBXVEZNb3ZlKG1ldGFkYXRhKTsKQEAgLTk3LDYgKzEwMSw0
NSBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+
JiYgbWV0YWRhdGEpCiAgICAgbWV0YWRhdGFVcGRhdGVkKCk7CiB9CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKK3ZvaWQgTWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRv
cihNZWRpYVNlc3Npb25Db29yZGluYXRvciogY29vcmRpbmF0b3IpCit7CisgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSKTsKKworICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAgICAgICBtX2Nv
b3JkaW5hdG9yLT5zZXRNZWRpYVNlc3Npb24obnVsbHB0cik7CisKKyAgICBtX2Nvb3JkaW5hdG9y
ID0gY29vcmRpbmF0b3I7CisKKyAgICBpZiAobV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29y
ZGluYXRvci0+c2V0TWVkaWFTZXNzaW9uKHRoaXMpOworCisgICAgbV9hc3luY0V2ZW50UXVldWUt
PmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb29yZGluYXRvcmNoYW5n
ZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsK
K30KKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCitFeGNlcHRp
b25Pcjx2b2lkPiBNZWRpYVNlc3Npb246OnNldFBsYXlsaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIFZlY3RvcjxSZWZQdHI8TWVkaWFNZXRhZGF0YT4+JiYgcGxheWxpc3QpCit7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKworICAgIFZlY3RvcjxSZWY8TWVkaWFN
ZXRhZGF0YT4+IHJlc29sdmVkUGxheWxpc3Q7CisgICAgcmVzb2x2ZWRQbGF5bGlzdC5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHBsYXlsaXN0LnNpemUoKSk7CisKKyAgICBmb3IgKGF1dG8mIGVudHJ5
IDogcGxheWxpc3QpIHsKKyAgICAgICAgYXV0byByZXNvbHZlZEVudHJ5ID0gTWVkaWFNZXRhZGF0
YTo6Y3JlYXRlKGNvbnRleHQsIHsgZW50cnktPm1ldGFkYXRhKCkgfSk7CisgICAgICAgIGlmIChy
ZXNvbHZlZEVudHJ5Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVk
RW50cnkucmVsZWFzZUV4Y2VwdGlvbigpOworICAgICAgICAKKyAgICAgICAgcmVzb2x2ZWRQbGF5
bGlzdC51bmNoZWNrZWRBcHBlbmQocmVzb2x2ZWRFbnRyeS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CisgICAgfQorCisgICAgbV9wbGF5bGlzdCA9IFdURk1vdmUocmVzb2x2ZWRQbGF5bGlzdCk7CisK
KyAgICByZXR1cm4geyB9OworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRQbGF5
YmFja1N0YXRlKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCiB7CiAgICAgaWYgKG1f
cGxheWJhY2tTdGF0ZSA9PSBzdGF0ZSkKQEAgLTE0MSw2ICsxODQsMTIgQEAgUmVmUHRyPE1lZGlh
U2Vzc2lvbkFjdGlvbkhhbmRsZXI+IE1lZGlhU2Vzc2lvbjo6aGFuZGxlckZvckFjdGlvbihNZWRp
YVNlc3Npb25BY3QKICAgICByZXR1cm4gbV9hY3Rpb25IYW5kbGVycy5nZXQoYWN0aW9uKTsKIH0K
IAordm9pZCBNZWRpYVNlc3Npb246OmNhbGxBY3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMmIGFjdGlvbkRldGFpbHMpCit7CisgICAgaWYgKGF1dG8gaGFuZGxlciA9
IG1fYWN0aW9uSGFuZGxlcnMuZ2V0KGFjdGlvbkRldGFpbHMuYWN0aW9uKSkKKyAgICAgICAgaGFu
ZGxlci0+aGFuZGxlRXZlbnQoYWN0aW9uRGV0YWlscyk7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+
IE1lZGlhU2Vzc2lvbjo6c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3Rh
dGU+JiYgc3RhdGUpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXgg
NGY0YmU0NzcyNjQ0MDg2Yjc3ZDYxZDlmNWIwODIzYTE1ZDA1MDU2OS4uMzBiN2MzNWUxNmFhMGRl
MTEyOGZiOGQzMTljMzE3YTRkNmE5N2ZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVu
dFF1ZXVlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJK
U01lZGlhU2Vzc2lvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5oIgpAQCAtNDMsOSArNDYsMTkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
TWVkaWFNZXRhZGF0YTsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgTmF2
aWdhdG9yOwogCi1jbGFzcyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNl
c3Npb24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPiB7CitjbGFzcyBNZWRp
YVNlc3Npb24KKyAgICA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4KKyAgICAsIHB1
YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SKQorICAgICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEKKyNl
bHNlCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPgorI2VuZGlmCit7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxN
ZWRpYVNlc3Npb24+IGNyZWF0ZShOYXZpZ2F0b3ImKTsKICAgICB+TWVkaWFTZXNzaW9uKCk7CkBA
IC02MCw2ICs3MywxNiBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UG9zaXRp
b25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIE9wdGlvbmFsPGRvdWJsZT4gY3VycmVudFBvc2l0aW9uKCkgY29uc3Q7CiAKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBNZWRpYVNlc3Npb25Db29yZGluYXRv
ciogY29vcmRpbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdG9yLmdldCgpOyB9Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29yZGluYXRvcihNZWRpYVNlc3Npb25Db29yZGlu
YXRvciopOworI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAg
ICBjb25zdCBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiYgcGxheWxpc3QoKSBjb25zdCB7IHJl
dHVybiBtX3BsYXlsaXN0OyB9CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UGxheWxpc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFZlY3RvcjxSZWZQdHI8TWVkaWFNZXRhZGF0YT4+JiYpOwor
I2VuZGlmCisKICAgICB2b2lkIG1ldGFkYXRhVXBkYXRlZCgpOwogCiAgICAgdm9pZCBhY3Rpb25I
YW5kbGVyc1VwZGF0ZWQoKTsKQEAgLTY3LDEyICs5MCwyNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+IGhhbmRsZXJGb3JBY3Rp
b24oTWVkaWFTZXNzaW9uQWN0aW9uKSBjb25zdDsKICAgICBib29sIGhhc0FjdGl2ZUFjdGlvbkhh
bmRsZXJzKCkgY29uc3QgeyByZXR1cm4gIW1fYWN0aW9uSGFuZGxlcnMuaXNFbXB0eSgpOyB9CiAK
KyAgICB2b2lkIGNhbGxBY3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFp
bHMmKTsKKworICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4gKm1fbG9n
Z2VyLmdldCgpOyB9CisKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CisgICAgdXNpbmcgUmVm
Q291bnRlZDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uKE5h
dmlnYXRvciYpOwogCi0gICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAq
bV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1lZGlhU2Vzc2lvbkV2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisKKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmlu
YWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYo
KTsgfQorI2VuZGlmCisKICAgICBXZWFrUHRyPE5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAgICAg
UmVmUHRyPE1lZGlhTWV0YWRhdGE+IG1fbWV0YWRhdGE7CiAgICAgTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSBtX3BsYXliYWNrU3RhdGUgeyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25l
IH07CkBAIC04Miw2ICsxMTksMTUgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPE1lZGlhU2Vzc2lv
bkFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+LCBXVEY6OkludEhhc2g8
TWVkaWFTZXNzaW9uQWN0aW9uPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVNlc3Np
b25BY3Rpb24+PiBtX2FjdGlvbkhhbmRsZXJzOwogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1f
bG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKworI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4gbV9jb29yZGluYXRvcjsKKyAgICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVu
dFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fUExBWUxJU1QpCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4gbV9wbGF5bGlz
dDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKaW5kZXggODRmNDMwZDY4N2M3NGZlY2VlMTJhNjk2
MTA1NWViNGQ5OTE1YWRiOC4uYTYzMmYwOGQ0YjU1NDQ4MTk1ZmYxMjg5NTI0YTI3ZTI2Njg0YjI4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb24uaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI2LDkgKzI2LDEzIEBACiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VT
U0lPTiwKICAgICBFeHBvc2VkPVdpbmRvdywKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAorI2lmIGRlZmluZWQoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikgJiYgTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUgorXSBpbnRlcmZh
Y2UgTWVkaWFTZXNzaW9uIDogRXZlbnRUYXJnZXQgeworI2Vsc2UKIF0gaW50ZXJmYWNlIE1lZGlh
U2Vzc2lvbiB7CisjZW5kaWYKKwogICAgIGF0dHJpYnV0ZSBNZWRpYU1ldGFkYXRhPyBtZXRhZGF0
YTsKIAogICAgIGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBsYXliYWNrU3Rh
dGU7CkBAIC0zNiw0ICs0MCw5IEBACiAgICAgdW5kZWZpbmVkIHNldEFjdGlvbkhhbmRsZXIoTWVk
aWFTZXNzaW9uQWN0aW9uIGFjdGlvbiwgTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj8gaGFuZGxl
cik7CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRQb3NpdGlvblN0YXRl
KG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZT8gc3RhdGUgPSBudWxsKTsKKworICAgIFtDb25k
aXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLCBFbmFibGVkQnlTZXR0aW5nPU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I/IGNvb3JkaW5hdG9yOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SLCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yXSBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9uY29vcmRpbmF0b3JjaGFuZ2U7CisKKyAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5
bGlzdCwgU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNl
cHRpb25dIGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxNZWRpYU1ldGFkYXRhPiBwbGF5bGlzdDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25BY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkFjdGlvbi5oCmluZGV4IDVjYjY0NGZmMzYyZGVkNzM3MDJiMTMzZjNmMjBhZDg2NzBi
N2ZmNjEuLjliYzRmMDAxM2I0NmI1MmE4MWMwMDA3OTcyMmEzNjAxMmY3Y2MyMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkFjdGlvbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM5LDYgKzM5LDcgQEAgZW51bSBjbGFzcyBNZWRpYVNlc3Npb25BY3Rpb24gewog
ICAgIFNraXBhZCwKICAgICBTdG9wLAogICAgIFNlZWt0bywKKyAgICBTZXR0cmFjaywKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKQEAgLTU2LDcgKzU3LDggQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb24+IHsKICAgICAgICAgV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpOZXh0dHJhY2ssCiAgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkFjdGlvbjo6U2tpcGFkLAogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25B
Y3Rpb246OlN0b3AsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3Rv
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNldHRyYWNrCiAgICAgPjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFj
dGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb24uaWRsCmluZGV4IDQ2MzVlNjk3MzRlZGExOWRjMmE3Y2FlZDlhNWZjNzEwNzQ1OThj
ZDQuLmVmMjM2MDlkY2ZiZTBlM2ZmZTFjOTI3NWUxOGFkYWNjMTViZGNiY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
QWN0aW9uLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zNSw0ICszNSw3IEBACiAgICAgInNraXBhZCIsCiAgICAgInN0b3AiLAogICAg
ICJzZWVrdG8iCisjaWYgZGVmaW5lZChNRURJQV9TRVNTSU9OX1BMQVlMSVNUKSAmJiBNRURJQV9T
RVNTSU9OX1BMQVlMSVNUCisgICAgLCAic2V0dHJhY2siCisjZW5kaWYKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25E
ZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzLmgKaW5kZXggNjQxZWE3MjRhY2E2NzA1ZDczNTA3ZTI4NzFjNTE3NDE3
OTY5NmQ3Yy4uZjU5MDlkNDZmOGVhYzY2ZDBmM2M5ZGQ3ZTc1MzJlMzYwNDY4ZDZhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0
aW9uRGV0YWlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw5IEBAIHN0cnVjdCBNZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzIHsKICAgICBPcHRpb25hbDxkb3VibGU+IHNlZWtPZmZzZXQ7CiAgICAg
T3B0aW9uYWw8ZG91YmxlPiBzZWVrVGltZTsKICAgICBPcHRpb25hbDxib29sPiBmYXN0U2VlazsK
KyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBTdHJpbmcgdHJhY2tJZGVu
dGlmaWVyOworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRs
CmluZGV4IDFhMWVmN2FlNzY1YWUwMmYyMWUzMjMyYTEzNjRhOTZhMWFkZjE1NDcuLjJkOGM2MDcz
N2M2ZDY3ZmQxMjVlMTNlOTE2OThlY2ZhODAyNmMwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlv
bkRldGFpbHMuaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMyLDQgKzMyLDYgQEAKICAgICBkb3VibGU/IHNlZWtPZmZzZXQ7CiAgICAg
ZG91YmxlPyBzZWVrVGltZTsKICAgICBib29sZWFuPyBmYXN0U2VlazsKKworICAgIFtDb25kaXRp
b25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lv
blBsYXlsaXN0XSBET01TdHJpbmc/IHRyYWNrSWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFkZTU1NWVhNjI0YWJmMjkyMTNjZjAwZTI4OWE1
NmVlYzQ2Y2ZlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDE1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25D
b29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
Ik1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3Qgdm9pZCogbmV4dENv
b3JkaW5hdG9yTG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50
aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitSZWY8TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoUmVm
PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29yZGluYXRvcikK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25Db29yZGluYXRvcihXVEZN
b3ZlKHBsYXRmb3JtQ29vcmRpbmF0b3IpKSk7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQorICAgIDogbV9wbGF0Zm9ybUNvb3JkaW5hdG9y
KFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRvcikpCisgICAgLCBtX2xvZ2dlcihtYWtlUmVmKERv
Y3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4dENvb3Jk
aW5hdG9yTG9nSWRlbnRpZmllcigpKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7
CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNldExvZ2dlcihtX2xvZ2dlci5jb3B5UmVm
KCksIG1fbG9nSWRlbnRpZmllcik7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsIHRpbWUpOworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhM
T0dJREVOVElGSUVSLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNlZWtUbyh0aW1lLCBbdGltZSwg
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpXSAoKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgTWVk
aWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBN
ZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywKKyAgICAgICAgICAgIC5zZWVrVGltZSA9IHRpbWUs
CisgICAgICAgIH07CisgICAgICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWls
cyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoKQor
eworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgaWYgKCFtX3Nlc3Npb24pIHsK
KyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJNZWRpYVNlc3Npb24gaXMgTlVMTCEi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+
cGxheShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpXSAoKSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rp
b24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBsYXksCisgICAgICAgIH07CisgICAgICAgIG1fc2Vz
c2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVO
VElGSUVSLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBhdXNlKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZlB0cigqdGhpcyldICgpIG11dGFibGUgeworICAgICAgICBpZiAoIW1fc2Vzc2lv
bikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBNZWRpYVNlc3Npb25BY3Rpb25EZXRh
aWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6
UGF1c2UsCisgICAgICAgIH07CisgICAgICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIo
ZGV0YWlscyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNl
dFRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2spCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJ
RklFUiwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCB0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyldICgpIG11dGFibGUgeworICAgICAg
ICBpZiAoIW1fc2Vzc2lvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlh
U2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICAgICAgLnRyYWNrSWRlbnRpZmllciA9IHRy
YWNrLAorICAgICAgICB9OworICAgICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRl
dGFpbHMpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRN
ZWRpYVNlc3Npb24oTWVkaWFTZXNzaW9uKiBzZXNzaW9uKQoreworICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUik7CisgICAgbV9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lvbik7Cit9CisK
K1dURkxvZ0NoYW5uZWwmIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkKK3sK
KyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ODQ0N2E2YjYyOWEzMWY4MTk4MjQxNGY3ZDcyNDEy
NGMzMzcyNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKSAmJiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4K
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjsKK2NsYXNzIE1lZGlhU2Vzc2lvbjsKKworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4geworcHVibGlj
OgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
IGNyZWF0ZShSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgfk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCk7CisKKyAgICB2b2lkIHNlZWtU
byhkb3VibGUpOworICAgIHZvaWQgcGxheSgpOworICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2b2lk
IHNldFRyYWNrKGNvbnN0IFN0cmluZyYpOworCisgICAgdm9pZCBzZXRNZWRpYVNlc3Npb24oTWVk
aWFTZXNzaW9uKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYpOworCisgICAgY29u
c3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlcjsgfQorICAgIGNvbnN0
IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0K
KyAgICBzdGF0aWMgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpOworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBsb2dDbGFzc05hbWUoKSB7IHJldHVybiAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ii
OyB9CisKKyAgICBXZWFrUHRyPE1lZGlhU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIFJlZjxQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX3BsYXRmb3JtQ29vcmRpbmF0b3I7CisgICAg
UmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlm
aWVyOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVmMDlmNDliMWVmZDY2M2NmZGEzZDFiMGJjNTE0OWVlMDRiNDQxZDMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvci5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLAorICAgIEVuYWJsZWRC
eVNldHRpbmc9TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IsCisgICAgRXhwb3NlZD1XaW5kb3csCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VY
UE9SVCwKK10gaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHsKKyAgICB1bmRlZmlu
ZWQgc2Vla1RvKGRvdWJsZSB0aW1lKTsKKyAgICB1bmRlZmluZWQgcGxheSgpOworICAgIHVuZGVm
aW5lZCBwYXVzZSgpOworICAgIHVuZGVmaW5lZCBzZXRUcmFjayhET01TdHJpbmcgdHJhY2tJZGVu
dGlmaWVyKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCmluZGV4IDA0MjE5NjE3YzIzODY5MzAx
MDhhNjg2MGIyMTAxMjY5Y2U1MzY4OWUuLjdkMmJmMzA2OGJmNTY3YzFjNmY4YTNjMmU4OTU0ZmFh
YjRkMjMzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCkBAIC00MSw3ICs0MSw3IEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBOYXZpZ2F0b3JNZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7CiAgICAg
fk5hdmlnYXRvck1lZGlhU2Vzc2lvbigpOwogCi0gICAgc3RhdGljIE1lZGlhU2Vzc2lvbiYgbWVk
aWFTZXNzaW9uKE5hdmlnYXRvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBNZWRpYVNl
c3Npb24mIG1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsKICAgICBNZWRpYVNlc3Npb24mIG1lZGlh
U2Vzc2lvbigpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiMGJiYzBhMmFhZTViMjFm
ZWVjYmExOTViZTU5NzQ3N2E1Y2E0ODc5Li41OTk1NTYxYjJhMzBmMDQ3YTUxNzQ0MTVjNjNlMzNk
MTVhNDE4MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTMxLDYgKzEzMSw3IEBAIE1vZHVsZXMvbWVk
aWFjYXBhYmlsaXRpZXMvTWVkaWFDYXBhYmlsaXRpZXMuY3BwCiBNb2R1bGVzL21lZGlhY2FwYWJp
bGl0aWVzL05hdmlnYXRvck1lZGlhQ2FwYWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YS5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5j
cHAKK01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAogTW9k
dWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmNwcAogTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Js
b2JFdmVudC5jcHAKQEAgLTMyMDIsNiArMzIwMyw3IEBAIEpTTWVkaWFLZXlzLmNwcAogSlNNZWRp
YUtleXNSZXF1aXJlbWVudC5jcHAKIEpTTWVkaWFMaXN0LmNwcAogSlNNZWRpYU1ldGFkYXRhLmNw
cAorSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIEpTTWVkaWFNZXRhZGF0YUluaXQuY3Bw
CiBKU01lZGlhUG9zaXRpb25TdGF0ZS5jcHAKIEpTTWVkaWFRdWVyeUxpc3QuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTRi
ZGQxOTAxZTgyY2QwNzhhM2Y3NDM2MjA1NmYwYzk0MDc2YjFjYy4uODBjMmZlNzYwYjM3NjI5MzYx
ODA2NGEzODYxODBiYmJiMmRmNTgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTAsNiArOTAsNyBAQAogCQkwNzA3NTZENDE0
MjM5QTRGMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3NTZEMjE0MjM5QTRFMDA0MTQxNjEgLyog
SlNIVE1MVHJhY2tFbGVtZW50LmggKi87IH07CiAJCTA3MDc1NkRFMTQyMzlCNEUwMDQxNDE2MSAv
KiBKU1RleHRUcmFja0N1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi87
IH07CiAJCTA3MDc1NkUwMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkRBMTQy
MzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCAqLzsgfTsKKwkJMDcwOEYyQjYy
NURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDhGMkI0MjVEREU0
NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi87IH07CiAJ
CTA3MDlENzhGMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc4RDFBRTU1
NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MDlENzkyMUFFNTU1N0UwMDRFNDJG
OCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLzsgfTsKIAkJMDcwOUQ3OTMxQUU1NTU3RTAwNEU0
MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlENzkxMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTEyMyw2ICsxMjQsNyBAQAogCQkwNzNBMTU1NDIxNzdBNDI2MDBF
QTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRl
b1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0
Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMw
RUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1w
bGVEYXRhU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMDc0MEIxNDQyNURFMzFGODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzQwQjE0MzI1REUzMUE5MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcCAqLzsgfTsKIAkJMDc0RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJh
bmdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0
RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTAzM0E4MjUyQkQzNjgw
MEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAv
KiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2Fj
aGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07
CkBAIC01Njc0LDYgKzU2NzYsNyBAQAogCQkwNzA3NTZEODE0MjM5QjRCMDA0MTQxNjEgLyogSlNU
ZXh0VHJhY2tDdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJh
Y2tDdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2RDkxNDIzOUI0QzAw
NDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1ZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzA3NTZEQTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlTGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYg
LyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzhDMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAv
KiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTc2NSw2ICs1NzY4LDExIEBACiAJCTA3MkFFMUUzMTgzQzA3NDEw
MDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzJBRTFFNDE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2lu
UmVwbGFjZW1lbnQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBR
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQkZCMjVEQjM4QkMw
MEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkMwMzI1
REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDcyREJDMDUyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDYyNURDNkVEQTAwQTEzNTBFIC8qIEpTTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA3MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVi
dWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0REMxOUVFMkM1MjAwRTVBMDQ1IC8q
IFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSVENPZmZlckFuc3dlck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDczNzk0RTMxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ0NvbmZpZ3VyYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTRFNDE5RUUyRkYyMDBFNUEwNDUgLyog
SlNSVENDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UlRDQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTc4Niw2
ICs1Nzk0LDggQEAKIAkJMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVm
ZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1NhbXBsZUJ1
ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjQxRTQzODU5
RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0MEIxNDEy
NURFMzFBODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDc0MEIxNDMyNURFMzFBOTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNFQjFFMEM0QUU1
MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNb2NrQXVkaW9TaGFyZWRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3NDRFQ0VDMUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrQXVkaW9TaGFyZWRVbml0Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTW9ja0F1ZGlvU2hhcmVk
VW5pdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NkQzMEEyMTQ2RUEzNzAw
M0RERjg0IC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTk0OTgsNiArMTk1MDgsOCBAQAogCQkJCTUxMDU4QURBMUQ2
NzkyNTcwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmggKi8sCiAJCQkJNDE1N0VCRjkx
RTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgKi8sCiAJ
CQkJNDE1N0VCRjgxRTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bi5oICovLAorCQkJCTA3NDBCMTQzMjVERTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQkyRDZGM0U4QTFDMUVDQjFDMDA2MURC
RDQgLyogTW9ja1BhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDZGM0U4QjFDMUVDQjFDMDA2MURC
RDQgLyogTW9ja1BhZ2VPdmVybGF5LmggKi8sCiAJCQkJMkQ2RjNFOEMxQzFFQ0IxQzAwNjFEQkQ0
IC8qIE1vY2tQYWdlT3ZlcmxheS5pZGwgKi8sCkBAIC0yNjc4MCw2ICsyNjc5Miw3IEBACiAJCQkJ
NTUwNjQwQUQyNDA3NTZEQTAwQUFFMDQ1IC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJCYWNrZW5kLmgg
Ki8sCiAJCQkJMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLywK
IAkJCQlDRUVGQ0Q3QjE5REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyLmggKi8sCisJCQkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQkwNzI4NDdFMjE2RUJDNUIwMDA0M0NGQTQgLyog
UGxhdGZvcm1UZXh0VHJhY2suaCAqLywKIAkJCQkwNzRFODJCODE4QTY5RjBFMDA3RUY1NEMgLyog
UGxhdGZvcm1UaW1lUmFuZ2VzLmNwcCAqLywKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMg
LyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8sCkBAIC0yODIzNCw2ICsyODI0Nyw5IEBACiAJCQkJ
Q0REREVBMzUyNTM4Q0U3MDAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRs
ICovLAogCQkJCUNERERFQTNBMjUzOEU5QzIwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25I
YW5kbGVyLmggKi8sCiAJCQkJQ0REREVBMzkyNTM4RTlDMjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXIuaWRsICovLAorCQkJCTA3MkRCQzA1MjVEQzZCRDMwMEExMzUwRSAvKiBN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDcyREJDMDMyNURDNkJEMzAwQTEz
NTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCisJCQkJMDcyREJCRkIyNURCMzhC
QzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbCAqLywKIAkJCQlDRERERUEy
OTI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJ
CUNERERFQTI4MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlk
bCAqLywKIAkJCQlDRERERUEyNTI1MzhDREFCMDBBMTMwMEMgLyogTmF2aWdhdG9yK01lZGlhU2Vz
c2lvbi5pZGwgKi8sCkBAIC0yODI2Miw2ICsyODI3OCw4IEBACiAJCQkJQ0REREVBNDAyNTM5MTFE
QjAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oICovLAogCQkJCUNERERF
QTREMjUzOTEzQkIwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwICov
LAogCQkJCUNERERFQTRFMjUzOTEzQkMwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhh
bmRsZXIuaCAqLywKKwkJCQkwNzJEQkMwNzI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDcyREJDMDYyNURDNkVEQTAwQTEzNTBFIC8qIEpT
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQlDRERERUE0NjI1MzkxMUREMDBBMTMw
MEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmNwcCAqLywKIAkJCQlDRERERUE0MjI1
MzkxMURDMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggKi8sCiAJCQkp
OwpAQCAtMzQxMzEsNiArMzQxNDksNyBAQAogCQkJCUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAv
KiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VFRkNEN0MxOURCMzNEQzAw
Mzg3NkQ3IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDcwRTA5MTkxODc1RUVGQzAwM0ExRDNDIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwNzA4RjJCNjI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGOTQ0MTYxODY0RDA0
NjAwNUQzMUNCIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM1QzQ3NjkwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzU5ODkwNTgxNEU5QzI5OTAwRThEMThCIC8qIFBsYXRmb3JtUGFz
dGVib2FyZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjAyOSw2ICszNjA0OCw3IEBACiAJCQkJNTEw
NThBREIxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxMDU4QUREMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQxNTdFQkZBMUUzQUI2NzkwMEFDOUZFOSAvKiBNb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc0MEIxNDQyNURFMzFG
ODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDZGM0U5MDFDMUVDQjI3MDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEOTdGMDQ3MTlERDQxM0MwMDFFRTlDMyAvKiBNb2NrUGFnZU92
ZXJsYXlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFBRkVERTcxRjhCRkY2RDAwODcw
MTNGIC8qIE1vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggNTll
NGViNDlkZTg5YmQ0N2VkYzEyOTRhOTIzZWM2M2Y1NWFmNjc3OS4uM2JkODMwZWYxMjE1MWFjNTYz
Y2Y1ZjJmOWQxODUyZDhiNTNhMTJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTcxLDYgKzE3MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBtYWNybyhNZWRpYVF1ZXJ5TGlzdEV2ZW50KSBcCiAgICAgbWFjcm8oTWVk
aWFSZWNvcmRlcikgXAogICAgIG1hY3JvKE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50KSBcCisgICAg
bWFjcm8oTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpIFwKICAgICBtYWNybyhNZWRpYVNvdXJjZSkg
XAogICAgIG1hY3JvKE1lZGlhU3RyZWFtKSBcCiAgICAgbWFjcm8oTWVkaWFTdHJlYW1UcmFjaykg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggZGMzYWYwODUyZjI2ZGU1MzhlNDAwNTc4ZjU4
YjY2MzU3NGNiYjZlNi4uMDIzMjYzYWI5ZDVhOTY0NjkzZTBjYzg4OGZkMDliOWQ0NzdmNTg2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC05Nyw2ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhjb25uZWN0aW5nKSBcCiAgICAgbWFjcm8oY29udGV4dG1lbnUpIFwK
ICAgICBtYWNybyhjb250cm9sbGVyY2hhbmdlKSBcCisgICAgbWFjcm8oY29vcmRpbmF0b3JjaGFu
Z2UpIFwKICAgICBtYWNybyhjb3B5KSBcCiAgICAgbWFjcm8oY3VlY2hhbmdlKSBcCiAgICAgbWFj
cm8oY3V0KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA2
OTZlYTljZWJkMjFkMTQ5YWVhNWUwYmI2NDM3YWNlZmI4Y2EyMDM0Li43YTJjMGE4ZDhjMDc2MTlk
MGU2N2IyMjdhMzA0ZTYyYWNmODllZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4KQEAgLTIzLDYgKzIzLDcgQEAgTWVkaWFEZXZpY2VzIGNvbmRpdGlvbmFsPU1F
RElBX1NUUkVBTQogTWVkaWFLZXlTZXNzaW9uIGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQQog
TWVkaWFRdWVyeUxpc3QKIE1lZGlhUmVjb3JkZXIgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCitN
ZWRpYVNlc3Npb24gY29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUgogTWVkaWFT
b3VyY2UgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBNZWRpYVN0cmVhbSBjb25kaXRpb25hbD1N
RURJQV9TVFJFQU0KIE1lZGlhU3RyZWFtVHJhY2sgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlYjE1MWE2OTczYTk3
OWNhNDY1YzlkNDQzNzUxNTdiMTc3NzJjZjA0Li4yNDM4NDhjNDM1ZjJmZGUxMjg3ZDQyMTA1MmVi
NWM5ZGIyMGY0Y2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTQyMzIsMTAgKzQyMzIsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpjb25maWd1cmVU
ZXh0VHJhY2tHcm91cChjb25zdCBUcmFja0dyb3VwJiBncm91cCkKICAgICAgICAgaWYgKCF0cmFj
a1RvRW5hYmxlICYmIGZhbGxiYWNrVHJhY2spCiAgICAgICAgICAgICB0cmFja1RvRW5hYmxlID0g
ZmFsbGJhY2tUcmFjazsKIAotICAgICAgICBpZiAodHJhY2tUb0VuYWJsZSkKLSAgICAgICAgICAg
IG1fc3VidGl0bGVUcmFja0xhbmd1YWdlID0gdHJhY2tUb0VuYWJsZS0+bGFuZ3VhZ2UoKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgbV9zdWJ0aXRsZVRyYWNrTGFuZ3VhZ2UgPSBlbXB0eVN0
cmluZygpOworICAgICAgICBpZiAoZ3JvdXAua2luZCA9PSBUcmFja0dyb3VwOjpDYXB0aW9uc0Fu
ZFN1YnRpdGxlcyB8fCBkaXNwbGF5TW9kZSA9PSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpGb3Jj
ZWRPbmx5KSB7CisgICAgICAgICAgICBpZiAodHJhY2tUb0VuYWJsZSkKKyAgICAgICAgICAgICAg
ICBtX3N1YnRpdGxlVHJhY2tMYW5ndWFnZSA9IHRyYWNrVG9FbmFibGUtPmxhbmd1YWdlKCk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9zdWJ0aXRsZVRyYWNrTGFuZ3VhZ2Ug
PSBlbXB0eVN0cmluZygpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGN1cnJlbnRseUVu
YWJsZWRUcmFja3Muc2l6ZSgpKSB7CkBAIC00MjQ3LDcgKzQyNDksNyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmNvbmZpZ3VyZVRleHRUcmFja0dyb3VwKGNvbnN0IFRyYWNrR3JvdXAmIGdyb3Vw
KQogICAgIH0KIAogICAgIGlmICh0cmFja1RvRW5hYmxlKSB7Ci0gICAgICAgIHRyYWNrVG9FbmFi
bGUtPnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5nKTsKKyAgICAgICAgdHJhY2tUb0Vu
YWJsZS0+c2V0TW9kZShncm91cC5raW5kID09IFRyYWNrR3JvdXA6OkNoYXB0ZXIgPyBUZXh0VHJh
Y2s6Ok1vZGU6OkhpZGRlbiA6IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZyk7CiAKICAgICAgICAg
Ly8gSWYgdXNlciBwcmVmZXJlbmNlcyBpbmRpY2F0ZSB3ZSBzaG91bGQgYWx3YXlzIGRpc3BsYXkg
Y2FwdGlvbnMsIG1ha2Ugc3VyZSB3ZSByZWZsZWN0IHRoZQogICAgICAgICAvLyBwcm9wZXIgc3Rh
dHVzIHZpYSB0aGUgd2Via2l0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlIEFQSSBjYWxsOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKaW5kZXggYmIyNzAy
YmRmYTNhNjQ0MDgxYTc3MTZjMWIzNzczMjBlYTQxMWRjYS4uNmI0YWQ2ZTlhYTM2ZmM3MmQ0MTk2
NTNkYjU3Zjk4YmE0OTUzMjgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXMuY3BwCkBAIC0yOTQsOSArMjk0LDEwIEBAIGludCBDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzOjp0ZXh0VHJhY2tTZWxlY3Rpb25TY29yZShUZXh0VHJhY2sqIHRyYWNrLCBIVE1M
TWVkaWFFCiAgICAgYm9vbCBsZWdhY3lPdmVycmlkZSA9IG1lZGlhRWxlbWVudC0+d2Via2l0Q2xv
c2VkQ2FwdGlvbnNWaXNpYmxlKCk7CiAgICAgaWYgKGRpc3BsYXlNb2RlID09IEFsd2F5c09uICYm
ICghdXNlclByZWZlcnNTdWJ0aXRsZXMoKSAmJiAhdXNlclByZWZlcnNDYXB0aW9ucygpICYmICFs
ZWdhY3lPdmVycmlkZSkpCiAgICAgICAgIHJldHVybiAwOwotICAgIGlmICh0cmFjay0+a2luZCgp
ICE9IFRleHRUcmFjazo6S2luZDo6Q2FwdGlvbnMgJiYgdHJhY2stPmtpbmQoKSAhPSBUZXh0VHJh
Y2s6OktpbmQ6OlN1YnRpdGxlcyAmJiB0cmFjay0+a2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6
Rm9yY2VkKQorICAgIGF1dG8ga2luZCA9IHRyYWNrLT5raW5kKCk7CisgICAgaWYgKGtpbmQgIT0g
VGV4dFRyYWNrOjpLaW5kOjpDYXB0aW9ucyAmJiBraW5kICE9IFRleHRUcmFjazo6S2luZDo6U3Vi
dGl0bGVzICYmIGtpbmQgIT0gVGV4dFRyYWNrOjpLaW5kOjpGb3JjZWQgJiYga2luZCAhPSBUZXh0
VHJhY2s6OktpbmQ6OkNoYXB0ZXJzKQogICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoIXRyYWNr
LT5pc01haW5Qcm9ncmFtQ29udGVudCgpKQorICAgIGlmIChraW5kICE9IFRleHRUcmFjazo6S2lu
ZDo6Q2hhcHRlcnMgJiYgIXRyYWNrLT5pc01haW5Qcm9ncmFtQ29udGVudCgpKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIGJvb2wgdHJhY2tIYXNPbmx5Rm9yY2VkU3VidGl0bGVzID0gdHJhY2st
PmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhZWNkOTI0MWQ0ZTdhMGIzYzY5OTk5ODQ4ZTFlYjVkMWNj
ZGQ3MzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw3NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNs
dWRlIDx3dGYvVW5pcXVlUmVmLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDog
cHVibGljIFJlZkNvdW50ZWQ8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVm
YXVsdDsKKworICAgIHVzaW5nIFNlZWtDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT47CisgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhkb3VibGUsIFNlZWtDb21wbGV0
ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBQbGF5Q29tcGxldGVkQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworICAgIHZpcnR1YWwgdm9pZCBwbGF5KFBsYXlDb21w
bGV0ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBQYXVzZUNvbXBsZXRlZENhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoUGF1
c2VDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBTZXRUcmFja0NvbXBsZXRl
ZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsK
KworICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYgbG9nZ2VyLCBjb25zdCB2b2lkKiBs
b2dJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKGxvZ2dl
cik7CisgICAgICAgIG1fbG9nSWRlbnRpZmllciA9IGxvZ0lkZW50aWZpZXI7CisgICAgfQorCitw
cm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigp
ID0gZGVmYXVsdDsKKworICAgIGNvbnN0IExvZ2dlciogbG9nZ2VyUHRyKCkgY29uc3QgeyByZXR1
cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NO
YW1lKCkgY29uc3QgeyByZXR1cm4gIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9
CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IHsgcmV0dXJuIExvZ01lZGlh
OyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAg
Y29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NFU1NJT04pICYmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDYxZWE5YTE1YmE5Y2QxOTMzZDgzZTU1
MjdkOTk3ZTc0NjY1ZjJlMTAuLjM5MjM0MzAzODlmYjdhNmI2M2ExM2E5NDc0NjdjM2E1ZGY2ODBm
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMzMyw2ICszMzMsMTIg
QEAKICNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorI2luY2x1ZGUgIk1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgi
CisjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmgiCisjZW5kaWYKKwogdXNpbmcgSlND
OjpDYWxsRGF0YTsKIHVzaW5nIEpTQzo6Q29kZUJsb2NrOwogdXNpbmcgSlNDOjpGdW5jdGlvbkV4
ZWN1dGFibGU7CkBAIC02MDI1LDggKzYwMzEsMjMgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJu
YWxzOjpzZW5kTWVkaWFTZXNzaW9uQWN0aW9uKE1lZGlhU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QK
ICAgICB9CiAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiB9CisK
KyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKK0V4Y2VwdGlvbk9yPHZvaWQ+
IEludGVybmFsczo6cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAoIWNvbnRleHREb2N1bWVudCgpIHx8
ICFjb250ZXh0RG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAgIGF1dG8mIHNlc3Npb24gPSBOYXZpZ2F0
b3JNZWRpYVNlc3Npb246Om1lZGlhU2Vzc2lvbihjb250ZXh0RG9jdW1lbnQoKS0+ZG9tV2luZG93
KCktPm5hdmlnYXRvcigpKTsKKyAgICBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNp
bmdsZXRvbihjb250ZXh0KSk7CisgICAgc2Vzc2lvbi5zZXRDb29yZGluYXRvcihtX21lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmdldCgpKTsKKworICAgIHJldHVybiB7IH07Cit9CiAjZW5kaWYKIAor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCiBjb25zdGV4cHIgQVNDSUlMaXRlcmFs
IHN0cmluZyhQYXJ0aWFsT3JkZXJpbmcgb3JkZXJpbmcpCiB7CiAgICAgaWYgKGlzX2x0KG9yZGVy
aW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDdlYmE2NTc4OWY4YmZkMmYy
NjZiMzc0Mzk2NzM1NmY0MjA2YmQ5ZDguLmFmMGEwMzk0MjJkY2MxYzM5ODVmYWZlMGZkNDMzNGY0
MWM4YjUyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTM0LDYgKzEzNCw5
IEBAIGNsYXNzIFdlYlhSVGVzdDsKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIGNsYXNzIE1l
ZGlhU2Vzc2lvbjsKIHN0cnVjdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzOworI2lmIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I7CisjZW5kaWYKICNlbmRpZgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBE
T01Qcm9taXNlRGVmZXJyZWQ7CkBAIC0xMDcyLDYgKzEwNzUsMTEgQEAgcHVibGljOgogI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OKQogICAgIEV4Y2VwdGlvbk9yPGRvdWJsZT4gY3VycmVudE1lZGlh
U2Vzc2lvblBvc2l0aW9uKGNvbnN0IE1lZGlhU2Vzc2lvbiYpOwogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNlbmRNZWRpYVNlc3Npb25BY3Rpb24oTWVkaWFTZXNzaW9uJiwgY29uc3QgTWVkaWFTZXNz
aW9uQWN0aW9uRGV0YWlscyYpOworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworI2VuZGlmCisKICNlbmRpZgogCiAgICAg
ZW51bSBUcmVlVHlwZSA6IHVpbnQ4X3QgeyBUcmVlLCBTaGFkb3dJbmNsdWRpbmdUcmVlLCBDb21w
b3NlZFRyZWUgfTsKQEAgLTExMTQsNiArMTEyMiwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShX
RUJYUikKICAgICBSZWZQdHI8V2ViWFJUZXN0PiBtX3hyVGVzdDsKICNlbmRpZgorCisjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yPiBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworI2VuZGlmCisKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRl
eCBkM2M1MzIyYTgyODhiMjljOGU0OGY5MGY2MzI1MGVhOGYzZDc2ZTY5Li44YWI0MjlkMDJjODkx
MDY0NmJkZjFhNzM0NmJkYjYwZTU0MmE4YWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCkBAIC05NjksNiArOTY5LDcgQEAgZW51bSBUcmVlVHlwZSB7CiAKICAgICBbQ29uZGl0
aW9uYWw9TUVESUFfU0VTU0lPTiwgTWF5VGhyb3dFeGNlcHRpb25dIGRvdWJsZSBjdXJyZW50TWVk
aWFTZXNzaW9uUG9zaXRpb24oTWVkaWFTZXNzaW9uIHNlc3Npb24pOwogICAgIFtDb25kaXRpb25h
bD1NRURJQV9TRVNTSU9OLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNlbmRNZWRpYVNl
c3Npb25BY3Rpb24oTWVkaWFTZXNzaW9uIHNlc3Npb24sIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFp
bHMgYWN0aW9uRGV0YWlscyk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IsIE1heVRocm93RXhjZXB0aW9uLCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSB1bmRlZmluZWQgcmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKIAogICAg
IERPTVN0cmluZyB0cmVlT3JkZXIoTm9kZSBhLCBOb2RlIGIsIG9wdGlvbmFsIFRyZWVUeXBlIHRy
ZWUgPSAiVHJlZSIpOwogICAgIERPTVN0cmluZyB0cmVlT3JkZXJCb3VuZGFyeVBvaW50cyhOb2Rl
IGNvbnRhaW5lckEsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0QSwgTm9kZSBjb250YWluZXJCLCB1bnNp
Z25lZCBsb25nIG9mZnNldEIsIG9wdGlvbmFsIFRyZWVUeXBlIHRyZWUgPSAiVHJlZSIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYwMTQ5YjU2YWExNWFjNjE3MDExYTkxZTNiOTA3OGEyYTY1NWYz
ODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVk
ZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgor
I2luY2x1ZGUgPHd0Zi9VVUlELmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3ImIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6c2luZ2xldG9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY29vcmRpbmF0
b3IoY29udGV4dCk7CisgICAgcmV0dXJuIGNvb3JkaW5hdG9yOworfQorCitNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCit7Cit9CisKK3Zv
aWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIFNlZWtD
b21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lC
TEUoTE9HSURFTlRJRklFUiwgdGltZSk7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxl
IHsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7
CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRl
eHQtPnBvc3RUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQor
Cit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoUGF1c2VDb21wbGV0ZWRD
YWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURF
TlRJRklFUik7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2Fs
bGJhY2soKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnNldFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxi
YWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAg
bV9jb250ZXh0LT5wb3N0VGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9
KTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZjMWE0MmRiMGRi
YTFiN2M5ZTIzM2M1OWQ1MjVjYmE5YWI4MGYxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T04pICYmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDsKKworY2xhc3MgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgeworcHVibGljOgorICAgIHN0YXRpYyBNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3ImIHNpbmdsZXRvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisK
KyAgICBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
OworICAgIHZpcnR1YWwgfk1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsK
KworcHJpdmF0ZToKKworICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgU2Vla0NvbXBsZXRlZENhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgcGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJikgZmlu
YWw7CisgICAgdm9pZCBwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAg
IHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYp
IGZpbmFsOworCisgICAgUmVmPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29udGV4dDsKK307
CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKSAmJiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmODliYTkyMjQzMDExOTkwZmYzNGM2YjUzNWNk
OTk5NzU1YjgwNTE4Li4xMTNmMzczZGI3YTg2ZTQwNGEzMTNhN2Y4ZmU5MzEwNzAzNzhlMDIxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2Fy
bHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1lZGlh
U2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21l
ZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sOiBBZGRlZC4KKwog
MjAyMS0wMi0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVlbmFibGUgR1BVUHJvY2VzcyBNZWRpYSBmbGFnIGluIFdlYlJUQyB0ZXN0cwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRv
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQ1OGRiMTAyZmJjMDA0OTg4Y2RlY2NhZWI0OTRi
N2FiMjU2NDk1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNl
c3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorRVhQ
RUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IgPT0gJ3VuZGVmaW5lZCcp
IE9LCitSVU4oaW50ZXJuYWxzLnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkp
CitFVkVOVChjb29yZGluYXRvcmNoYW5nZSkKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLmNvb3JkaW5hdG9yICE9ICd1bmRlZmluZWQnKSBPSworCitSVU4obmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5jb29yZGluYXRvci5wbGF5KCkpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uICE9ICdw
bGF5JykgT0sKK0FDVElPTjogcGxheQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAncGxheScp
IE9LCisKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBhdXNlKCkpCitF
WFBFQ1RFRCAobGF0ZXN0QWN0aW9uICE9ICdwYXVzZScpIE9LCitBQ1RJT046IHBhdXNlCitFWFBF
Q1RFRCAobGF0ZXN0QWN0aW9uID09ICdwYXVzZScpIE9LCisKK1JVTihuYXZpZ2F0b3IubWVkaWFT
ZXNzaW9uLmNvb3JkaW5hdG9yLnNlZWtUbygxMCkpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uICE9
ICdzZWVrdG8nKSBPSworQUNUSU9OOiBzZWVrdG8KK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0g
J3NlZWt0bycpIE9LCisKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FmZDcz
YWVlYWNhNWQ2YzVmOGUzZGQ0YjE3NGYzMzgzNzk1NzMwNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCkBAIC0w
LDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+
bW9jay1tZWRpYXNlc3Npb24tY29vcmRpbmF0b3I8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIu
Li92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorCisgICAgbGV0IGxhdGVz
dEFjdGlvbjsKKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZl
bnQgPT4geworCisgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICAgICAg
ZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1aXJlcyBJbnRlcm5hbHMnKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGNoYW5nZVByb21pc2UgPSBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uYWRk
RXZlbnRMaXN0ZW5lcignY29vcmRpbmF0b3JjaGFuZ2UnLCAoZXZlbnQpID0+IHsKKyAgICAgICAg
ICAgICAgICBjb25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZlbnQudHlwZX0pYCk7CisgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAg
IHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcicsIHVuZGVm
aW5lZCk7CisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IoKScpOworCisgICAgICAgIGF3YWl0IGNoYW5nZVByb21pc2U7CisgICAgICAg
IAorICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0
b3InLCB1bmRlZmluZWQsICchPScpOworCisgICAgICAgIGxldCBhY3Rpb25zID0gWydwbGF5Jywg
J3BhdXNlJywgJ3NlZWt0byddOworICAgICAgICBhY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IHsK
KyAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uc2V0QWN0aW9uSGFuZGxlcihhY3Rp
b24sIGFjdGlvbkRldGFpbHMgPT4geworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgQUNU
SU9OOiAke2FjdGlvbkRldGFpbHMuYWN0aW9ufWApOworICAgICAgICAgICAgICAgIGxhdGVzdEFj
dGlvbiA9IGFjdGlvbkRldGFpbHMuYWN0aW9uOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0p
OworICAgICAgICAKKyAgICAgICAgbGV0IHRlc3RBY3Rpb24gPSBhc3luYyAoYWN0aW9uKSA9PiB7
CisgICAgICAgICAgICBsZXQgY29tbWFuZDsKKyAgICAgICAgICAgIGlmIChhY3Rpb24gPT0gJ3Nl
ZWt0bycpCisgICAgICAgICAgICAgICAgY29tbWFuZCA9ICdzZWVrVG8oMTApJworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbW1hbmQgPSBgJHthY3Rpb259KClgOworCisgICAg
ICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICAgICAgcnVuKGBuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLmNvb3JkaW5hdG9yLiR7Y29tbWFuZH1gKTsKKyAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgnbGF0ZXN0QWN0aW9uJywgYWN0aW9uLCAnIT0nKTsKKyAgICAgICAgICAgIGF3YWl0IHRl
c3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2xhdGVzdEFjdGlvbicsIGFjdGlvbiwgJz09Jyk7CisgICAg
ICAgIH07CisKKyAgICAgICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpCisgICAgICAgICAg
ICBhd2FpdCB0ZXN0QWN0aW9uKGFjdGlvbik7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsK
KyAgICAgICAgZW5kVGVzdCgpOworICAgIH0sIHtvbmNlOiB0cnVlfSk7CisKKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBmZWZmZmZhY2NiOWYzMmQxZWZlOTc0NWEyNDQ4NTc0ZGFmMDA0OGU1Li4wNzg3MWZlYzI5NDRl
YTY5MjZjYzIwMDBkZmQyZTQ4ZjJkMGJkMWE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMjI3Miw2ICsyMjcyLDkgQEAgd2Via2l0Lm9yZy9iLzIyMDMz
MiBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21pbWVzbmlmZi9t
aW1lLXQKIFsgQ2F0YWxpbmEgTW9qYXZlIF0gZmFzdC90ZXh0L3N5c3RlbS1mb250LXdpZHRoLTgu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogWyBDYXRhbGluYSBNb2phdmUgXSBmYXN0L3RleHQv
c3lzdGVtLWZvbnQtd2lkdGgtOS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKKyMgbWVkaWEg
c2Vzc2lvbiBtb2NrIGNvb3JkaW5hdG9yIGlzIG5vdCBlbmFibGVkIHlldAorbWVkaWEvbWVkaWEt
c2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwgWyBTa2lwIF0KKwogd2Via2l0Lm9yZy9iLzIy
MTE1MiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1hdXRvbWF0aWMt
cHVsbC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIyMTQ5MSBh
bmltYXRpb25zL2tleWZyYW1lLXBzZXVkby1zaGFkb3cuaHRtbCBbIFBhc3MgRmFpbHVyZSBdClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421058</attachid>
            <date>2021-02-19 16:50:43 -0800</date>
            <delta_ts>2021-03-01 11:03:10 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-222158-20210219165042.patch</filename>
            <type>text/plain</type>
            <size>70729</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwYzU1NmNjMjZjMjU5MjcyZWY2ZjYw
Y2I3NzVhZDBiNmU4NDA2OWYuLjk3Njg5NGQ4M2ExZDZiYjI2YWY0ZGJhYmUyMjA4YmNkNjE2OTMy
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAyLTE1ICBQZXIgQXJuZSAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQ2xvc2UgWFBDIGNvbm5lY3Rpb25z
IGJlZm9yZSBlbnRlcmluZyBzYW5kYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhlNTdmZGYxOTE2OTIwMjVj
YThjMjIzYWI3MDEzMWQwMWJlZDQ5NS4uN2FjMTMwYmQ2MjUyZTQ0MGNhYjhjZDM4NWYxMDU4ZDVk
OGYxNjY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAyLTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIEV4
cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE1OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzQ1MDg4NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YUluaXQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGFJ
bml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6
OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6c2V0Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpzZXRQbGF5bGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmNh
bGxBY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRpbmF0b3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6bmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDogTmV3LgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nSWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2xh
c3NOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5pZGw6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0
b3JNZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAg
ICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TG9nZ2VyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlclB0ciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Ojpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsIGNvbnN0KToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAg
ICAgKiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzaW5nbGV0b24pOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaDogTmV3LgorCiAyMDIxLTAyLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBsaWJ3ZWJydGMgaW5zdGFsbHMgc29tZSBmaWxlcyBpbnRvIGlu
Y29ycmVjdCBsb2NhdGlvbnMgaW4gL3Vzci9sb2NhbC9pbmNsdWRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCmluZGV4IGIyYmY5MDJlYmQ5ODA1MTI0ZDJkYjgwMGE3NzYyYTEzMjVlMzc5YjMu
LmJiYWFkMDAxNmExODIxMTM3NTgzMWQ2MTYyYWY5Mjg4MmQ0MTgxNWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCkBAIC01NjIsNiArNTYyLDE5IEBAIE1lZGlhUmVjb3JkZXJFbmFibGVk
OgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYVNlc3Npb25Db29y
ZGluYXRvckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBl
cmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yIEFQSSIKKyAgaHVtYW5SZWFkYWJsZURl
c2NyaXB0aW9uOiAiRW5hYmxlIGV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3Ig
QVBJIgorICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICBk
ZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZh
dWx0OiBmYWxzZQorCiBNZWRpYVNlc3Npb25FbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFu
UmVhZGFibGVOYW1lOiAiTWVkaWEgU2Vzc2lvbiBBUEkiCkBAIC01NzUsNiArNTg4LDE5IEBAIE1l
ZGlhU2Vzc2lvbkVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAK
K01lZGlhU2Vzc2lvblBsYXlsaXN0RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRh
YmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gcGxheWxpc3QgQVBJIgorICBodW1h
blJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBw
bGF5bGlzdCBBUEkiCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1Qp
CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxz
ZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAg
IGRlZmF1bHQ6IGZhbHNlCisKIE1vZGVsRWxlbWVudEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJIVE1MIDxtb2RlbD4gZWxlbWVudCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaAppbmRleCA3OGQ1ODczYTMwODkxMDIwZTVhNzcyYmM5NTBhMmViNjQx
M2ZiNWUwLi4xM2ViZTkzYThkNjNkODM3YjI4ZWYxMjg1NTgzNTkxM2IwZjc4NDkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC0zMjgsNiArMzI4LDE0IEBACiAjZGVmaW5l
IEVOQUJMRV9NRURJQV9TRVNTSU9OIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX01F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01BWF9BTExPV0VEID49IDEyMDAwMAorI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNT
SU9OX1BMQVlMSVNUKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhf
QUxMT1dFRCA+PSAxMjAwMDAKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1Qg
MQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKSAmJiAhUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVU
VikgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQogI2RlZmluZSBFTkFCTEVfTUVE
SUFfU09VUkNFIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3YWJlOWY1ZmEzYjUx
ZDVlOTE1ZGE3YjM1Mzg3ZDhjODUzYTNkYWI3Li4yZWQ0MTg2NjcwYjhkMGNhMmQwNzNhNjBlMmUw
ZTI4NWMyZTMyZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzM2LDYgKzMzNiw3IEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uQWN0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
QWN0aW9uSGFuZGxlci5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvcitNZWRpYVNl
c3Npb24uaWRsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CmluZGV4IDY4Y2ZkNGEwNzI2MjUzNDhhY2U1N2I5M2ZkYTc3M2VjYjJjNjgxN2YuLjRh
ODA0YTdmNWJjY2YwNzQyZGYzMGUwNDg5OTFmMDFmYzY4MjhkODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDYgKzE3Myw3IEBA
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRl
dGFpbHMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb25IYW5kbGVyLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMTcy
MzY0ZDliNTUxMTA5MjRkZDkzYzdkYWNjNjg2MjlmZDc5YmU3Yy4uOTk5MGJhZDE3NDFiNThhZjAw
ODI0OWQ3NzY5MzY3ZjNhMGEwZDQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOTksNiArMTI5OSw4IEBAICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlv
bkhhbmRsZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25QbGF5YmFj
a1N0YXRlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBmYmE5ZWU1YTAxMzQ5ZmI2MWFiY2JhYTJkNWIyNDQzZTAyMGNlOWI5Li44
NGNkMTU3NWY1ZTJjNmM3NWE1YjM5MTExNWJmOWE4MjM0NjFjNTU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTIwNyw2ICsyMDcsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rp
b25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFT
dHJlYW1UcmFjay5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCBmNmZmMzFmYjA4ZGQ0OTgxYTNiY2U5MDM5
MmJkYmQyY2RhNWZjZGI2Li45ZGEyMDE1MjBmNDhiZjUxMWJhOWUwYzc5ZGE3MGM0NmM0MDU1MGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1l
dGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmNwcApAQCAtNDIsNiArNDIsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFNZXRh
ZGF0YT4+IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwog
ICAgICAgICBtZXRhZGF0YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRhZGF0
YS0+c2V0QXJ0aXN0KGluaXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1bShp
bml0LT5hbGJ1bSk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgICAg
IG1ldGFkYXRhLT5zZXRUcmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsKKyNl
bmRpZgogICAgICAgICBhdXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFydHdv
cmsoY29udGV4dCwgV1RGTW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3NzaWJs
ZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBwb3NzaWJsZUV4Y2VwdGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTA1LDYgKzEwOCwxNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBNZWRpYU1ldGFkYXRhOjpzZXRBcnR3b3JrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFZlYwogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9QTEFZTElTVCkKK3ZvaWQgTWVkaWFNZXRhZGF0YTo6c2V0VHJhY2tJZGVu
dGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9tZXRhZGF0YS50
cmFja0lkZW50aWZpZXIgPT0gaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9t
ZXRhZGF0YS50cmFja0lkZW50aWZpZXIgPSBpZGVudGlmaWVyOworICAgIG1ldGFkYXRhVXBkYXRl
ZCgpOworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFNZXRhZGF0YTo6bWV0YWRhdGFVcGRhdGVkKCkK
IHsKICAgICBpZiAobV9zZXNzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCmluZGV4IDMwZTA5M2Q2ZDI3ZGRiNzQxNTI4MWVl
OGI1ZDEwMDRlZmNmYWE1ZGEuLjg1NDg2OWM2MzZjMzc1MGVkNzk5YWU5MzY2OWJmNTJhYWM1MDVj
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmgKQEAgLTU5LDYgKzU5LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8
TWVkaWFJbWFnZT4mIGFydHdvcmsoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmFydHdvcms7
IH0KICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBcnR3b3JrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBWZWN0b3I8TWVkaWFJbWFnZT4mJik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9Q
TEFZTElTVCkKKyAgICBjb25zdCBTdHJpbmcmIHRyYWNrSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fbWV0YWRhdGEudHJhY2tJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRUcmFja0lkZW50
aWZpZXIoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIGNvbnN0IE1lZGlhU2Vzc2lvbk1l
dGFkYXRhJiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGE7IH0KIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YS5pZGwKaW5kZXggYjI4ZTk5ZDNiNzllNWVlNjFjNjFjZWQ3OTgxYzNjYjIwN2UzODEy
MS4uZTYyNGViYzQ4ZWUxZmUwYjBjYTZkYjEyNDcxZTIyMTE5NWExN2M3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwK
QEAgLTMzLDQgKzMzLDYgQEAKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFydGlzdDsKICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGFsYnVtOwogICAgIFtTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1l
ZGlhSW1hZ2U+IGFydHdvcms7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZ
TElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERP
TVN0cmluZyB0cmFja0lkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmgKaW5kZXggNjY5ZGVmZmEy
ZDY5NDA4NWYwOGYxMGRmMWI5MTZlZjQ0ZTg4NWUwZC4uZDg2ZjkxMjkzMzQxZDJkOTA1NDM1MTNk
YmE4NTNlNzQ1NjE0Y2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oCkBAIC0zNSw2ICszNSw5IEBAIHN0cnVj
dCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAgICAgU3RyaW5nIHRpdGxlOwogICAgIFN0cmluZyBhcnRp
c3Q7CiAgICAgU3RyaW5nIGFsYnVtOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNU
KQorICAgIFN0cmluZyB0cmFja0lkZW50aWZpZXI7CisjZW5kaWYKICAgICBWZWN0b3I8TWVkaWFJ
bWFnZT4gYXJ0d29yazsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKQEAgLTQzLDI4ICs0Niw0MCBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0
YUluaXQgewogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRpYU1ldGFk
YXRhSW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8
PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0gPDwgYXJ0d29yazsKKyAgICBlbmNvZGVyIDw8IHRp
dGxlIDw8IGFydGlzdCA8PCBhbGJ1bQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNU
KQorICAgIDw8IHRyYWNrSWRlbnRpZmllcgorI2VuZGlmCisgICAgPDwgYXJ0d29yazsKIH0KIAog
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRhdGFJbml0
PiBNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgU3Ry
aW5nIHRpdGxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGl0bGUpKQotICAgICAgICByZXR1
cm4geyB9OworI2RlZmluZSBERUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+
IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsgXAogCi0gICAgU3RyaW5nIGFydGlzdDsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFydGlzdCkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgREVDT0RF
KHRpdGxlLCBTdHJpbmcpOworICAgIERFQ09ERShhcnRpc3QsIFN0cmluZyk7CisgICAgREVDT0RF
KGFsYnVtLCBTdHJpbmcpOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAg
IERFQ09ERSh0cmFja0lkZW50aWZpZXIsIFN0cmluZyk7CisjZW5kaWYKKyAgICBERUNPREUoYXJ0
d29yaywgVmVjdG9yPE1lZGlhSW1hZ2U+KTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFsYnVtKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIFZlY3Rv
cjxNZWRpYUltYWdlPiBhcnR3b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0d29yaykp
Ci0gICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHsgeworICAgICAgICAqdGl0bGUsCisg
ICAgICAgICphcnRpc3QsCisgICAgICAgICphbGJ1bSwKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9QTEFZTElTVCkKKyAgICAgICAgKnRyYWNrSWRlbnRpZmllciwKKyNlbmRpZgorICAgICAgICAq
YXJ0d29yaworICAgIH0gfTsKIAotICAgIHJldHVybiBNZWRpYU1ldGFkYXRhSW5pdCB7IFdURk1v
dmUodGl0bGUpLCBXVEZNb3ZlKGFydGlzdCksIFdURk1vdmUoYWxidW0pLCBXVEZNb3ZlKGFydHdv
cmspIH07CisjdW5kZWYgREVDT0RFCiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbAppbmRleCA4YjBm
NTVjZjE0YTU4MzhjYjU0ODk1NjVkMDI3MmRhZmFkOWUxMjNkLi4wZGM4ZWYwMDdiMTA5NTFiMGQ1
OTE5ZWIwMzEyNDM0ZjNmNjQ0NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCkBAIC0zMCw1ICszMCw2
IEBACiAgICAgRE9NU3RyaW5nIHRpdGxlID0gIiI7CiAgICAgRE9NU3RyaW5nIGFydGlzdCA9ICIi
OwogICAgIERPTVN0cmluZyBhbGJ1bSA9ICIiOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNT
SU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0XSBET01T
dHJpbmcgdHJhY2tJZGVudGlmaWVyID0gIiI7CiAgICAgc2VxdWVuY2U8TWVkaWFJbWFnZT4gYXJ0
d29yayA9IFtdOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IDkwMWRkYjBhN2I0ZmU5ZTkzNjNlNWZmMzFmMmVh
YjQ3YTlkMzY0OGQuLmY3ZjY0NmRiMTJjZWI4ZWU0ZTQzZDMzMGU0NDczOTQwMjMzYjkxMDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk1lZGlhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
IgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5oIgogCkBAIC03NSw3ICs3NiwxMSBAQCBSZWY8TWVkaWFTZXNzaW9uPiBNZWRpYVNl
c3Npb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKIH0KIAogTWVkaWFTZXNzaW9uOjpN
ZWRpYVNlc3Npb24oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCi0gICAgOiBtX25hdmlnYXRvcihtYWtl
V2Vha1B0cihuYXZpZ2F0b3IpKQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIobmF2
aWdhdG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAsIG1fbmF2aWdhdG9yKG1ha2VX
ZWFrUHRyKG5hdmlnYXRvcikpCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNy
ZWF0ZSgqdGhpcykpCisjZW5kaWYKIHsKICAgICBtX2xvZ2dlciA9IG1ha2VSZWZQdHIoRG9jdW1l
bnQ6OnNoYXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZpZXIgPSBuZXh0TG9nSWRlbnRp
ZmllcigpOwpAQCAtODgsNyArOTMsNiBAQCBNZWRpYVNlc3Npb246On5NZWRpYVNlc3Npb24oKSA9
IGRlZmF1bHQ7CiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0
YWRhdGE+JiYgbWV0YWRhdGEpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKLQog
ICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBtX21ldGFkYXRhLT5yZXNldE1lZGlhU2Vzc2lv
bigpOwogICAgIG1fbWV0YWRhdGEgPSBXVEZNb3ZlKG1ldGFkYXRhKTsKQEAgLTk3LDYgKzEwMSw0
NSBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+
JiYgbWV0YWRhdGEpCiAgICAgbWV0YWRhdGFVcGRhdGVkKCk7CiB9CiAKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKK3ZvaWQgTWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRv
cihNZWRpYVNlc3Npb25Db29yZGluYXRvciogY29vcmRpbmF0b3IpCit7CisgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSKTsKKworICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAgICAgICBtX2Nv
b3JkaW5hdG9yLT5zZXRNZWRpYVNlc3Npb24obnVsbHB0cik7CisKKyAgICBtX2Nvb3JkaW5hdG9y
ID0gY29vcmRpbmF0b3I7CisKKyAgICBpZiAobV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29y
ZGluYXRvci0+c2V0TWVkaWFTZXNzaW9uKHRoaXMpOworCisgICAgbV9hc3luY0V2ZW50UXVldWUt
PmVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb29yZGluYXRvcmNoYW5n
ZUV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsK
K30KKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCitFeGNlcHRp
b25Pcjx2b2lkPiBNZWRpYVNlc3Npb246OnNldFBsYXlsaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIFZlY3RvcjxSZWZQdHI8TWVkaWFNZXRhZGF0YT4+JiYgcGxheWxpc3QpCit7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKworICAgIFZlY3RvcjxSZWY8TWVkaWFN
ZXRhZGF0YT4+IHJlc29sdmVkUGxheWxpc3Q7CisgICAgcmVzb2x2ZWRQbGF5bGlzdC5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHBsYXlsaXN0LnNpemUoKSk7CisKKyAgICBmb3IgKGF1dG8mIGVudHJ5
IDogcGxheWxpc3QpIHsKKyAgICAgICAgYXV0byByZXNvbHZlZEVudHJ5ID0gTWVkaWFNZXRhZGF0
YTo6Y3JlYXRlKGNvbnRleHQsIHsgZW50cnktPm1ldGFkYXRhKCkgfSk7CisgICAgICAgIGlmIChy
ZXNvbHZlZEVudHJ5Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVk
RW50cnkucmVsZWFzZUV4Y2VwdGlvbigpOworICAgICAgICAKKyAgICAgICAgcmVzb2x2ZWRQbGF5
bGlzdC51bmNoZWNrZWRBcHBlbmQocmVzb2x2ZWRFbnRyeS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CisgICAgfQorCisgICAgbV9wbGF5bGlzdCA9IFdURk1vdmUocmVzb2x2ZWRQbGF5bGlzdCk7CisK
KyAgICByZXR1cm4geyB9OworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRQbGF5
YmFja1N0YXRlKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCiB7CiAgICAgaWYgKG1f
cGxheWJhY2tTdGF0ZSA9PSBzdGF0ZSkKQEAgLTE0MSw2ICsxODQsMTIgQEAgUmVmUHRyPE1lZGlh
U2Vzc2lvbkFjdGlvbkhhbmRsZXI+IE1lZGlhU2Vzc2lvbjo6aGFuZGxlckZvckFjdGlvbihNZWRp
YVNlc3Npb25BY3QKICAgICByZXR1cm4gbV9hY3Rpb25IYW5kbGVycy5nZXQoYWN0aW9uKTsKIH0K
IAordm9pZCBNZWRpYVNlc3Npb246OmNhbGxBY3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMmIGFjdGlvbkRldGFpbHMpCit7CisgICAgaWYgKGF1dG8gaGFuZGxlciA9
IG1fYWN0aW9uSGFuZGxlcnMuZ2V0KGFjdGlvbkRldGFpbHMuYWN0aW9uKSkKKyAgICAgICAgaGFu
ZGxlci0+aGFuZGxlRXZlbnQoYWN0aW9uRGV0YWlscyk7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+
IE1lZGlhU2Vzc2lvbjo6c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3Rh
dGU+JiYgc3RhdGUpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXgg
NGY0YmU0NzcyNjQ0MDg2Yjc3ZDYxZDlmNWIwODIzYTE1ZDA1MDU2OS4uMzBiN2MzNWUxNmFhMGRl
MTEyOGZiOGQzMTljMzE3YTRkNmE5N2ZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVu
dFF1ZXVlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJK
U01lZGlhU2Vzc2lvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5oIgpAQCAtNDMsOSArNDYsMTkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
TWVkaWFNZXRhZGF0YTsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgTmF2
aWdhdG9yOwogCi1jbGFzcyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNl
c3Npb24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPiB7CitjbGFzcyBNZWRp
YVNlc3Npb24KKyAgICA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4KKyAgICAsIHB1
YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SKQorICAgICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEKKyNl
bHNlCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPgorI2VuZGlmCit7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxN
ZWRpYVNlc3Npb24+IGNyZWF0ZShOYXZpZ2F0b3ImKTsKICAgICB+TWVkaWFTZXNzaW9uKCk7CkBA
IC02MCw2ICs3MywxNiBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UG9zaXRp
b25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIE9wdGlvbmFsPGRvdWJsZT4gY3VycmVudFBvc2l0aW9uKCkgY29uc3Q7CiAKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBNZWRpYVNlc3Npb25Db29yZGluYXRv
ciogY29vcmRpbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdG9yLmdldCgpOyB9Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29yZGluYXRvcihNZWRpYVNlc3Npb25Db29yZGlu
YXRvciopOworI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAg
ICBjb25zdCBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiYgcGxheWxpc3QoKSBjb25zdCB7IHJl
dHVybiBtX3BsYXlsaXN0OyB9CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UGxheWxpc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFZlY3RvcjxSZWZQdHI8TWVkaWFNZXRhZGF0YT4+JiYpOwor
I2VuZGlmCisKICAgICB2b2lkIG1ldGFkYXRhVXBkYXRlZCgpOwogCiAgICAgdm9pZCBhY3Rpb25I
YW5kbGVyc1VwZGF0ZWQoKTsKQEAgLTY3LDEyICs5MCwyNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+IGhhbmRsZXJGb3JBY3Rp
b24oTWVkaWFTZXNzaW9uQWN0aW9uKSBjb25zdDsKICAgICBib29sIGhhc0FjdGl2ZUFjdGlvbkhh
bmRsZXJzKCkgY29uc3QgeyByZXR1cm4gIW1fYWN0aW9uSGFuZGxlcnMuaXNFbXB0eSgpOyB9CiAK
KyAgICB2b2lkIGNhbGxBY3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFp
bHMmKTsKKworICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4gKm1fbG9n
Z2VyLmdldCgpOyB9CisKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CisgICAgdXNpbmcgUmVm
Q291bnRlZDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uKE5h
dmlnYXRvciYpOwogCi0gICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAq
bV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1lZGlhU2Vzc2lvbkV2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisKKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmlu
YWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYo
KTsgfQorI2VuZGlmCisKICAgICBXZWFrUHRyPE5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAgICAg
UmVmUHRyPE1lZGlhTWV0YWRhdGE+IG1fbWV0YWRhdGE7CiAgICAgTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSBtX3BsYXliYWNrU3RhdGUgeyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25l
IH07CkBAIC04Miw2ICsxMTksMTUgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPE1lZGlhU2Vzc2lv
bkFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+LCBXVEY6OkludEhhc2g8
TWVkaWFTZXNzaW9uQWN0aW9uPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVNlc3Np
b25BY3Rpb24+PiBtX2FjdGlvbkhhbmRsZXJzOwogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1f
bG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKworI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4gbV9jb29yZGluYXRvcjsKKyAgICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVu
dFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fUExBWUxJU1QpCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4gbV9wbGF5bGlz
dDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKaW5kZXggODRmNDMwZDY4N2M3NGZlY2VlMTJhNjk2
MTA1NWViNGQ5OTE1YWRiOC4uYTYzMmYwOGQ0YjU1NDQ4MTk1ZmYxMjg5NTI0YTI3ZTI2Njg0YjI4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb24uaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI2LDkgKzI2LDEzIEBACiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VT
U0lPTiwKICAgICBFeHBvc2VkPVdpbmRvdywKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAorI2lmIGRlZmluZWQoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikgJiYgTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUgorXSBpbnRlcmZh
Y2UgTWVkaWFTZXNzaW9uIDogRXZlbnRUYXJnZXQgeworI2Vsc2UKIF0gaW50ZXJmYWNlIE1lZGlh
U2Vzc2lvbiB7CisjZW5kaWYKKwogICAgIGF0dHJpYnV0ZSBNZWRpYU1ldGFkYXRhPyBtZXRhZGF0
YTsKIAogICAgIGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBsYXliYWNrU3Rh
dGU7CkBAIC0zNiw0ICs0MCw5IEBACiAgICAgdW5kZWZpbmVkIHNldEFjdGlvbkhhbmRsZXIoTWVk
aWFTZXNzaW9uQWN0aW9uIGFjdGlvbiwgTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj8gaGFuZGxl
cik7CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRQb3NpdGlvblN0YXRl
KG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZT8gc3RhdGUgPSBudWxsKTsKKworICAgIFtDb25k
aXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLCBFbmFibGVkQnlTZXR0aW5nPU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I/IGNvb3JkaW5hdG9yOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SLCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yXSBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9uY29vcmRpbmF0b3JjaGFuZ2U7CisKKyAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5
bGlzdCwgU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNl
cHRpb25dIGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxNZWRpYU1ldGFkYXRhPiBwbGF5bGlzdDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25BY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkFjdGlvbi5oCmluZGV4IDVjYjY0NGZmMzYyZGVkNzM3MDJiMTMzZjNmMjBhZDg2NzBi
N2ZmNjEuLjliYzRmMDAxM2I0NmI1MmE4MWMwMDA3OTcyMmEzNjAxMmY3Y2MyMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkFjdGlvbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM5LDYgKzM5LDcgQEAgZW51bSBjbGFzcyBNZWRpYVNlc3Npb25BY3Rpb24gewog
ICAgIFNraXBhZCwKICAgICBTdG9wLAogICAgIFNlZWt0bywKKyAgICBTZXR0cmFjaywKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKQEAgLTU2LDcgKzU3LDggQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb24+IHsKICAgICAgICAgV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpOZXh0dHJhY2ssCiAgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkFjdGlvbjo6U2tpcGFkLAogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25B
Y3Rpb246OlN0b3AsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3Rv
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNldHRyYWNrCiAgICAgPjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFj
dGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb24uaWRsCmluZGV4IDQ2MzVlNjk3MzRlZGExOWRjMmE3Y2FlZDlhNWZjNzEwNzQ1OThj
ZDQuLmVmMjM2MDlkY2ZiZTBlM2ZmZTFjOTI3NWUxOGFkYWNjMTViZGNiY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
QWN0aW9uLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zNSw0ICszNSw3IEBACiAgICAgInNraXBhZCIsCiAgICAgInN0b3AiLAogICAg
ICJzZWVrdG8iCisjaWYgZGVmaW5lZChNRURJQV9TRVNTSU9OX1BMQVlMSVNUKSAmJiBNRURJQV9T
RVNTSU9OX1BMQVlMSVNUCisgICAgLCAic2V0dHJhY2siCisjZW5kaWYKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25E
ZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzLmgKaW5kZXggNjQxZWE3MjRhY2E2NzA1ZDczNTA3ZTI4NzFjNTE3NDE3
OTY5NmQ3Yy4uZjU5MDlkNDZmOGVhYzY2ZDBmM2M5ZGQ3ZTc1MzJlMzYwNDY4ZDZhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0
aW9uRGV0YWlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw5IEBAIHN0cnVjdCBNZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzIHsKICAgICBPcHRpb25hbDxkb3VibGU+IHNlZWtPZmZzZXQ7CiAgICAg
T3B0aW9uYWw8ZG91YmxlPiBzZWVrVGltZTsKICAgICBPcHRpb25hbDxib29sPiBmYXN0U2VlazsK
KyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBTdHJpbmcgdHJhY2tJZGVu
dGlmaWVyOworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRs
CmluZGV4IDFhMWVmN2FlNzY1YWUwMmYyMWUzMjMyYTEzNjRhOTZhMWFkZjE1NDcuLjJkOGM2MDcz
N2M2ZDY3ZmQxMjVlMTNlOTE2OThlY2ZhODAyNmMwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlv
bkRldGFpbHMuaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMyLDQgKzMyLDYgQEAKICAgICBkb3VibGU/IHNlZWtPZmZzZXQ7CiAgICAg
ZG91YmxlPyBzZWVrVGltZTsKICAgICBib29sZWFuPyBmYXN0U2VlazsKKworICAgIFtDb25kaXRp
b25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lv
blBsYXlsaXN0XSBET01TdHJpbmc/IHRyYWNrSWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFkZTU1NWVhNjI0YWJmMjkyMTNjZjAwZTI4OWE1
NmVlYzQ2Y2ZlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDE1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25D
b29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
Ik1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3Qgdm9pZCogbmV4dENv
b3JkaW5hdG9yTG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50
aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitSZWY8TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoUmVm
PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29yZGluYXRvcikK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25Db29yZGluYXRvcihXVEZN
b3ZlKHBsYXRmb3JtQ29vcmRpbmF0b3IpKSk7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQorICAgIDogbV9wbGF0Zm9ybUNvb3JkaW5hdG9y
KFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRvcikpCisgICAgLCBtX2xvZ2dlcihtYWtlUmVmKERv
Y3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4dENvb3Jk
aW5hdG9yTG9nSWRlbnRpZmllcigpKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7
CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNldExvZ2dlcihtX2xvZ2dlci5jb3B5UmVm
KCksIG1fbG9nSWRlbnRpZmllcik7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsIHRpbWUpOworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhM
T0dJREVOVElGSUVSLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNlZWtUbyh0aW1lLCBbdGltZSwg
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpXSAoKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgTWVk
aWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBN
ZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywKKyAgICAgICAgICAgIC5zZWVrVGltZSA9IHRpbWUs
CisgICAgICAgIH07CisgICAgICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWls
cyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoKQor
eworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgaWYgKCFtX3Nlc3Npb24pIHsK
KyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJNZWRpYVNlc3Npb24gaXMgTlVMTCEi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+
cGxheShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpXSAoKSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rp
b24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBsYXksCisgICAgICAgIH07CisgICAgICAgIG1fc2Vz
c2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhMT0dJREVO
VElGSUVSLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBhdXNlKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZlB0cigqdGhpcyldICgpIG11dGFibGUgeworICAgICAgICBpZiAoIW1fc2Vzc2lv
bikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBNZWRpYVNlc3Npb25BY3Rpb25EZXRh
aWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6
UGF1c2UsCisgICAgICAgIH07CisgICAgICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIo
ZGV0YWlscyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNl
dFRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2spCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJ
RklFUiwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCB0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyldICgpIG11dGFibGUgeworICAgICAg
ICBpZiAoIW1fc2Vzc2lvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlh
U2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICAgICAgLnRyYWNrSWRlbnRpZmllciA9IHRy
YWNrLAorICAgICAgICB9OworICAgICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRl
dGFpbHMpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRN
ZWRpYVNlc3Npb24oTWVkaWFTZXNzaW9uKiBzZXNzaW9uKQoreworICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUik7CisgICAgbV9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lvbik7Cit9CisK
K1dURkxvZ0NoYW5uZWwmIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkKK3sK
KyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OKSAmJiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ODQ0N2E2YjYyOWEzMWY4MTk4MjQxNGY3ZDcyNDEy
NGMzMzcyNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKSAmJiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4K
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjsKK2NsYXNzIE1lZGlhU2Vzc2lvbjsKKworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4geworcHVibGlj
OgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
IGNyZWF0ZShSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgfk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCk7CisKKyAgICB2b2lkIHNlZWtU
byhkb3VibGUpOworICAgIHZvaWQgcGxheSgpOworICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2b2lk
IHNldFRyYWNrKGNvbnN0IFN0cmluZyYpOworCisgICAgdm9pZCBzZXRNZWRpYVNlc3Npb24oTWVk
aWFTZXNzaW9uKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYpOworCisgICAgY29u
c3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlcjsgfQorICAgIGNvbnN0
IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0K
KyAgICBzdGF0aWMgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpOworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBsb2dDbGFzc05hbWUoKSB7IHJldHVybiAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ii
OyB9CisKKyAgICBXZWFrUHRyPE1lZGlhU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIFJlZjxQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX3BsYXRmb3JtQ29vcmRpbmF0b3I7CisgICAg
UmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlm
aWVyOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVmMDlmNDliMWVmZDY2M2NmZGEzZDFiMGJjNTE0OWVlMDRiNDQxZDMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvci5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLAorICAgIEVuYWJsZWRC
eVNldHRpbmc9TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IsCisgICAgRXhwb3NlZD1XaW5kb3csCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VY
UE9SVCwKK10gaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHsKKyAgICB1bmRlZmlu
ZWQgc2Vla1RvKGRvdWJsZSB0aW1lKTsKKyAgICB1bmRlZmluZWQgcGxheSgpOworICAgIHVuZGVm
aW5lZCBwYXVzZSgpOworICAgIHVuZGVmaW5lZCBzZXRUcmFjayhET01TdHJpbmcgdHJhY2tJZGVu
dGlmaWVyKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCmluZGV4IDA0MjE5NjE3YzIzODY5MzAx
MDhhNjg2MGIyMTAxMjY5Y2U1MzY4OWUuLjdkMmJmMzA2OGJmNTY3YzFjNmY4YTNjMmU4OTU0ZmFh
YjRkMjMzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCkBAIC00MSw3ICs0MSw3IEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBOYXZpZ2F0b3JNZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7CiAgICAg
fk5hdmlnYXRvck1lZGlhU2Vzc2lvbigpOwogCi0gICAgc3RhdGljIE1lZGlhU2Vzc2lvbiYgbWVk
aWFTZXNzaW9uKE5hdmlnYXRvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBNZWRpYVNl
c3Npb24mIG1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsKICAgICBNZWRpYVNlc3Npb24mIG1lZGlh
U2Vzc2lvbigpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiMGJiYzBhMmFhZTViMjFm
ZWVjYmExOTViZTU5NzQ3N2E1Y2E0ODc5Li41OTk1NTYxYjJhMzBmMDQ3YTUxNzQ0MTVjNjNlMzNk
MTVhNDE4MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTMxLDYgKzEzMSw3IEBAIE1vZHVsZXMvbWVk
aWFjYXBhYmlsaXRpZXMvTWVkaWFDYXBhYmlsaXRpZXMuY3BwCiBNb2R1bGVzL21lZGlhY2FwYWJp
bGl0aWVzL05hdmlnYXRvck1lZGlhQ2FwYWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YS5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5j
cHAKK01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAogTW9k
dWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmNwcAogTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Js
b2JFdmVudC5jcHAKQEAgLTMyMDIsNiArMzIwMyw3IEBAIEpTTWVkaWFLZXlzLmNwcAogSlNNZWRp
YUtleXNSZXF1aXJlbWVudC5jcHAKIEpTTWVkaWFMaXN0LmNwcAogSlNNZWRpYU1ldGFkYXRhLmNw
cAorSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIEpTTWVkaWFNZXRhZGF0YUluaXQuY3Bw
CiBKU01lZGlhUG9zaXRpb25TdGF0ZS5jcHAKIEpTTWVkaWFRdWVyeUxpc3QuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTRi
ZGQxOTAxZTgyY2QwNzhhM2Y3NDM2MjA1NmYwYzk0MDc2YjFjYy4uODBjMmZlNzYwYjM3NjI5MzYx
ODA2NGEzODYxODBiYmJiMmRmNTgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTAsNiArOTAsNyBAQAogCQkwNzA3NTZENDE0
MjM5QTRGMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3NTZEMjE0MjM5QTRFMDA0MTQxNjEgLyog
SlNIVE1MVHJhY2tFbGVtZW50LmggKi87IH07CiAJCTA3MDc1NkRFMTQyMzlCNEUwMDQxNDE2MSAv
KiBKU1RleHRUcmFja0N1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi87
IH07CiAJCTA3MDc1NkUwMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkRBMTQy
MzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCAqLzsgfTsKKwkJMDcwOEYyQjYy
NURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDhGMkI0MjVEREU0
NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi87IH07CiAJ
CTA3MDlENzhGMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc4RDFBRTU1
NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MDlENzkyMUFFNTU1N0UwMDRFNDJG
OCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLzsgfTsKIAkJMDcwOUQ3OTMxQUU1NTU3RTAwNEU0
MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlENzkxMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTEyMyw2ICsxMjQsNyBAQAogCQkwNzNBMTU1NDIxNzdBNDI2MDBF
QTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRl
b1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0
Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMw
RUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1w
bGVEYXRhU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMDc0MEIxNDQyNURFMzFGODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzQwQjE0MzI1REUzMUE5MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcCAqLzsgfTsKIAkJMDc0RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJh
bmdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0
RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTAzM0E4MjUyQkQzNjgw
MEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAv
KiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2Fj
aGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07
CkBAIC01Njc0LDYgKzU2NzYsNyBAQAogCQkwNzA3NTZEODE0MjM5QjRCMDA0MTQxNjEgLyogSlNU
ZXh0VHJhY2tDdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJh
Y2tDdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2RDkxNDIzOUI0QzAw
NDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1ZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzA3NTZEQTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlTGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYg
LyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzhDMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAv
KiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTc2NSw2ICs1NzY4LDExIEBACiAJCTA3MkFFMUUzMTgzQzA3NDEw
MDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzJBRTFFNDE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2lu
UmVwbGFjZW1lbnQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBR
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQkZCMjVEQjM4QkMw
MEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkMwMzI1
REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDcyREJDMDUyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDYyNURDNkVEQTAwQTEzNTBFIC8qIEpTTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA3MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVi
dWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0REMxOUVFMkM1MjAwRTVBMDQ1IC8q
IFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSVENPZmZlckFuc3dlck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDczNzk0RTMxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ0NvbmZpZ3VyYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTRFNDE5RUUyRkYyMDBFNUEwNDUgLyog
SlNSVENDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UlRDQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTc4Niw2
ICs1Nzk0LDggQEAKIAkJMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVm
ZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1NhbXBsZUJ1
ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjQxRTQzODU5
RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0MEIxNDEy
NURFMzFBODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDc0MEIxNDMyNURFMzFBOTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNFQjFFMEM0QUU1
MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNb2NrQXVkaW9TaGFyZWRVbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3NDRFQ0VDMUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrQXVkaW9TaGFyZWRVbml0Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTW9ja0F1ZGlvU2hhcmVk
VW5pdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NkQzMEEyMTQ2RUEzNzAw
M0RERjg0IC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTk0OTgsNiArMTk1MDgsOCBAQAogCQkJCTUxMDU4QURBMUQ2
NzkyNTcwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmggKi8sCiAJCQkJNDE1N0VCRjkx
RTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgKi8sCiAJ
CQkJNDE1N0VCRjgxRTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bi5oICovLAorCQkJCTA3NDBCMTQzMjVERTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQkyRDZGM0U4QTFDMUVDQjFDMDA2MURC
RDQgLyogTW9ja1BhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDZGM0U4QjFDMUVDQjFDMDA2MURC
RDQgLyogTW9ja1BhZ2VPdmVybGF5LmggKi8sCiAJCQkJMkQ2RjNFOEMxQzFFQ0IxQzAwNjFEQkQ0
IC8qIE1vY2tQYWdlT3ZlcmxheS5pZGwgKi8sCkBAIC0yNjc4MCw2ICsyNjc5Miw3IEBACiAJCQkJ
NTUwNjQwQUQyNDA3NTZEQTAwQUFFMDQ1IC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJCYWNrZW5kLmgg
Ki8sCiAJCQkJMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLywK
IAkJCQlDRUVGQ0Q3QjE5REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyLmggKi8sCisJCQkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQkwNzI4NDdFMjE2RUJDNUIwMDA0M0NGQTQgLyog
UGxhdGZvcm1UZXh0VHJhY2suaCAqLywKIAkJCQkwNzRFODJCODE4QTY5RjBFMDA3RUY1NEMgLyog
UGxhdGZvcm1UaW1lUmFuZ2VzLmNwcCAqLywKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMg
LyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8sCkBAIC0yODIzNCw2ICsyODI0Nyw5IEBACiAJCQkJ
Q0REREVBMzUyNTM4Q0U3MDAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRs
ICovLAogCQkJCUNERERFQTNBMjUzOEU5QzIwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25I
YW5kbGVyLmggKi8sCiAJCQkJQ0REREVBMzkyNTM4RTlDMjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXIuaWRsICovLAorCQkJCTA3MkRCQzA1MjVEQzZCRDMwMEExMzUwRSAvKiBN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDcyREJDMDMyNURDNkJEMzAwQTEz
NTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCisJCQkJMDcyREJCRkIyNURCMzhC
QzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbCAqLywKIAkJCQlDRERERUEy
OTI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJ
CUNERERFQTI4MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlk
bCAqLywKIAkJCQlDRERERUEyNTI1MzhDREFCMDBBMTMwMEMgLyogTmF2aWdhdG9yK01lZGlhU2Vz
c2lvbi5pZGwgKi8sCkBAIC0yODI2Miw2ICsyODI3OCw4IEBACiAJCQkJQ0REREVBNDAyNTM5MTFE
QjAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oICovLAogCQkJCUNERERF
QTREMjUzOTEzQkIwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwICov
LAogCQkJCUNERERFQTRFMjUzOTEzQkMwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhh
bmRsZXIuaCAqLywKKwkJCQkwNzJEQkMwNzI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDcyREJDMDYyNURDNkVEQTAwQTEzNTBFIC8qIEpT
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQlDRERERUE0NjI1MzkxMUREMDBBMTMw
MEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmNwcCAqLywKIAkJCQlDRERERUE0MjI1
MzkxMURDMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggKi8sCiAJCQkp
OwpAQCAtMzQxMzEsNiArMzQxNDksNyBAQAogCQkJCUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAv
KiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VFRkNEN0MxOURCMzNEQzAw
Mzg3NkQ3IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDcwRTA5MTkxODc1RUVGQzAwM0ExRDNDIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwNzA4RjJCNjI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGOTQ0MTYxODY0RDA0
NjAwNUQzMUNCIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM1QzQ3NjkwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzU5ODkwNTgxNEU5QzI5OTAwRThEMThCIC8qIFBsYXRmb3JtUGFz
dGVib2FyZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjAyOSw2ICszNjA0OCw3IEBACiAJCQkJNTEw
NThBREIxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxMDU4QUREMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQxNTdFQkZBMUUzQUI2NzkwMEFDOUZFOSAvKiBNb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc0MEIxNDQyNURFMzFG
ODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDZGM0U5MDFDMUVDQjI3MDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEOTdGMDQ3MTlERDQxM0MwMDFFRTlDMyAvKiBNb2NrUGFnZU92
ZXJsYXlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFBRkVERTcxRjhCRkY2RDAwODcw
MTNGIC8qIE1vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggNTll
NGViNDlkZTg5YmQ0N2VkYzEyOTRhOTIzZWM2M2Y1NWFmNjc3OS4uM2JkODMwZWYxMjE1MWFjNTYz
Y2Y1ZjJmOWQxODUyZDhiNTNhMTJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTcxLDYgKzE3MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBtYWNybyhNZWRpYVF1ZXJ5TGlzdEV2ZW50KSBcCiAgICAgbWFjcm8oTWVk
aWFSZWNvcmRlcikgXAogICAgIG1hY3JvKE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50KSBcCisgICAg
bWFjcm8oTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpIFwKICAgICBtYWNybyhNZWRpYVNvdXJjZSkg
XAogICAgIG1hY3JvKE1lZGlhU3RyZWFtKSBcCiAgICAgbWFjcm8oTWVkaWFTdHJlYW1UcmFjaykg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggZGMzYWYwODUyZjI2ZGU1MzhlNDAwNTc4ZjU4
YjY2MzU3NGNiYjZlNi4uMDIzMjYzYWI5ZDVhOTY0NjkzZTBjYzg4OGZkMDliOWQ0NzdmNTg2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC05Nyw2ICs5Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhjb25uZWN0aW5nKSBcCiAgICAgbWFjcm8oY29udGV4dG1lbnUpIFwK
ICAgICBtYWNybyhjb250cm9sbGVyY2hhbmdlKSBcCisgICAgbWFjcm8oY29vcmRpbmF0b3JjaGFu
Z2UpIFwKICAgICBtYWNybyhjb3B5KSBcCiAgICAgbWFjcm8oY3VlY2hhbmdlKSBcCiAgICAgbWFj
cm8oY3V0KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA2
OTZlYTljZWJkMjFkMTQ5YWVhNWUwYmI2NDM3YWNlZmI4Y2EyMDM0Li43YTJjMGE4ZDhjMDc2MTlk
MGU2N2IyMjdhMzA0ZTYyYWNmODllZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4KQEAgLTIzLDYgKzIzLDcgQEAgTWVkaWFEZXZpY2VzIGNvbmRpdGlvbmFsPU1F
RElBX1NUUkVBTQogTWVkaWFLZXlTZXNzaW9uIGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQQog
TWVkaWFRdWVyeUxpc3QKIE1lZGlhUmVjb3JkZXIgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCitN
ZWRpYVNlc3Npb24gY29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUgogTWVkaWFT
b3VyY2UgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBNZWRpYVN0cmVhbSBjb25kaXRpb25hbD1N
RURJQV9TVFJFQU0KIE1lZGlhU3RyZWFtVHJhY2sgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGFlY2Q5MjQxZDRl
N2EwYjNjNjk5OTk4NDhlMWViNWQxY2NkZDczNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgorI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCisgICAgdXNpbmcgU2Vla0NvbXBsZXRlZENh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vl
a1RvKGRvdWJsZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHVzaW5nIFBs
YXlDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CisgICAgdmly
dHVhbCB2b2lkIHBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHVzaW5n
IFBhdXNlQ29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworICAg
IHZpcnR1YWwgdm9pZCBwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAg
IHVzaW5nIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+OworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNrQ29t
cGxldGVkQ2FsbGJhY2smJikgPSAwOworCisgICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgTG9nZ2Vy
JiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCisgICAgeworICAgICAgICBtX2xv
Z2dlciA9IG1ha2VSZWZQdHIobG9nZ2VyKTsKKyAgICAgICAgbV9sb2dJZGVudGlmaWVyID0gbG9n
SWRlbnRpZmllcjsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCisgICAgY29uc3QgTG9nZ2VyKiBs
b2dnZXJQdHIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAgIGNvbnN0IHZv
aWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAg
ICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiAiUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvciI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkg
Y29uc3QgeyByZXR1cm4gTG9nTWVkaWE7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8Y29uc3Qg
TG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
NjFlYTlhMTViYTljZDE5MzNkODNlNTUyN2Q5OTdlNzQ2NjVmMmUxMC4uMzkyMzQzMDM4OWZiN2E2
YjYzYTEzYTk0NzQ2N2MzYTVkZjY4MGY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcApAQCAtMzMzLDYgKzMzMywxMiBAQAogI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1NhbmRi
b3hTUEkuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYVNlc3Npb24u
aCIKKyNlbmRpZgorCiB1c2luZyBKU0M6OkNhbGxEYXRhOwogdXNpbmcgSlNDOjpDb2RlQmxvY2s7
CiB1c2luZyBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTsKQEAgLTYwMjUsOCArNjAzMSwyMyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnNlbmRNZWRpYVNlc3Npb25BY3Rpb24oTWVkaWFT
ZXNzaW9uJiBzZXNzaW9uLCBjb25zdAogICAgIH0KICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfTsKIH0KKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQorRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpyZWdpc3Rlck1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQoreworICAgIGlm
ICghY29udGV4dERvY3VtZW50KCkgfHwgIWNvbnRleHREb2N1bWVudCgpLT5kb21XaW5kb3coKSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAg
YXV0byYgc2Vzc2lvbiA9IE5hdmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uKGNvbnRl
eHREb2N1bWVudCgpLT5kb21XaW5kb3coKS0+bmF2aWdhdG9yKCkpOworICAgIG1fbWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IgPSBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6c2luZ2xldG9uKGNvbnRleHQpKTsKKyAgICBzZXNzaW9uLnNl
dENvb3JkaW5hdG9yKG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuZ2V0KCkpOworCisgICAgcmV0
dXJuIHsgfTsKK30KICNlbmRpZgogCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pCisK
IGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc3RyaW5nKFBhcnRpYWxPcmRlcmluZyBvcmRlcmluZykK
IHsKICAgICBpZiAoaXNfbHQob3JkZXJpbmcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
aW5kZXggN2ViYTY1Nzg5ZjhiZmQyZjI2NmIzNzQzOTY3MzU2ZjQyMDZiZDlkOC4uYWYwYTAzOTQy
MmRjYzFjMzk4NWZhZmUwZmQ0MzM0ZjQxYzhiNTIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCkBAIC0xMzQsNiArMTM0LDkgQEAgY2xhc3MgV2ViWFJUZXN0OwogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQogY2xhc3MgTWVkaWFTZXNzaW9uOwogc3RydWN0IE1lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHM7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCitjbGFz
cyBNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKKyNlbmRpZgogI2VuZGlmCiAKIHRlbXBsYXRlPHR5
cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKQEAgLTEwNzIsNiArMTA3
NSwxMSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgRXhjZXB0aW9u
T3I8ZG91YmxlPiBjdXJyZW50TWVkaWFTZXNzaW9uUG9zaXRpb24oY29uc3QgTWVkaWFTZXNzaW9u
Jik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2VuZE1lZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNl
c3Npb24mLCBjb25zdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzJik7CisKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiByZWdpc3Rl
ck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7Cisj
ZW5kaWYKKwogI2VuZGlmCiAKICAgICBlbnVtIFRyZWVUeXBlIDogdWludDhfdCB7IFRyZWUsIFNo
YWRvd0luY2x1ZGluZ1RyZWUsIENvbXBvc2VkVHJlZSB9OwpAQCAtMTExNCw2ICsxMTIyLDExIEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQlhSKQogICAgIFJlZlB0cjxXZWJYUlRlc3Q+IG1feHJU
ZXN0OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAg
ICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I7CisjZW5kaWYKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGQzYzUzMjJhODI4OGIyOWM4ZTQ4ZjkwZjYzMjUwZWE4
ZjNkNzZlNjkuLjhhYjQyOWQwMmM4OTEwNjQ2YmRmMWE3MzQ2YmRiNjBlNTQyYThhZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTk2OSw2ICs5NjksNyBAQCBlbnVtIFRy
ZWVUeXBlIHsKIAogICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OLCBNYXlUaHJvd0V4Y2Vw
dGlvbl0gZG91YmxlIGN1cnJlbnRNZWRpYVNlc3Npb25Qb3NpdGlvbihNZWRpYVNlc3Npb24gc2Vz
c2lvbik7CiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT04sIE1heVRocm93RXhjZXB0aW9u
XSB1bmRlZmluZWQgc2VuZE1lZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNlc3Npb24gc2Vzc2lvbiwg
TWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBhY3Rpb25EZXRhaWxzKTsKKyAgICBbQ29uZGl0aW9u
YWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiwgTWF5VGhyb3dFeGNlcHRpb24sIENhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHVuZGVmaW5lZCByZWdpc3Rlck1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcigpOwogCiAgICAgRE9NU3RyaW5nIHRyZWVPcmRlcihOb2RlIGEsIE5vZGUg
Yiwgb3B0aW9uYWwgVHJlZVR5cGUgdHJlZSA9ICJUcmVlIik7CiAgICAgRE9NU3RyaW5nIHRyZWVP
cmRlckJvdW5kYXJ5UG9pbnRzKE5vZGUgY29udGFpbmVyQSwgdW5zaWduZWQgbG9uZyBvZmZzZXRB
LCBOb2RlIGNvbnRhaW5lckIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0Qiwgb3B0aW9uYWwgVHJlZVR5
cGUgdHJlZSA9ICJUcmVlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAxNDliNTZhYTE1YWM2
MTcwMTFhOTFlM2I5MDc4YTJhNjU1ZjM4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDg3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pICYmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1VVSUQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciYgTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzaW5nbGV0b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yPiBjb29yZGluYXRvcihjb250ZXh0KTsKKyAgICByZXR1cm4gY29vcmRpbmF0
b3I7Cit9CisKK01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKK3sKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNl
ZWtUbyhkb3VibGUgdGltZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7Cisg
ICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKKyAgICBtX2Nv
bnRleHQtPnBvc3RUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOwor
fQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShQbGF5Q29tcGxldGVk
Q2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lE
RU5USUZJRVIpOworICAgIG1fY29udGV4dC0+cG9zdFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNh
bGxiYWNrKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlT
X0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNr
KFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
IG11dGFibGUgeworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCit2b2lkIE1vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0Nv
bXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJM
RShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAg
ICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZmMxYTQyZGIwZGJhMWI3YzllMjMzYzU5ZDUyNWNiYTlhYjgwZjE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikgJiYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCisKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciB7CitwdWJsaWM6
CisgICAgc3RhdGljIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciYgc2luZ2xldG9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKTsKKworICAgIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgdmlydHVhbCB+TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCitwcml2YXRlOgorCisgICAgdm9pZCBzZWVrVG8oZG91
YmxlLCBTZWVrQ29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBwbGF5KFBsYXlD
b21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVk
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRy
YWNrQ29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7CisKKyAgICBSZWY8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dD4gbV9jb250ZXh0OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NF
U1NJT04pICYmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4OWJh
OTIyNDMwMTE5OTBmZjM0YzZiNTM1Y2Q5OTk3NTViODA1MTguLjExM2YzNzNkYjdhODZlNDA0YTMx
M2E3ZjhmZTkzMTA3MDM3OGUwMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMi0xOCAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2Fd
IEFkZCBFeHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3Jk
aW5hdG9yLmh0bWw6IEFkZGVkLgorCiAyMDIxLTAyLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWVuYWJsZSBHUFVQcm9jZXNzIE1lZGlhIGZsYWcgaW4g
V2ViUlRDIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9u
L21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
c2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDU4ZGIx
MDJmYmMwMDQ5ODhjZGVjY2FlYjQ5NGI3YWIyNTY0OTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIyIEBACitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29y
ZGluYXRvciA9PSAndW5kZWZpbmVkJykgT0sKK1JVTihpbnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IoKSkKK0VWRU5UKGNvb3JkaW5hdG9yY2hhbmdlKQorRVhQRUNU
RUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IgIT0gJ3VuZGVmaW5lZCcpIE9L
CisKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKSkKK0VYUEVD
VEVEIChsYXRlc3RBY3Rpb24gIT0gJ3BsYXknKSBPSworQUNUSU9OOiBwbGF5CitFWFBFQ1RFRCAo
bGF0ZXN0QWN0aW9uID09ICdwbGF5JykgT0sKKworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
Y29vcmRpbmF0b3IucGF1c2UoKSkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gIT0gJ3BhdXNlJykg
T0sKK0FDVElPTjogcGF1c2UKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3BhdXNlJykgT0sK
KworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEwKSkKK0VY
UEVDVEVEIChsYXRlc3RBY3Rpb24gIT0gJ3NlZWt0bycpIE9LCitBQ1RJT046IHNlZWt0bworRVhQ
RUNURUQgKGxhdGVzdEFjdGlvbiA9PSAnc2Vla3RvJykgT0sKKworRU5EIE9GIFRFU1QKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9y
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3Iu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YWZkNzNhZWVhY2E1ZDZjNWY4ZTNkZDRiMTc0ZjMzODM3OTU3MzA2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2Nr
LWNvb3JkaW5hdG9yLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDx0aXRsZT5tb2NrLW1lZGlhc2Vzc2lvbi1jb29yZGluYXRvcjwvdGl0
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQ+CisKKyAgICBsZXQgbGF0ZXN0QWN0aW9uOworCisgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWlsVGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIEludGVy
bmFscycpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qg
Y2hhbmdlUHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5hZGRFdmVudExpc3RlbmVyKCdjb29yZGluYXRvcmNoYW5nZScs
IChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRVZFTlQoJHtldmVu
dC50eXBlfSlgKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLmNvb3JkaW5hdG9yJywgdW5kZWZpbmVkKTsKKworICAgICAgICBydW4oJ2ludGVybmFscy5y
ZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcigpJyk7CisKKyAgICAgICAgYXdhaXQg
Y2hhbmdlUHJvbWlzZTsKKyAgICAgICAgCisgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcicsIHVuZGVmaW5lZCwgJyE9Jyk7CisKKyAgICAgICAg
bGV0IGFjdGlvbnMgPSBbJ3BsYXknLCAncGF1c2UnLCAnc2Vla3RvJ107CisgICAgICAgIGFjdGlv
bnMuZm9yRWFjaChhY3Rpb24gPT4geworICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5zZXRBY3Rpb25IYW5kbGVyKGFjdGlvbiwgYWN0aW9uRGV0YWlscyA9PiB7CisgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKGBBQ1RJT046ICR7YWN0aW9uRGV0YWlscy5hY3Rpb259YCk7Cisg
ICAgICAgICAgICAgICAgbGF0ZXN0QWN0aW9uID0gYWN0aW9uRGV0YWlscy5hY3Rpb247CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBsZXQgdGVzdEFjdGlv
biA9IGFzeW5jIChhY3Rpb24pID0+IHsKKyAgICAgICAgICAgIGxldCBjb21tYW5kOworICAgICAg
ICAgICAgaWYgKGFjdGlvbiA9PSAnc2Vla3RvJykKKyAgICAgICAgICAgICAgICBjb21tYW5kID0g
J3NlZWtUbygxMCknCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY29tbWFuZCA9
IGAke2FjdGlvbn0oKWA7CisKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAg
ICAgICBydW4oYG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IuJHtjb21tYW5kfWAp
OworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RBY3Rpb24nLCBhY3Rpb24sICchPScp
OworICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0QWN0aW9u
JywgYWN0aW9uLCAnPT0nKTsKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGxldCBhY3Rpb24g
b2YgYWN0aW9ucykKKyAgICAgICAgICAgIGF3YWl0IHRlc3RBY3Rpb24oYWN0aW9uKTsKKworICAg
ICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSwge29uY2U6
IHRydWV9KTsKKworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGZlZmZmZmFjY2I5ZjMyZDFlZmU5NzQ1YTI0NDg1NzRk
YWYwMDQ4ZTUuLjA3ODcxZmVjMjk0NGVhNjkyNmNjMjAwMGRmZDJlNDhmMmQwYmQxYTkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjcyLDYgKzIyNzIs
OSBAQCB3ZWJraXQub3JnL2IvMjIwMzMyIFsgQmlnU3VyKyBdIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWltZXNuaWZmL21pbWUtdAogWyBDYXRhbGluYSBNb2phdmUgXSBmYXN0L3Rl
eHQvc3lzdGVtLWZvbnQtd2lkdGgtOC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBbIENhdGFs
aW5hIE1vamF2ZSBdIGZhc3QvdGV4dC9zeXN0ZW0tZm9udC13aWR0aC05Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIAorIyBtZWRpYSBzZXNzaW9uIG1vY2sgY29vcmRpbmF0b3IgaXMgbm90IGVu
YWJsZWQgeWV0CittZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbCBbIFNr
aXAgXQorCiB3ZWJraXQub3JnL2IvMjIxMTUyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRp
b3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQog
CiB3ZWJraXQub3JnL2IvMjIxNDkxIGFuaW1hdGlvbnMva2V5ZnJhbWUtcHNldWRvLXNoYWRvdy5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421845</attachid>
            <date>2021-03-01 11:03:13 -0800</date>
            <delta_ts>2021-03-24 14:46:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222158-20210301110312.patch</filename>
            <type>text/plain</type>
            <size>100852</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU0ZjI3NDBiYjBmMTI5YTE3OTZkNmE4
YjljNmNmODVjY2NhNWY1NDAuLjZiODZmNjkxMDg0ZmQyN2Y1YzZmZjFiNTI3OGJjZWE4ZWFiMjkx
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAyLTI2ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEJ1bXAg
bGlic291cDMgdmVyc2lvbiB0byAyLjk5LjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYWZiYjhhYzAzMDAwYWJl
OTNmZDU1NzFiYzdhNDA0NDRiOTBkYTMwLi4yN2MzYWUxYjQzMjI2YzFhNDk1YmNmOTAyNjVlYWZh
NmY1MWEwZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjEtMDItMTggIEVyaWMg
Q2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQg
RXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83NDUwODg2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBtZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbAor
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFNZXRhZGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhTWV0YWRhdGE6OnNldFRyYWNrSWRlbnRpZmllcik6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFNZXRhZGF0YTo6dHJhY2tJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFNZXRhZGF0
YUluaXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYU1ldGFkYXRhSW5p
dDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRh
SW5pdC5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb246OnNldFBsYXlsaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6
Y2FsbEFjdGlvbkhhbmRsZXIpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpjb29yZGluYXRvciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnBsYXlsaXN0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGw6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOiBOZXcuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nZ2VyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dD
bGFzc05hbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmlkbDogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmln
YXRvck1lZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9X
ZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAg
ICAgKiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRMb2dnZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nZ2VyUHRy
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OmxvZ0lkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2xhc3NOYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NoYW5uZWwgY29uc3QpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorICAg
ICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNpbmdsZXRvbik6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnNlZWtUbyk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnNldFRyYWNrKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvci5oOiBOZXcuCisKIDIwMjEtMDItMjYgIEFuZHJlcyBHb256YWxleiAgPGFuZHJl
c2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBBWFRleHRNYXJrZXJSYW5nZUZvck5TUmFu
Z2UgYXR0cmlidXRlIHNvIHRoYXQgTWFjIGNsaWVudHMgY2FuIGFjY2VzcyB0aGlzIGZ1bmN0aW9u
YWxpdHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDdjNzRkOGIzNzZhMWM4MDQ1
Yzk5Yjc2NDdiNjdmOTc4MjViNmIyNTcuLjQ3M2I3NWE3NzE0MGExMjlhZmUzYmY3ZTkxOWMyYjQ0
MmE0OTUwODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC01OTgsNiArNTk4LDE5
IEBAIE1lZGlhUmVjb3JkZXJFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBm
YWxzZQogCitNZWRpYVNlc3Npb25Db29yZGluYXRvckVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9y
IEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGV4cGVyaW1lbnRhbCBN
ZWRpYVNlc3Npb24gY29vcmRpbmF0b3IgQVBJIgorICBjb25kaXRpb246IEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5Ogor
ICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQor
ICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBNZWRpYVNlc3Npb25FbmFibGVk
OgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiTWVkaWEgU2Vzc2lvbiBBUEki
CkBAIC02MTEsNiArNjI0LDE5IEBAIE1lZGlhU2Vzc2lvbkVuYWJsZWQ6CiAgICAgV2ViQ29yZToK
ICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK01lZGlhU2Vzc2lvblBsYXlsaXN0RW5hYmxlZDoKKyAg
dHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Np
b24gcGxheWxpc3QgQVBJIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhw
ZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBwbGF5bGlzdCBBUEkiCisgIGNvbmRpdGlvbjogRU5BQkxF
KE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdh
Y3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZh
bHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIE1vZGVsRWxlbWVudEVu
YWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJIVE1MIDxtb2RlbD4g
ZWxlbWVudCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBlMGJlNjg2YTQ5
ODFmMTExNzIwMWRmMjRjZDBlOGZjZjk3YjhjNzRlLi4wYjg2N2Y4NDExYmQ2OGM0NDU1YTFkMjVj
NGNmMWM3YTU4MDg1YmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC0z
MjgsNiArMzI4LDE0IEBACiAjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9OIDEKICNlbmRpZgog
CisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpICYmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEyMDAwMAorI2Rl
ZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNUKSAmJiBQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMjAwMDAKKyNkZWZpbmUgRU5BQkxF
X01FRElBX1NFU1NJT05fUExBWUxJU1QgMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVf
TUVESUFfU09VUkNFKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRD
SE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxB
VE9SKQogI2RlZmluZSBFTkFCTEVfTUVESUFfU09VUkNFIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBjYzhlMTViMGVkNDc5ZDdiOWQ4ZGVlOGMxZTlmYjU5OWU4NGRjNjcyLi4zYjNj
Yjg3Y2FkNzEzODY4YTg3MTY0ZmJhYWJiMmQxMGE5YzRhMzcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMzM2LDcgKzMzNiw5IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAg
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbAogICAgIE1vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCiAgICAgTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5pZGwKKyAgICBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKICAgICBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAorICAgIE1vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Np
b24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKIAogICAgIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
QXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDIyMGZjMGRmZDE5NDRlYjkyZmJmOTUwNmZkYmFk
NGY5ODE1YmE5MTkuLjMyYmFjYzIwYjk4NDFiZDk0Nzc1MGIxZmY2MWNjNTBhY2VhNzVlNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAt
MTc4LDcgKzE3OCw5IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkFjdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvcitNZWRpYVNl
c3Npb24uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc291cmNlL0F1ZGlvVHJhY2sr
TWVkaWFTb3VyY2UuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc291cmNlL0RPTVVS
TCtNZWRpYVNvdXJjZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKaW5kZXggNDA4OTZkYWViNWYxMGYxMTMyN2I3M2FiMTljMmU5ZGI0ZDFl
Zjg4Ni4uYmQ0YWNiMWIxNDAyNWU5OWM1ZjY1NjlkZjAwOWRhNDBmZTJkZWRiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEzMDks
OCArMTMwOSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25B
Y3Rpb25IYW5kbGVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lv
blJlYWR5U3RhdGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNvdXJjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbS5jcHAKQEAgLTEz
NDUsNiArMTM0OSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTW9ja0NETUZhY3RvcnkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU01vY2tDRE1GYWN0b3J5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja0NvbnRlbnRG
aWx0ZXJTZXR0aW5ncy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja1Bh
Z2VPdmVybGF5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNb2NrUGFnZU92ZXJsYXkuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNb2NrUGF5bWVudEFkZHJlc3MuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCAwM2ZhMmM2MjZhMTVkNjlmYTBkYzY3MTU2M2RmZGY3MDAzM2E0NDc2Li4y
OGVmNzY3NWM4MGVlODQyZWU0NzdiY2YwZWJjZmM4NTUxYjU4Mjc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTIxMiw3ICsyMTIsOSBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rp
b25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vz
c2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0
dXJlTWVkaWFTdHJlYW1UcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Eb3VibGVSYW5nZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCBmNmZmMzFmYjA4ZGQ0OTgxYTNi
Y2U5MDM5MmJkYmQyY2RhNWZjZGI2Li45ZGEyMDE1MjBmNDhiZjUxMWJhOWUwYzc5ZGE3MGM0NmM0
MDU1MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYU1ldGFkYXRhLmNwcApAQCAtNDIsNiArNDIsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVk
aWFNZXRhZGF0YT4+IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjbwogICAgICAgICBtZXRhZGF0YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBt
ZXRhZGF0YS0+c2V0QXJ0aXN0KGluaXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRB
bGJ1bShpbml0LT5hbGJ1bSk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisg
ICAgICAgIG1ldGFkYXRhLT5zZXRUcmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVy
KTsKKyNlbmRpZgogICAgICAgICBhdXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNl
dEFydHdvcmsoY29udGV4dCwgV1RGTW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChw
b3NzaWJsZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBwb3NzaWJsZUV4Y2VwdGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTA1LDYgKzEwOCwx
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYU1ldGFkYXRhOjpzZXRBcnR3b3JrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFZlYwogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKK3ZvaWQgTWVkaWFNZXRhZGF0YTo6c2V0VHJh
Y2tJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKK3sKKyAgICBpZiAobV9tZXRh
ZGF0YS50cmFja0lkZW50aWZpZXIgPT0gaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9tZXRhZGF0YS50cmFja0lkZW50aWZpZXIgPSBpZGVudGlmaWVyOworICAgIG1ldGFkYXRh
VXBkYXRlZCgpOworfQorI2VuZGlmCisKIHZvaWQgTWVkaWFNZXRhZGF0YTo6bWV0YWRhdGFVcGRh
dGVkKCkKIHsKICAgICBpZiAobV9zZXNzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCmluZGV4IDMwZTA5M2Q2ZDI3ZGRiNzQx
NTI4MWVlOGI1ZDEwMDRlZmNmYWE1ZGEuLjg1NDg2OWM2MzZjMzc1MGVkNzk5YWU5MzY2OWJmNTJh
YWM1MDVjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhTWV0YWRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYU1ldGFkYXRhLmgKQEAgLTU5LDYgKzU5LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBW
ZWN0b3I8TWVkaWFJbWFnZT4mIGFydHdvcmsoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmFy
dHdvcms7IH0KICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBcnR3b3JrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBWZWN0b3I8TWVkaWFJbWFnZT4mJik7CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTl9QTEFZTElTVCkKKyAgICBjb25zdCBTdHJpbmcmIHRyYWNrSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fbWV0YWRhdGEudHJhY2tJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRUcmFj
a0lkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIGNvbnN0IE1lZGlhU2Vz
c2lvbk1ldGFkYXRhJiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGE7IH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhTWV0YWRhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFNZXRhZGF0YS5pZGwKaW5kZXggYjI4ZTk5ZDNiNzllNWVlNjFjNjFjZWQ3OTgxYzNjYjIw
N2UzODEyMS4uZTYyNGViYzQ4ZWUxZmUwYjBjYTZkYjEyNDcxZTIyMTE5NWExN2M3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0
YS5pZGwKQEAgLTMzLDQgKzMzLDYgQEAKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFydGlzdDsK
ICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsYnVtOwogICAgIFtTZXR0ZXJDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIEZyb3plbkFy
cmF5PE1lZGlhSW1hZ2U+IGFydHdvcms7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lP
Tl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmli
dXRlIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmgKaW5kZXggNjY5
ZGVmZmEyZDY5NDA4NWYwOGYxMGRmMWI5MTZlZjQ0ZTg4NWUwZC4uZDg2ZjkxMjkzMzQxZDJkOTA1
NDM1MTNkYmE4NTNlNzQ1NjE0Y2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oCkBAIC0zNSw2ICszNSw5IEBA
IHN0cnVjdCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAgICAgU3RyaW5nIHRpdGxlOwogICAgIFN0cmlu
ZyBhcnRpc3Q7CiAgICAgU3RyaW5nIGFsYnVtOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQorICAgIFN0cmluZyB0cmFja0lkZW50aWZpZXI7CisjZW5kaWYKICAgICBWZWN0b3I8
TWVkaWFJbWFnZT4gYXJ0d29yazsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTQzLDI4ICs0Niw0MCBAQCBzdHJ1Y3QgTWVkaWFN
ZXRhZGF0YUluaXQgewogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRp
YU1ldGFkYXRhSW5pdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5j
b2RlciA8PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0gPDwgYXJ0d29yazsKKyAgICBlbmNvZGVy
IDw8IHRpdGxlIDw8IGFydGlzdCA8PCBhbGJ1bQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQorICAgIDw8IHRyYWNrSWRlbnRpZmllcgorI2VuZGlmCisgICAgPDwgYXJ0d29yazsK
IH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRh
dGFJbml0PiBNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0g
ICAgU3RyaW5nIHRpdGxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGl0bGUpKQotICAgICAg
ICByZXR1cm4geyB9OworI2RlZmluZSBERUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9wdGlvbmFs
PHR5cGU+IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsgXAogCi0gICAgU3RyaW5nIGFydGlzdDsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGFydGlzdCkpCi0gICAgICAgIHJldHVybiB7IH07CisgICAg
REVDT0RFKHRpdGxlLCBTdHJpbmcpOworICAgIERFQ09ERShhcnRpc3QsIFN0cmluZyk7CisgICAg
REVDT0RFKGFsYnVtLCBTdHJpbmcpOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNU
KQorICAgIERFQ09ERSh0cmFja0lkZW50aWZpZXIsIFN0cmluZyk7CisjZW5kaWYKKyAgICBERUNP
REUoYXJ0d29yaywgVmVjdG9yPE1lZGlhSW1hZ2U+KTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGFsYnVtKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAg
IFZlY3RvcjxNZWRpYUltYWdlPiBhcnR3b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0
d29yaykpCi0gICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHsgeworICAgICAgICAqdGl0
bGUsCisgICAgICAgICphcnRpc3QsCisgICAgICAgICphbGJ1bSwKKyNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9QTEFZTElTVCkKKyAgICAgICAgKnRyYWNrSWRlbnRpZmllciwKKyNlbmRpZgorICAg
ICAgICAqYXJ0d29yaworICAgIH0gfTsKIAotICAgIHJldHVybiBNZWRpYU1ldGFkYXRhSW5pdCB7
IFdURk1vdmUodGl0bGUpLCBXVEZNb3ZlKGFydGlzdCksIFdURk1vdmUoYWxidW0pLCBXVEZNb3Zl
KGFydHdvcmspIH07CisjdW5kZWYgREVDT0RFCiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbAppbmRl
eCA4YjBmNTVjZjE0YTU4MzhjYjU0ODk1NjVkMDI3MmRhZmFkOWUxMjNkLi4wZGM4ZWYwMDdiMTA5
NTFiMGQ1OTE5ZWIwMzEyNDM0ZjNmNjQ0NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCkBAIC0zMCw1
ICszMCw2IEBACiAgICAgRE9NU3RyaW5nIHRpdGxlID0gIiI7CiAgICAgRE9NU3RyaW5nIGFydGlz
dCA9ICIiOwogICAgIERPTVN0cmluZyBhbGJ1bSA9ICIiOworICAgIFtDb25kaXRpb25hbD1NRURJ
QV9TRVNTSU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0
XSBET01TdHJpbmcgdHJhY2tJZGVudGlmaWVyID0gIiI7CiAgICAgc2VxdWVuY2U8TWVkaWFJbWFn
ZT4gYXJ0d29yayA9IFtdOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IDkwMWRkYjBhN2I0ZmU5ZTkzNjNlNWZm
MzFmMmVhYjQ3YTlkMzY0OGQuLmIzZDg4Yzk3MzhkNzE1MWJmOWQzNDQ2NDFiYWJkZDc1M2VjNWQ0
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmNwcApAQCAtMjgsOCArMjgsMTAgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OKQogCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJNZWRpYU1ldGFkYXRhLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuaCIKIApAQCAtNzUsNyArNzcsMTEgQEAgUmVmPE1lZGlhU2Vzc2lvbj4gTWVk
aWFTZXNzaW9uOjpjcmVhdGUoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCiB9CiAKIE1lZGlhU2Vzc2lv
bjo6TWVkaWFTZXNzaW9uKE5hdmlnYXRvciYgbmF2aWdhdG9yKQotICAgIDogbV9uYXZpZ2F0b3Io
bWFrZVdlYWtQdHIobmF2aWdhdG9yKSkKKyAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
KG5hdmlnYXRvci5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgLCBtX25hdmlnYXRvciht
YWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQorICAgICwgbV9hc3luY0V2ZW50UXVldWUoTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVl
OjpjcmVhdGUoKnRoaXMpKQorI2VuZGlmCiB7CiAgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKERv
Y3VtZW50OjpzaGFyZWRMb2dnZXIoKSk7CiAgICAgbV9sb2dJZGVudGlmaWVyID0gbmV4dExvZ0lk
ZW50aWZpZXIoKTsKQEAgLTg4LDE0ICs5NCw2MyBAQCBNZWRpYVNlc3Npb246On5NZWRpYVNlc3Np
b24oKSA9IGRlZmF1bHQ7CiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1l
ZGlhTWV0YWRhdGE+JiYgbWV0YWRhdGEpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
KTsKLQogICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBtX21ldGFkYXRhLT5yZXNldE1lZGlh
U2Vzc2lvbigpOwogICAgIG1fbWV0YWRhdGEgPSBXVEZNb3ZlKG1ldGFkYXRhKTsKICAgICBpZiAo
bV9tZXRhZGF0YSkKICAgICAgICAgbV9tZXRhZGF0YS0+c2V0TWVkaWFTZXNzaW9uKCp0aGlzKTsK
LSAgICBtZXRhZGF0YVVwZGF0ZWQoKTsKKyAgICBub3RpZnlNZXRhZGF0YU9ic2VydmVycygpOwor
fQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCit2b2lkIE1lZGlhU2Vz
c2lvbjo6c2V0UmVhZHlTdGF0ZShNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQoreworICAg
IGlmIChtX3JlYWR5U3RhdGUgPT0gc3RhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUiwgc3RhdGUpOworCisgICAgbV9yZWFkeVN0YXRlID0gc3RhdGU7
CisgICAgbm90aWZ5UmVhZHlTdGF0ZU9ic2VydmVycygpOworfQorCit2b2lkIE1lZGlhU2Vzc2lv
bjo6c2V0Q29vcmRpbmF0b3IoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yKQor
eworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBpZiAobV9jb29yZGluYXRv
cikKKyAgICAgICAgbV9jb29yZGluYXRvci0+c2V0TWVkaWFTZXNzaW9uKG51bGxwdHIpOworCisg
ICAgbV9jb29yZGluYXRvciA9IGNvb3JkaW5hdG9yOworCisgICAgaWYgKG1fY29vcmRpbmF0b3Ip
CisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldE1lZGlhU2Vzc2lvbih0aGlzKTsKKworICAgIG1f
YXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
Y29vcmRpbmF0b3JjaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vKSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQorRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uOjpzZXRQbGF5bGlzdChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBWZWN0b3I8UmVmUHRyPE1lZGlhTWV0YWRhdGE+
PiYmIHBsYXlsaXN0KQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBW
ZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiByZXNvbHZlZFBsYXlsaXN0OworICAgIHJlc29sdmVk
UGxheWxpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwbGF5bGlzdC5zaXplKCkpOworCisgICAg
Zm9yIChhdXRvJiBlbnRyeSA6IHBsYXlsaXN0KSB7CisgICAgICAgIGF1dG8gcmVzb2x2ZWRFbnRy
eSA9IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShjb250ZXh0LCB7IGVudHJ5LT5tZXRhZGF0YSgpIH0p
OworICAgICAgICBpZiAocmVzb2x2ZWRFbnRyeS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAg
IHJldHVybiByZXNvbHZlZEVudHJ5LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICAgICAgCisgICAg
ICAgIHJlc29sdmVkUGxheWxpc3QudW5jaGVja2VkQXBwZW5kKHJlc29sdmVkRW50cnkucmVsZWFz
ZVJldHVyblZhbHVlKCkpOworICAgIH0KKworICAgIG1fcGxheWxpc3QgPSBXVEZNb3ZlKHJlc29s
dmVkUGxheWxpc3QpOworCisgICAgcmV0dXJuIHsgfTsKIH0KKyNlbmRpZgogCiB2b2lkIE1lZGlh
U2Vzc2lvbjo6c2V0UGxheWJhY2tTdGF0ZShNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRl
KQogewpAQCAtMTEwLDYgKzE2NSw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRQbGF5YmFja1N0
YXRlKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCiAgICAgICAgIG1fdGltZUF0TGFz
dFBvc2l0aW9uVXBkYXRlID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgfQogICAgIG1fcGxh
eWJhY2tTdGF0ZSA9IHN0YXRlOworICAgIG5vdGlmeVBsYXliYWNrU3RhdGVPYnNlcnZlcnMoKTsK
IH0KIAogdm9pZCBNZWRpYVNlc3Npb246OnNldEFjdGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0
aW9uIGFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+JiYgaGFuZGxlcikK
QEAgLTEyOCw3ICsxODQsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0QWN0aW9uSGFuZGxlcihN
ZWRpYVNlc3Npb25BY3Rpb24gYWN0aW9uLCBSZWZQdHI8TWVkaWFTZXNzaQogICAgICAgICBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1vdmVTdXBwb3J0ZWRD
b21tYW5kKHBsYXRmb3JtQ29tbWFuZEZvck1lZGlhU2Vzc2lvbkFjdGlvbihhY3Rpb24pKTsKICAg
ICB9CiAgICAgCi0gICAgYWN0aW9uSGFuZGxlcnNVcGRhdGVkKCk7CisgICAgbm90aWZ5QWN0aW9u
SGFuZGxlck9ic2VydmVycygpOwogfQogCiBib29sIE1lZGlhU2Vzc2lvbjo6aGFzQWN0aW9uSGFu
ZGxlcihNZWRpYVNlc3Npb25BY3Rpb24gYWN0aW9uKSBjb25zdApAQCAtMTQxLDI1ICsxOTcsMzAg
QEAgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+IE1lZGlhU2Vzc2lvbjo6aGFuZGxl
ckZvckFjdGlvbihNZWRpYVNlc3Npb25BY3QKICAgICByZXR1cm4gbV9hY3Rpb25IYW5kbGVycy5n
ZXQoYWN0aW9uKTsKIH0KIAordm9pZCBNZWRpYVNlc3Npb246OmNhbGxBY3Rpb25IYW5kbGVyKGNv
bnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMmIGFjdGlvbkRldGFpbHMpCit7CisgICAgaWYg
KGF1dG8gaGFuZGxlciA9IG1fYWN0aW9uSGFuZGxlcnMuZ2V0KGFjdGlvbkRldGFpbHMuYWN0aW9u
KSkKKyAgICAgICAgaGFuZGxlci0+aGFuZGxlRXZlbnQoYWN0aW9uRGV0YWlscyk7Cit9CisKIEV4
Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU2Vzc2lvbjo6c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxN
ZWRpYVBvc2l0aW9uU3RhdGU+JiYgc3RhdGUpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKIAogICAgIGlmICghc3RhdGUpIHsKICAgICAgICAgbV9wb3NpdGlvblN0YXRlID0gV1RG
OjpudWxsb3B0OworICAgICAgICBub3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCk7CiAgICAg
ICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgaWYgKCEoc3RhdGUtPmR1cmF0aW9uID49IDAK
LSAgICAgICAgJiYgc3RhdGUtPnBvc2l0aW9uID49IDAKLSAgICAgICAgJiYgc3RhdGUtPnBvc2l0
aW9uIDw9IHN0YXRlLT5kdXJhdGlvbgotICAgICAgICAmJiBzdGQ6OmlzZmluaXRlKHN0YXRlLT5w
bGF5YmFja1JhdGUpCi0gICAgICAgICYmIHN0YXRlLT5wbGF5YmFja1JhdGUpKQorICAgIGlmIChz
dGF0ZS0+cGxheWJhY2tSYXRlICYmICEoc3RhdGUtPmR1cmF0aW9uID49IDAgJiYgc3RhdGUtPnBv
c2l0aW9uID49IDAgJiYgc3RhdGUtPnBvc2l0aW9uIDw9IHN0YXRlLT5kdXJhdGlvbiAmJiBzdGQ6
OmlzZmluaXRlKHN0YXRlLT5wbGF5YmFja1JhdGUpKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciB9OwogCiAgICAgbV9wb3NpdGlvblN0YXRlID0gV1RGTW92ZShzdGF0ZSk7
CiAgICAgbV9sYXN0UmVwb3J0ZWRQb3NpdGlvbiA9IG1fcG9zaXRpb25TdGF0ZS0+cG9zaXRpb247
CiAgICAgbV90aW1lQXRMYXN0UG9zaXRpb25VcGRhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsK
KyAgICBub3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCk7CisKICAgICByZXR1cm4geyB9Owog
fQogCkBAIC0xNzcsMTEgKzIzOCw2NCBAQCBPcHRpb25hbDxkb3VibGU+IE1lZGlhU2Vzc2lvbjo6
Y3VycmVudFBvc2l0aW9uKCkgY29uc3QKIAogdm9pZCBNZWRpYVNlc3Npb246Om1ldGFkYXRhVXBk
YXRlZCgpCiB7CisgICAgbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMoKTsKK30KKwordm9pZCBNZWRp
YVNlc3Npb246OmFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIG1fb2JzZXJ2ZXJzLmFkZChvYnNlcnZlcik7Cit9CisKK3Zv
aWQgTWVkaWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCit7Cisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX29ic2VydmVycy5yZW1vdmUob2JzZXJ2
ZXIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6Zm9yRWFjaE9ic2VydmVyKGNvbnN0IEZ1bmN0
aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisgICAgbV9vYnNl
cnZlcnMuZm9yRWFjaChhcHBseSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpub3RpZnlNZXRh
ZGF0YU9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9ic2VydmVyKFt0aGlzXShhdXRvJiBvYnNl
cnZlcikgeworICAgICAgICBvYnNlcnZlci5tZXRhZGF0YUNoYW5nZWQobV9tZXRhZGF0YSk7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpub3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2
ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNdKGF1dG8mIG9ic2VydmVyKSB7Cisg
ICAgICAgIG9ic2VydmVyLnBvc2l0aW9uU3RhdGVDaGFuZ2VkKG1fcG9zaXRpb25TdGF0ZSk7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpub3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2
ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNdKGF1dG8mIG9ic2VydmVyKSB7Cisg
ICAgICAgIG9ic2VydmVyLnBsYXliYWNrU3RhdGVDaGFuZ2VkKG1fcGxheWJhY2tTdGF0ZSk7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpub3RpZnlBY3Rpb25IYW5kbGVyT2JzZXJ2
ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAg
ICAgb2JzZXJ2ZXIuYWN0aW9uSGFuZGxlcnNDaGFuZ2VkKCk7CisgICAgfSk7CiB9CiAKLXZvaWQg
TWVkaWFTZXNzaW9uOjphY3Rpb25IYW5kbGVyc1VwZGF0ZWQoKQorI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQordm9pZCBNZWRpYVNlc3Npb246Om5vdGlmeVJlYWR5U3RhdGVP
YnNlcnZlcnMoKQogeworICAgIGZvckVhY2hPYnNlcnZlcihbdGhpc10oYXV0byYgb2JzZXJ2ZXIp
IHsKKyAgICAgICAgb2JzZXJ2ZXIucmVhZHlTdGF0ZUNoYW5nZWQobV9yZWFkeVN0YXRlKTsKKyAg
ICB9KTsKIH0KKyNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXggNGY0YmU0NzcyNjQ0MDg2Yjc3ZDYxZDlm
NWIwODIzYTE1ZDA1MDU2OS4uZGNjZjI4NjdmYzI5ZmVjOWI4NWJiOGRiMWQ2OTkzYWRkNjFmNjAw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQog
CisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiSlNN
ZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJKU01lZGlhU2Vzc2lvbkFjdGlvbi5oIgog
I2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIgpAQCAtMzQsNiArMzcsNyBA
QAogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXIuaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgi
CisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dn
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgpAQCAtNDMsMzYgKzQ3LDEwMCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBNZWRpYU1ldGFkYXRhOworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CiBjbGFzcyBO
YXZpZ2F0b3I7CiAKLWNsYXNzIE1lZGlhU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlh
U2Vzc2lvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb24+IHsKK2NsYXNzIE1l
ZGlhU2Vzc2lvbgorICAgIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uPgorICAgICwg
cHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T05fQ09PUkRJTkFUT1IpCisgICAgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YQor
I2Vsc2UKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb24+CisjZW5kaWYK
K3sKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PE1lZGlhU2Vzc2lvbj4gY3JlYXRlKE5hdmlnYXRvciYpOwogICAgIH5NZWRpYVNlc3Npb24oKTsK
IAogICAgIE1lZGlhTWV0YWRhdGEqIG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0
YS5nZXQoKTsgfTsKICAgICB2b2lkIHNldE1ldGFkYXRhKFJlZlB0cjxNZWRpYU1ldGFkYXRhPiYm
KTsKKyAgICB2b2lkIG1ldGFkYXRhVXBkYXRlZCgpOwogCiAgICAgTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSBwbGF5YmFja1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5YmFja1N0YXRlOyB9
OwogICAgIHZvaWQgc2V0UGxheWJhY2tTdGF0ZShNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKTsK
IAogICAgIHZvaWQgc2V0QWN0aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rpb24sIFJlZlB0cjxN
ZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPiYmKTsKKwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPiYmKTsKKyAgICBPcHRp
b25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+IHBvc2l0aW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3Bvc2l0aW9uU3RhdGU7IH0KKwogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPGRvdWJsZT4g
Y3VycmVudFBvc2l0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lkIG1ldGFkYXRhVXBkYXRlZCgpOwor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfTsKKyAg
ICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSk7CisKKyAgICBNZWRp
YVNlc3Npb25Db29yZGluYXRvciogY29vcmRpbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX2Nvb3Jk
aW5hdG9yLmdldCgpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29yZGluYXRvcihN
ZWRpYVNlc3Npb25Db29yZGluYXRvciopOworI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTl9QTEFZTElTVCkKKyAgICBjb25zdCBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiYgcGxh
eWxpc3QoKSBjb25zdCB7IHJldHVybiBtX3BsYXlsaXN0OyB9CisgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0UGxheWxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFZlY3RvcjxSZWZQdHI8TWVk
aWFNZXRhZGF0YT4+JiYpOworI2VuZGlmCiAKLSAgICB2b2lkIGFjdGlvbkhhbmRsZXJzVXBkYXRl
ZCgpOwogICAgIGJvb2wgaGFzQWN0aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rpb24pIGNvbnN0
OwogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPiBo
YW5kbGVyRm9yQWN0aW9uKE1lZGlhU2Vzc2lvbkFjdGlvbikgY29uc3Q7CiAgICAgYm9vbCBoYXNB
Y3RpdmVBY3Rpb25IYW5kbGVycygpIGNvbnN0IHsgcmV0dXJuICFtX2FjdGlvbkhhbmRsZXJzLmlz
RW1wdHkoKTsgfQogCisgICAgdm9pZCBjYWxsQWN0aW9uSGFuZGxlcihjb25zdCBNZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzJik7CisKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IHsg
cmV0dXJuICptX2xvZ2dlci5nZXQoKTsgfQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCisgICAgLy8gRXZlbnRUYXJnZXQKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7
CisgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CisjZW5kaWYKKworICAgIGNsYXNzIE9ic2Vy
dmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE9ic2VydmVyPiB7CisgICAgcHVibGljOgorICAg
ICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpID0gZGVmYXVsdDsKKworICAgICAgICB2aXJ0dWFsIHZv
aWQgbWV0YWRhdGFDaGFuZ2VkKFJlZlB0cjxNZWRpYU1ldGFkYXRhPikgeyB9CisgICAgICAgIHZp
cnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3Rh
dGU+KSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGUpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgYWN0aW9uSGFu
ZGxlcnNDaGFuZ2VkKCkgeyB9CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUpIHsgfQorI2VuZGlmCisgICAgfTsKKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2Vy
dmVyJik7CisgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOworCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsKIAotICAgIGNvbnN0IExvZ2dl
ciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4gKm1fbG9nZ2VyLmdldCgpOyB9CiAgICAgY29uc3Qg
dm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQog
CisgICAgdm9pZCBmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgRnVuY3Rpb248dm9pZChPYnNlcnZlciYp
PiYpOworICAgIHZvaWQgbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMoKTsKKyAgICB2b2lkIG5vdGlm
eVBvc2l0aW9uU3RhdGVPYnNlcnZlcnMoKTsKKyAgICB2b2lkIG5vdGlmeVBsYXliYWNrU3RhdGVP
YnNlcnZlcnMoKTsKKyAgICB2b2lkIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNlcnZlcnMoKTsKKyAg
ICB2b2lkIG5vdGlmeVJlYWR5U3RhdGVPYnNlcnZlcnMoKTsKKworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTWVkaWFTZXNzaW9uRXZlbnRUYXJnZXRJ
bnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKworICAgIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwg
eyBkZXJlZigpOyB9CisjZW5kaWYKKwogICAgIFdlYWtQdHI8TmF2aWdhdG9yPiBtX25hdmlnYXRv
cjsKICAgICBSZWZQdHI8TWVkaWFNZXRhZGF0YT4gbV9tZXRhZGF0YTsKICAgICBNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlIG1fcGxheWJhY2tTdGF0ZSB7IE1lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGU6Ok5vbmUgfTsKQEAgLTgyLDYgKzE1MCwxOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8TWVk
aWFTZXNzaW9uQWN0aW9uLCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4sIFdURjo6
SW50SGFzaDxNZWRpYVNlc3Npb25BY3Rpb24+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPE1l
ZGlhU2Vzc2lvbkFjdGlvbj4+IG1fYWN0aW9uSGFuZGxlcnM7CiAgICAgUmVmUHRyPGNvbnN0IExv
Z2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworCisgICAg
V2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJzOworCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCisgICAgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBtX3JlYWR5U3Rh
dGUgeyBNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyB9OworICAgIFJlZlB0cjxN
ZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9jb29yZGluYXRvcjsKKyAgICBVbmlxdWVSZWY8TWFp
blRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKKyNlbmRpZgorCisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgVmVjdG9yPFJlZjxNZWRpYU1l
dGFkYXRhPj4gbV9wbGF5bGlzdDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKaW5kZXggODRmNDMw
ZDY4N2M3NGZlY2VlMTJhNjk2MTA1NWViNGQ5OTE1YWRiOC4uMzAxODNiMGVhMGQ0ODk3MDA2Y2Vh
NzczODY3YWE1MWEwOTE3NGZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDkgKzI2LDEzIEBACiBbCiAgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU0VTU0lPTiwKICAgICBFeHBvc2VkPVdpbmRvdywKLSAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlLAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAotXSBp
bnRlcmZhY2UgTWVkaWFTZXNzaW9uIHsKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gaW50
ZXJmYWNlIE1lZGlhU2Vzc2lvbgorI2lmIGRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpICYmIEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SCisgIDogRXZlbnRU
YXJnZXQKKyNlbmRpZgorewogICAgIGF0dHJpYnV0ZSBNZWRpYU1ldGFkYXRhPyBtZXRhZGF0YTsK
IAogICAgIGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBsYXliYWNrU3RhdGU7
CkBAIC0zNiw0ICs0MCwxMCBAQAogICAgIHVuZGVmaW5lZCBzZXRBY3Rpb25IYW5kbGVyKE1lZGlh
U2Vzc2lvbkFjdGlvbiBhY3Rpb24sIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI/IGhhbmRsZXIp
OwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0UG9zaXRpb25TdGF0ZShv
cHRpb25hbCBNZWRpYVBvc2l0aW9uU3RhdGU/IHN0YXRlID0gbnVsbCk7CisKKyAgICBbQ29uZGl0
aW9uYWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNl
c3Npb25Db29yZGluYXRvcl0gcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yPyBjb29yZGluYXRvcjsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUiwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25Db29yZGluYXRvcl0gYXR0cmlidXRl
IEV2ZW50SGFuZGxlciBvbmNvb3JkaW5hdG9yY2hhbmdlOworICAgICAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25D
b29yZGluYXRvcl0gYXR0cmlidXRlIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgcmVhZHlTdGF0ZTsK
KworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0
aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0LCBTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhTWV0
YWRhdGE+IHBsYXlsaXN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmgKaW5kZXggNWNiNjQ0ZmYzNjJkZWQ3
MzcwMmIxMzNmM2YyMGFkODY3MGI3ZmY2MS4uOWJjNGYwMDEzYjQ2YjUyYTgxYzAwMDc5NzIyYTM2
MDEyZjdjYzIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNiArMzksNyBAQCBlbnVtIGNsYXNzIE1l
ZGlhU2Vzc2lvbkFjdGlvbiB7CiAgICAgU2tpcGFkLAogICAgIFN0b3AsCiAgICAgU2Vla3RvLAor
ICAgIFNldHRyYWNrLAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpAQCAtNTYsNyArNTcs
OCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFj
dGlvbj4gewogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246Ok5leHR0cmFjaywK
ICAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTa2lwYWQsCiAgICAgICAgIFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U3RvcCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uQWN0aW9uOjpTZWVrdG8KKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9u
OjpTZWVrdG8sCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2V0dHJhY2sK
ICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKaW5kZXggNDYzNWU2OTczNGVkYTE5ZGMy
YTdjYWVkOWE1ZmM3MTA3NDU5OGNkNC4uOGY3NjVmNjRlM2RhY2JlNzE3MTNhNGY4NmJiOWJhMmFi
ODJmNDNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDQgKzM1LDcgQEAKICAgICAic2tpcGFk
IiwKICAgICAic3RvcCIsCiAgICAgInNlZWt0byIKKyNpZiBkZWZpbmVkKEVOQUJMRV9NRURJQV9T
RVNTSU9OX1BMQVlMSVNUKSAmJiBFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVAorICAgICwg
InNldHRyYWNrIgorI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCmluZGV4
IDY0MWVhNzI0YWNhNjcwNWQ3MzUwN2UyODcxYzUxNzQxNzk2OTZkN2MuLmY1OTA5ZDQ2ZjhlYWM2
NmQwZjNjOWRkN2U3NTMyZTM2MDQ2OGQ2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxz
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzcsNiArMzcsOSBAQCBzdHJ1Y3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyB7CiAgICAg
T3B0aW9uYWw8ZG91YmxlPiBzZWVrT2Zmc2V0OwogICAgIE9wdGlvbmFsPGRvdWJsZT4gc2Vla1Rp
bWU7CiAgICAgT3B0aW9uYWw8Ym9vbD4gZmFzdFNlZWs7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T05fUExBWUxJU1QpCisgICAgU3RyaW5nIHRyYWNrSWRlbnRpZmllcjsKKyNlbmRpZgogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbAppbmRleCAxYTFlZjdhZTc2NWFlMDJm
MjFlMzIzMmExMzY0YTk2YTFhZGYxNTQ3Li4yZDhjNjA3MzdjNmQ2N2ZkMTI1ZTEzZTkxNjk4ZWNm
YTgwMjZjMDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw0ICszMiw2
IEBACiAgICAgZG91YmxlPyBzZWVrT2Zmc2V0OwogICAgIGRvdWJsZT8gc2Vla1RpbWU7CiAgICAg
Ym9vbGVhbj8gZmFzdFNlZWs7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZ
TElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gRE9NU3RyaW5nPyB0
cmFja0lkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkzMTE1Mjc0OTJhZjcwNTcwN2IwYjEyYmI1N2Y2ZmIxNzVlZTE1ZTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAKQEAgLTAsMCArMSwxODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIk1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3Qgdm9p
ZCogbmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90
IGxvZ0lkZW50aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQor
CitSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpj
cmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29y
ZGluYXRvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcihXVEZNb3ZlKHBsYXRmb3JtQ29vcmRpbmF0b3IpKSk7Cit9CisKK01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQorICAgIDogbV9wbGF0Zm9ybUNv
b3JkaW5hdG9yKFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRvcikpCisgICAgLCBtX2xvZ2dlciht
YWtlUmVmKERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIo
bmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcigpKQoreworICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUik7CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNldExvZ2dlcihtX2xvZ2dl
ci5jb3B5UmVmKCksIG1fbG9nSWRlbnRpZmllcik7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjp+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSkKK3sKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsIHRpbWUpOworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVS
Uk9SX0xPRyhMT0dJREVOVElGSUVSLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNlZWtUbyh0aW1l
LCBbdGltZSwgdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpXSAoKSBtdXRh
YmxlIHsKKyAgICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5h
Y3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywKKyAgICAgICAgICAgIC5zZWVrVGlt
ZSA9IHRpbWUsCisgICAgICAgIH07CisgICAgICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRs
ZXIoZGV0YWlscyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnBsYXkoKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgaWYgKCFtX3Nl
c3Npb24pIHsKKyAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJNZWRpYVNlc3Npb24g
aXMgTlVMTCEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29y
ZGluYXRvci0+cGxheShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpXSAo
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3Nlc3Npb24pCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAg
ICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBsYXksCisgICAgICAgIH07CisgICAg
ICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisgICAgfSk7Cit9CisK
K3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKCkKK3sKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xP
RyhMT0dJREVOVElGSUVSLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBhdXNlKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyldICgpIG11dGFibGUgeworICAgICAgICBpZiAo
IW1fc2Vzc2lvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBNZWRpYVNlc3Npb25B
Y3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lv
bkFjdGlvbjo6UGF1c2UsCisgICAgICAgIH07CisgICAgICAgIG1fc2Vzc2lvbi0+Y2FsbEFjdGlv
bkhhbmRsZXIoZGV0YWlscyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OnNldFRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2spCit7CisgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSKTsKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0co
TE9HSURFTlRJRklFUiwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3Ry
YWNrLCB0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyldICgpIG11dGFibGUg
eworICAgICAgICBpZiAoIW1fc2Vzc2lvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlv
biA9IE1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICAgICAgLnRyYWNrSWRlbnRp
ZmllciA9IHRyYWNrLAorICAgICAgICB9OworICAgICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rpb25I
YW5kbGVyKGRldGFpbHMpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpzZXRNZWRpYVNlc3Npb24oTWVkaWFTZXNzaW9uKiBzZXNzaW9uKQoreworICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUik7CisgICAgbV9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lv
bik7CisKKyAgICBpZiAobV9zZXNzaW9uKQorICAgICAgICBtX3Nlc3Npb24tPmFkZE9ic2VydmVy
KCp0aGlzKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0
ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPiBzdGF0ZSkKK3sKKyAgICBpZiAo
IXN0YXRlKSB7CisgICAgICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cG9zaXRpb25TdGF0ZUNo
YW5nZWQoeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29y
ZGluYXRvci0+cG9zaXRpb25TdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6TWVkaWFQb3NpdGlvblN0YXRlIHsgc3RhdGUtPmR1cmF0aW9uLCBzdGF0ZS0+cGxheWJh
Y2tSYXRlLCBzdGF0ZS0+cG9zaXRpb24gfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3Rh
dGUpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlOjpOb25lKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lKSwg
Ik1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUgYXMgZXhwZWN0
ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lv
blBsYXliYWNrU3RhdGU6OlBhdXNlZCkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2Vk
KSwgIk1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCBpcyBub3QgUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkIGFz
IGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
OjpQbGF5aW5nKSwgIk1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcgaXMgbm90IFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6
OlBsYXlpbmcgYXMgZXhwZWN0ZWQiKTsKKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cGxh
eWJhY2tTdGF0ZUNoYW5nZWQoc3RhdGljX2Nhc3Q8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZT4oc3RhdGUpKTsKK30KKwordm9pZCBNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlTm90aGluZyksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyBpcyBu
b3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZU5vdGhpbmcgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSkgPT0gc3Rh
dGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVNZXRhZGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGFzIGV4cGVjdGVkIik7CisgICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlQ3VycmVudERhdGEpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSks
ICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEgaXMgbm90IFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJy
ZW50RGF0YSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEpID09IHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lv
blJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6Okhh
dmVGdXR1cmVEYXRhIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRp
YVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6
SGF2ZUVub3VnaERhdGEpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhKSwg
Ik1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhIGlzIG5vdCBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdo
RGF0YSBhcyBleHBlY3RlZCIpOworCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5yZWFkeVN0
YXRlQ2hhbmdlZChzdGF0aWNfY2FzdDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlPihzdGF0ZSkpOworfQorCitXVEZMb2dDaGFubmVsJiBNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCgpCit7CisgICAgcmV0dXJuIExvZ01lZGlh
OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25Db29yZGluYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMDZjNGU1MTBkYWQ2MzYxMGU5
NDA1MGQyZmY0MzJlZmM2NjJjYjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0wLDAgKzEs
NzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgorI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworY2xhc3Mg
TWVkaWFTZXNzaW9uOworCitjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvcgorICAgIDogcHVi
bGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+CissIHB1YmxpYyBNZWRpYVNl
c3Npb246Ok9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
PE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5NZWRpYVNlc3Npb25Db29yZGlu
YXRvcigpOworCisgICAgdm9pZCBzZWVrVG8oZG91YmxlKTsKKyAgICB2b2lkIHBsYXkoKTsKKyAg
ICB2b2lkIHBhdXNlKCk7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcmKTsKKworICAg
IHZvaWQgc2V0TWVkaWFTZXNzaW9uKE1lZGlhU2Vzc2lvbiopOworCisgICAgLy8gTWVkaWFTZXNz
aW9uOjpPYnNlcnZlcgorICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVk
aWFQb3NpdGlvblN0YXRlPikgZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsKKyAgICB2b2lkIHJlYWR5U3RhdGVDaGFu
Z2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpIGZpbmFsOworCitwcml2YXRlOgorICAgIGV4cGxp
Y2l0IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yPiYmKTsKKworICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4g
bV9sb2dnZXI7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgc3RhdGljIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5u
ZWwoKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgeyByZXR1cm4gIk1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQorCisgICAgV2Vha1B0cjxNZWRpYVNlc3Npb24+IG1f
c2Vzc2lvbjsKKyAgICBSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9wbGF0
Zm9ybUNvb3JkaW5hdG9yOworICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNv
bnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjgyYTZlMDFmNDQzY2ZhZjJjNDdjMjdmMzRmMDE3YzQ0NTIyNDQyZGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25Db29yZGluYXRvci5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLAorICAgIEVuYWJsZWRCeVNl
dHRpbmc9TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAg
RXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCitdIGludGVyZmFjZSBNZWRpYVNlc3Npb25Db29y
ZGluYXRvciB7CisgICAgdW5kZWZpbmVkIHNlZWtUbyhkb3VibGUgdGltZSk7CisgICAgdW5kZWZp
bmVkIHBsYXkoKTsKKyAgICB1bmRlZmluZWQgcGF1c2UoKTsKKyAgICB1bmRlZmluZWQgc2V0VHJh
Y2soRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllcik7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5oCmluZGV4IGQ0YWRiZDU0MTc5NGU1YTEwOTViZTU0YTIzYmIzZWI5ZWJlNzQ3NTYuLjcw
NjNjNzhlM2Q3OGJmYWQzODhkZjMwOTQ1NGE5Y2Y3YTM1NGQyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1lbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgeworZW51bSBjbGFzcyBNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlIDogdWludDhfdCB7CiAgICAgTm9uZSwKICAgICBQYXVzZWQs
CiAgICAgUGxheWluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDUyM2Rk
NTRhNzFlNjY1NGExN2JiMGM3NzRmNzg4MTYzMzdmNDY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5o
CkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Vu
dW0gY2xhc3MgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSA6IHVpbnQ4X3QgeworICAgIEhhdmVOb3Ro
aW5nLAorICAgIEhhdmVNZXRhZGF0YSwKKyAgICBIYXZlQ3VycmVudERhdGEsCisgICAgSGF2ZUZ1
dHVyZURhdGEsCisgICAgSGF2ZUVub3VnaERhdGEsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJl
YWR5U3RhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk3M2YyYWE1NGM4NjhmM2I0NjVmOWI1
NWU2MTkwNWQ1ZWM0Yjk0OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUiwKK10gZW51bSBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHsKKyAgICAiaGF2ZU5vdGhpbmci
LAorICAgICJoYXZlTWV0YWRhdGEiLAorICAgICJoYXZlQ3VycmVudERhdGEiLAorICAgICJoYXZl
RnV0dXJlRGF0YSIsCisgICAgImhhdmVFbm91Z2hEYXRhIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9u
LmgKaW5kZXggMDQyMTk2MTdjMjM4NjkzMDEwOGE2ODYwYjIxMDEyNjljZTUzNjg5ZS4uN2QyYmYz
MDY4YmY1NjdjMWM2ZjhhM2MyZTg5NTRmYWFiNGQyMzNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9u
LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IE5hdmlnYXRvck1lZGlh
U2Vzc2lvbihOYXZpZ2F0b3ImKTsKICAgICB+TmF2aWdhdG9yTWVkaWFTZXNzaW9uKCk7CiAKLSAg
ICBzdGF0aWMgTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIE1lZGlhU2Vzc2lvbiYgbWVkaWFTZXNzaW9uKE5hdmlnYXRvciYp
OwogICAgIE1lZGlhU2Vzc2lvbiYgbWVkaWFTZXNzaW9uKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxl
bWVudC5jcHAKaW5kZXggNWNiMmUxZGU0ODMxYzllZWQxNTY1YWM5M2Q1MGJhNjc4ZmFkYWZlOS4u
OTg4YTJlNzJmNGY2ODBjNTVhZjcxNjQwZmZjNDA5ODBkN2RjNTBjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MU291cmNlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkpTSFRNTE1vZEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJNb2RlbC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCAxMmJhZDg2N2FhMTFmNzkwZDIxMTg2ZTFjY2EzY2M0YmE1Njk4NTNlLi4y
MTEwNTdmNzAyMWVlMzVlNTYzMDJmNjc1YjU1MzU0NGJjNWYzMDZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApA
QCAtMTMxLDYgKzEzMSw3IEBAIE1vZHVsZXMvbWVkaWFjYXBhYmlsaXRpZXMvTWVkaWFDYXBhYmls
aXRpZXMuY3BwCiBNb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL05hdmlnYXRvck1lZGlhQ2FwYWJp
bGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAKIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKK01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAogTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9y
TWVkaWFTZXNzaW9uLmNwcAogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5jcHAKQEAgLTE5ODgsNiArMTk4
OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGguY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRo
VHJhdmVyc2FsU3RhdGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRp
bWVSYW5nZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAKQEAgLTMyMTIsNiArMzIx
NCw3IEBAIEpTTWVkaWFLZXlzLmNwcAogSlNNZWRpYUtleXNSZXF1aXJlbWVudC5jcHAKIEpTTWVk
aWFMaXN0LmNwcAogSlNNZWRpYU1ldGFkYXRhLmNwcAorSlNNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5jcHAKIEpTTWVkaWFNZXRhZGF0YUluaXQuY3BwCiBKU01lZGlhUG9zaXRpb25TdGF0ZS5jcHAK
IEpTTWVkaWFRdWVyeUxpc3QuY3BwCkBAIC0zMjIyLDYgKzMyMjUsNyBAQCBKU01lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMuY3BwCiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiBKU01l
ZGlhU2Vzc2lvbkFjdGlvbi5jcHAKIEpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAKK0pT
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5jcHAKIEpTTWVkaWFTZXNzaW9uLmNwcAogSlNNZWRpYVNv
dXJjZS5jcHAKIEpTTWVkaWFTdHJlYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWI2NGJhNjZhOGU5ZTFjY2E5NjJiOWFl
MTNhZjFhNDk2NzExZDhkYy4uNWY1MmNlNzNiMWRkZDJmZDc3ZTgyZjNhOWUwM2EyNmFlMTdhNDEx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtOTAsNiArOTAsNyBAQAogCQkwNzA3NTZENDE0MjM5QTRGMDA0MTQxNjEgLyogSlNI
VE1MVHJhY2tFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzA3NTZEMjE0MjM5QTRFMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50Lmgg
Ki87IH07CiAJCTA3MDc1NkRFMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwNzU2RDgxNDIz
OUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi87IH07CiAJCTA3MDc1NkUwMTQyMzlC
NEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkRBMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1Rl
eHRUcmFja0N1ZUxpc3QuaCAqLzsgfTsKKwkJMDcwOEYyQjYyNURERTQ1RDAwNEY5MDg2IC8qIFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi87IH07CiAJCTA3MDlENzhGMUFFNTU1NTQwMDRF
NDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVk
aWFTZXNzaW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3MDlENzkyMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
LmNwcCAqLzsgfTsKIAkJMDcwOUQ3OTMxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MDlENzkxMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEy
Myw2ICsxMjQsNyBAQAogCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9T
YW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3M0I4NzY3MUU0Mzg1QUMw
MDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRp
b1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRh
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc0MEIxNDQyNURF
MzFGODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQwQjE0MzI1REUzMUE5MDBF
MzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLzsgfTsKIAkJMDc0RTgy
QkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRD
IC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTA3NTAzM0E4MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXli
YWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0
eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4
MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07CkBAIC01Njg3LDYgKzU2ODksNyBA
QAogCQkwNzA3NTZEODE0MjM5QjRCMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJhY2tDdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2RDkxNDIzOUI0QzAwNDE0MTYxIC8qIEpTVGV4dFRyYWNr
Q3VlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRU
cmFja0N1ZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA3NTZEQTE0
MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3MDlENzhDMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA5RDc4RDFBRTU1NTU0MDA0
RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5h
Z2VyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk1lZGlh
U2Vzc2lvbk1hbmFnZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTc3
OCw2ICs1NzgxLDExIEBACiAJCTA3MkFFMUUzMTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQ
bHVnaW5SZXBsYWNlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzJBRTFF
NDE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuanMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBRdWlja1RpbWVQbHVnaW5SZXBsYWNl
bWVudC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyQ0E4NjAxNkNCNERDMzAw
OEFFMTMxIC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQkZCMjVEQjM4QkMwMEExMzUwRSAvKiBNZWRpYVNlc3Np
b25Db29yZGluYXRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkMwMzI1REM2QkQzMDBBMTM1MEUgLyogTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDUyNURDNkJEMzAw
QTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDcyREJDMDYyNURDNkVEQTAwQTEzNTBFIC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBwYXRoID0gLi4v
Li4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3MkRCQzA3MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBwYXRo
ID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDczNzk0REMxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9u
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENPZmZlckFuc3dlck9wdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0RTMxOUVFMkZGMjAwRTVB
MDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1JUQ0NvbmZpZ3VyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzM3OTRFNDE5RUUyRkYyMDBFNUEwNDUgLyogSlNSVENDb25maWd1cmF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUlRDQ29uZmlndXJhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTc5OSw2ICs1ODA3LDEwIEBACiAJCTA3M0I4
NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBBdWRpb1NhbXBsZURhdGFTb3VyY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERCQSAvKiBN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDBCMTQz
MjVERTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0NDcxRkQyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vz
c2lvblJlYWR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEg
LyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VCMUUwQzRBRTUwMDBE
MDk0NCAvKiBNb2NrQXVkaW9TaGFyZWRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1vY2tBdWRpb1NoYXJlZFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc0NEVDRUMxRTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNb2NrQXVkaW9TaGFyZWRVbml0
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ2RDMwQTIxNDZFQTM3MDAzRERG
ODQgLyogSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01OTE1LDYgKzU5MjcsNyBAQAogCQkwN0UxMTZCMDE0ODlDOUExMDBF
QzVBQ0UgLyogSlNUZXh0VHJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwN0UxMTcwNjE0ODlFQkVCMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdWVDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UzREZEMDFBOUU3ODY1
MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVBsYXliYWNrVGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTA3RTVGMzkyMjVFQUE5MUYwMEE4NTNBRCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0U5RTEyRDE4RjVF
Mjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0U5RTEyRjE4RjYyQjM3MDAx
MUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAw
MEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzQ3Nyw4ICsxNzQ5MCw4IEBACiAJCQkJMzEzNTkxMDMx
RTdEREM2MDAwRjMwNjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFN0YXRlLmggKi8sCiAJCQkJMDcyMjFC
QUExN0NGMEFENDAwODQ4RTUxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oICov
LAogCQkJCTQxQTQ4QTlEMUU4MzEyRUIwMEQyQUMyRCAvKiBSVENQZWVyQ29ubmVjdGlvblN0YXRl
LmggKi8sCi0JCQkJNDEzQ0MxMUMyNUU3RDk4RDAwRDU5QzRCIC8qIFJUQ1ByaW9yaXR5VHlwZS5o
ICovLAogCQkJCTQxMkJBNUZFMjE4QzY1MTgwMDM2NTQ3NCAvKiBSVENQTXV4UG9saWN5LmggKi8s
CisJCQkJNDEzQ0MxMUMyNUU3RDk4RDAwRDU5QzRCIC8qIFJUQ1ByaW9yaXR5VHlwZS5oICovLAog
CQkJCTQxMkRFNEI2MjE5Mjg1QkYwMDc1RjNBNyAvKiBSVENSdHBDYXBhYmlsaXRpZXMuaCAqLywK
IAkJCQk0MUUwQTdEQzIzQkI2M0RCMDA1NjEwNjAgLyogUlRDUnRwQ29kZWNDYXBhYmlsaXR5Lmgg
Ki8sCiAJCQkJMzFFQjU0REQxRTdEQzc0NDAwQzE2MjNCIC8qIFJUQ1J0cFRyYW5zY2VpdmVyRGly
ZWN0aW9uLmggKi8sCkBAIC0xOTU2MSw2ICsxOTU3NCw4IEBACiAJCQkJNTEwNThBREExRDY3OTI1
NzAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkUHJvdmlkZXIuaCAqLywKIAkJCQk0MTU3RUJGOTFFM0FC
MDY4MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk0
MTU3RUJGODFFM0FCMDY4MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgg
Ki8sCisJCQkJMDc0MEIxNDMyNURFMzFBOTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAgKi8sCisJCQkJMDc0MEIxNDEyNURFMzFBODAwRTM4REJBIC8qIE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvci5oICovLAogCQkJCTJENkYzRThBMUMxRUNCMUMwMDYxREJENCAv
KiBNb2NrUGFnZU92ZXJsYXkuY3BwICovLAogCQkJCTJENkYzRThCMUMxRUNCMUMwMDYxREJENCAv
KiBNb2NrUGFnZU92ZXJsYXkuaCAqLywKIAkJCQkyRDZGM0U4QzFDMUVDQjFDMDA2MURCRDQgLyog
TW9ja1BhZ2VPdmVybGF5LmlkbCAqLywKQEAgLTI2ODQ0LDYgKzI2ODU5LDggQEAKIAkJCQk1NTA2
NDBBRDI0MDc1NkRBMDBBQUUwNDUgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQuaCAqLywK
IAkJCQkwNTYyRjk2MDE1NzNGODhGMDAzMUNBMTYgLyogUGxhdGZvcm1MYXllci5oICovLAogCQkJ
CUNFRUZDRDdCMTlEQjMzREMwMDM4NzZENyAvKiBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIu
aCAqLywKKwkJCQkwN0U1RjM5MjI1RUFBOTFGMDBBODUzQUQgLyogUGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQkwNzI4NDdFMjE2RUJDNUIw
MDA0M0NGQTQgLyogUGxhdGZvcm1UZXh0VHJhY2suaCAqLywKIAkJCQkwNzRFODJCODE4QTY5RjBF
MDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmNwcCAqLywKIAkJCQkwNzRFODJCOTE4QTY5
RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8sCkBAIC0yODMwNSw4ICsyODMy
MiwxMyBAQAogCQkJCUNERERFQTM1MjUzOENFNzAwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rp
b25EZXRhaWxzLmlkbCAqLywKIAkJCQlDRERERUEzQTI1MzhFOUMyMDBBMTMwMEMgLyogTWVkaWFT
ZXNzaW9uQWN0aW9uSGFuZGxlci5oICovLAogCQkJCUNERERFQTM5MjUzOEU5QzIwMEExMzAwQyAv
KiBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCAqLywKKwkJCQkwNzJEQkMwNTI1REM2QkQz
MDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3MkRCQzAz
MjVEQzZCRDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovLAorCQkJCTA3
MkRCQkZCMjVEQjM4QkMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8s
CiAJCQkJQ0REREVBMjkyNTM4Q0RDQjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGUuaCAqLywKIAkJCQlDRERERUEyODI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZS5pZGwgKi8sCisJCQkJMDc0NDcxRkQyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlh
U2Vzc2lvblJlYWR5U3RhdGUuaCAqLywKKwkJCQkwNzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyog
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgKi8sCiAJCQkJQ0REREVBMjUyNTM4Q0RBQjAwQTEz
MDBDIC8qIE5hdmlnYXRvcitNZWRpYVNlc3Npb24uaWRsICovLAogCQkJCUNERERFQTI3MjUzOENE
QUIwMEExMzAwQyAvKiBOYXZpZ2F0b3JNZWRpYVNlc3Npb24uY3BwICovLAogCQkJCUNERERFQTI2
MjUzOENEQUIwMEExMzAwQyAvKiBOYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCAqLywKQEAgLTI4MzMz
LDYgKzI4MzU1LDggQEAKIAkJCQlDRERERUE0MDI1MzkxMURCMDBBMTMwMEMgLyogSlNNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmggKi8sCiAJCQkJQ0REREVBNEQyNTM5MTNCQjAwQTEzMDBDIC8q
IEpTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5jcHAgKi8sCiAJCQkJQ0REREVBNEUyNTM5MTNC
QzAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovLAorCQkJCTA3MkRC
QzA3MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywK
KwkJCQkwNzJEQkMwNjI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oICovLAogCQkJCUNERERFQTQ2MjUzOTExREQwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGUuY3BwICovLAogCQkJCUNERERFQTQyMjUzOTExREMwMEExMzAwQyAvKiBKU01l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCAqLywKIAkJCSk7CkBAIC0zMTE0NSw4ICszMTE2OSw2
IEBACiAJCQkJQ0RDMjZCNDExNjBBOENDRTAwMjY3NTdCIC8qIExlZ2FjeU1vY2tDRE0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExQkY2QjgzMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZp
bHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCNUIyOUYxQUFBODQ2RjAwOEI2MDQyIC8qIE1v
Y2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxMDU4QURDMUQ2
NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTEwNThB
REUxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxNTdFQkZCMUUzQUI2N0YwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJENkYzRTkxMUMxRUNCMkYwMDYxREJENCAvKiBN
b2NrUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOTdGMDQ4MTlERDQxNDAwMDFF
RTlDMyAvKiBNb2NrUGFnZU92ZXJsYXlDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzQyMjMs
NiArMzQyNDUsNyBAQAogCQkJCUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxv
Y2FsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VFRkNEN0MxOURCMzNEQzAwMzg3NkQ3IC8qIFBs
YXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwRTA5MTkx
ODc1RUVGQzAwM0ExRDNDIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwNzA4RjJCNjI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGOTQ0MTYxODY0RDA0NjAwNUQzMUNCIC8q
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1QzQ3
NjkwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzU5ODkwNTgxNEU5QzI5OTAwRThEMThCIC8qIFBsYXRmb3JtUGFzdGVib2FyZC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zNDU5Niw2ICszNDYxOSw3IEBACiAJCQkJMDc4RTA5NDIxN0QxNkUx
QzAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE5RTZFQzkyNTY2RDI3ODAwMkI1MDEwIC8qIFJUQ1BlZXJDb25uZWN0aW9uSWNl
RXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MjQxN0QxNEQxQzAwNDIwQUEx
IC8qIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxM0ND
MTFEMjVFN0Q5OEUwMEQ1OUM0QiAvKiBSVENQcmlvcml0eVR5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMTRGRTMyMjVCRUJEMTkwMDlEOUYyMCAvKiBSVENSdGNwUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEyREU0QjgyMTkyODVDMDAwNzVGM0E3IC8qIFJUQ1J0cENhcGFiaWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUUyQzQzNjMxQkNFRTMyQjAwMDFFMkJDIC8qIFJU
Q1J0cFJlY2VpdmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM1MDg4LDcgKzM1MTEyLDYgQEAKIAkJ
CQk3MTUzN0EwMTE0NkJEOUQ3MDA4QkQ2MTUgLyogU1ZHUGF0aERhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QTU5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODQ3NkM5RjAxMURGNkE1ODAwNTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxM0NDMTFEMjVFN0Q5OEUwMEQ1OUM0QiAvKiBSVENQcmlv
cml0eVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTVCMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQYXRoU2VnLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E4MTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzZDOUU2MTFERjZB
MEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLApAQCAt
MzYxMjYsNiArMzYxNDksNyBAQAogCQkJCTUxMDU4QURCMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2Nr
R2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTA1OEFERDFENjc5MkMxMDA5QTUzOEMg
LyogTW9ja0dhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTU3RUJGQTFF
M0FCNjc5MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTA3NDBCMTQ0MjVERTMxRjgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ2RjNFOTAxQzFFQ0IyNzAwNjFE
QkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDk3RjA0NzE5
REQ0MTNDMDAxRUU5QzMgLyogTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUExQUZFREU3MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9y
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDU5ZTRlYjQ5ZGU4OWJkNDdlZGMxMjk0YTkyM2VjNjNm
NTVhZjY3NzkuLjNiZDgzMGVmMTIxNTFhYzU2M2NmNWYyZjlkMTg1MmQ4YjUzYTEyZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAg
LTE3MSw2ICsxNzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oTWVkaWFRdWVy
eUxpc3RFdmVudCkgXAogICAgIG1hY3JvKE1lZGlhUmVjb3JkZXIpIFwKICAgICBtYWNybyhNZWRp
YVJlY29yZGVyRXJyb3JFdmVudCkgXAorICAgIG1hY3JvKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KSBcCiAgICAgbWFjcm8oTWVkaWFTb3VyY2UpIFwKICAgICBtYWNybyhNZWRpYVN0cmVhbSkgXAog
ICAgIG1hY3JvKE1lZGlhU3RyZWFtVHJhY2spIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4
IDYwMDhiMDgwZjBlODRjY2NkYzE1YzdjYzMyYmE1ZDM0MzNmYzZjZmEuLjQ2NWUzM2NhMmVmMjcx
NTg2OTgwNDJjZDBlODMzZWY3NTU0MjEwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAt
MTAxLDYgKzEwMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhjb25uZWN0aW5n
KSBcCiAgICAgbWFjcm8oY29udGV4dG1lbnUpIFwKICAgICBtYWNybyhjb250cm9sbGVyY2hhbmdl
KSBcCisgICAgbWFjcm8oY29vcmRpbmF0b3JjaGFuZ2UpIFwKICAgICBtYWNybyhjb3B5KSBcCiAg
ICAgbWFjcm8oY3VlY2hhbmdlKSBcCiAgICAgbWFjcm8oY3V0KSBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA2OTZlYTljZWJkMjFkMTQ5YWVhNWUwYmI2NDM3
YWNlZmI4Y2EyMDM0Li43YTJjMGE4ZDhjMDc2MTlkMGU2N2IyMjdhMzA0ZTYyYWNmODllZTcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTIzLDYgKzIzLDcg
QEAgTWVkaWFEZXZpY2VzIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogTWVkaWFLZXlTZXNzaW9u
IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQQogTWVkaWFRdWVyeUxpc3QKIE1lZGlhUmVjb3Jk
ZXIgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCitNZWRpYVNlc3Npb24gY29uZGl0aW9uYWw9TUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUgogTWVkaWFTb3VyY2UgY29uZGl0aW9uYWw9TUVESUFfU09V
UkNFCiBNZWRpYVN0cmVhbSBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KIE1lZGlhU3RyZWFtVHJh
Y2sgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU3RyaW5nQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5o
CmluZGV4IGNlMWMzYTU2ODJmZjFiN2RhMzk4ZjljM2E0NDBhNzQ5N2Q5MzJmMTkuLjY3OWZiOWM4
OWRhYTc4OGJiYmY1YTc1NzVkOWNkMjExOTA0NjI1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TdHJpbmdDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdD
YWxsYmFjay5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENhbGxiYWNr
UmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KGNvbnN0IFN0cmluZyYgZGF0YSkgPSAwOwogCiAgICAg
Ly8gSGVscGVyIHRvIHBvc3QgY2FsbGJhY2sgdGFzay4KLSAgICB2b2lkIHNjaGVkdWxlQ2FsbGJh
Y2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgZGF0YSk7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZUNhbGxiYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBjb25zdCBTdHJpbmcmIGRhdGEpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTE3ODUxMTM5
OWY0MTVmNzgxYjMyYWFlZTc2YzExM2ViMTdlYmNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlIHN0YXRlKQoreworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZU5v
dGhpbmciKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVNZXRhZGF0YSIp
LAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUN1cnJlbnREYXRhIiksCisg
ICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlRnV0dXJlRGF0YSIpLAorICAgICAg
ICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUVub3VnaERhdGEiKSwKKyAgICB9OworICAg
IHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcpLCAiTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhKSA9PSAxLCAi
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGlzIG5vdCAxIGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0
YSkgPT0gMiwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSBpcyBub3Qg
MiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlRnV0dXJlRGF0YSkgPT0gMywgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVE
YXRhIGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2Fz
dDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJl
YWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhKSA9PSA0LCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6
SGF2ZUVub3VnaERhdGEgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihzdGF0ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJl
dHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSldOworfQorCitTdHJpbmcgY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIk5vbmUiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlBhdXNl
ZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGxheWluZyIpLAorICAgIH07
CisgICAgc3RhdGljX2Fzc2VydCghc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lKSwgIk1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkKSA9PSAxLCAiTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpID09IDIsICJNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7Cisg
ICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2
YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpXTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWFiZGNjYTAyZGJkMTJlZGRhNjI0MmI1NGI1ODczNWMzNWQ2YmFiYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgorI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxQbGF0Zm9ybU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCisgICAgdXNpbmcgU2Vla0NvbXBsZXRlZENhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vla1Rv
KGRvdWJsZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHVzaW5nIFBsYXlD
b21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CisgICAgdmlydHVh
bCB2b2lkIHBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHVzaW5nIFBh
dXNlQ29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworICAgIHZp
cnR1YWwgdm9pZCBwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHVz
aW5nIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
OworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNrQ29tcGxl
dGVkQ2FsbGJhY2smJikgPSAwOworCisgICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiBs
b2dnZXIsIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCisgICAgeworICAgICAgICBtX2xvZ2dl
ciA9IG1ha2VSZWZQdHIobG9nZ2VyKTsKKyAgICAgICAgbV9sb2dJZGVudGlmaWVyID0gbG9nSWRl
bnRpZmllcjsKKyAgICB9CisKKyAgICBzdHJ1Y3QgTWVkaWFQb3NpdGlvblN0YXRlIHsKKyAgICAg
ICAgZG91YmxlIGR1cmF0aW9uID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0
eSgpOworICAgICAgICBkb3VibGUgcGxheWJhY2tSYXRlID0gMTsKKyAgICAgICAgZG91YmxlIHBv
c2l0aW9uID0gMDsKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBNZWRpYVNlc3Npb25SZWFkeVN0
YXRlIDogdWludDhfdCB7CisgICAgICAgIEhhdmVOb3RoaW5nLAorICAgICAgICBIYXZlTWV0YWRh
dGEsCisgICAgICAgIEhhdmVDdXJyZW50RGF0YSwKKyAgICAgICAgSGF2ZUZ1dHVyZURhdGEsCisg
ICAgICAgIEhhdmVFbm91Z2hEYXRhLAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIE1lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUgOiB1aW50OF90IHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgUGF1
c2VkLAorICAgICAgICBQbGF5aW5nLAorICAgIH07CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9zaXRp
b25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXli
YWNrU3RhdGUpID0gMDsKKworcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKKyAgICBjb25zdCBMb2dnZXIqIGxvZ2dl
clB0cigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CisgICAgY29uc3Qgdm9pZCog
bG9nSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIGNv
bnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yIjsgfQorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25z
dCB7IHJldHVybiBMb2dNZWRpYTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxjb25zdCBMb2dn
ZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKK307CisKK1N0
cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlKTsKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlKTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNjY5NTQ4NjBl
NDEyY2ViNDlkNDkwMzdiNDMwNzNlYjlmYjIwNTYwZS4uZTU4ODJhNjJkMTcxYzE5OGU5YTlhMDU5
NzMzMjdjMWMyOTJlNDYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
MzMzLDYgKzMzMywxMiBAQAogI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4K
ICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisjaW5jbHVk
ZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCIKKyNlbmRp
ZgorCiB1c2luZyBKU0M6OkNhbGxEYXRhOwogdXNpbmcgSlNDOjpDb2RlQmxvY2s7CiB1c2luZyBK
U0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTsKQEAgLTYwMjUsOCArNjAzMSwzMCBAQCBFeGNlcHRpb25P
cjx2b2lkPiBJbnRlcm5hbHM6OnNlbmRNZWRpYVNlc3Npb25BY3Rpb24oTWVkaWFTZXNzaW9uJiBz
ZXNzaW9uLCBjb25zdAogICAgIH0KICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IgfTsKIH0KKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorRXhj
ZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpyZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8U3RyaW5nQ2FsbGJh
Y2s+JiYgbGlzdGVuZXIpCit7CisgICAgaWYgKG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5kb21XaW5kb3coKSkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgaWYgKCFk
b2N1bWVudC0+c2V0dGluZ3MoKS5tZWRpYVNlc3Npb25Db29yZGluYXRvckVuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgYXV0
byYgc2Vzc2lvbiA9IE5hdmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uKGRvY3VtZW50
LT5kb21XaW5kb3coKS0+bmF2aWdhdG9yKCkpOworICAgIG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IgPSBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6c2luZ2xldG9uKGNvbnRleHQsIFdURk1vdmUobGlzdGVuZXIpKSk7CisgICAgc2Vz
c2lvbi5zZXRDb29yZGluYXRvcihtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmdldCgpKTsKKwor
ICAgIHJldHVybiB7IH07Cit9CiAjZW5kaWYKIAorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNT
SU9OKQorCiBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHN0cmluZyhQYXJ0aWFsT3JkZXJpbmcgb3Jk
ZXJpbmcpCiB7CiAgICAgaWYgKGlzX2x0KG9yZGVyaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCmluZGV4IDdlYmE2NTc4OWY4YmZkMmYyNjZiMzc0Mzk2NzM1NmY0MjA2YmQ5ZDguLjFk
ZWNjOWI1OGNlZjVmNzU4N2IwNWJlNTJkMmJlYjRhMjljZWNkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaApAQCAtMTM0LDYgKzEzNCw5IEBAIGNsYXNzIFdlYlhSVGVzdDsKICNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTikKIGNsYXNzIE1lZGlhU2Vzc2lvbjsKIHN0cnVjdCBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQorY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CisjZW5kaWYKICNlbmRpZgogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CkBAIC0xMDcy
LDYgKzEwNzUsMTEgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIEV4
Y2VwdGlvbk9yPGRvdWJsZT4gY3VycmVudE1lZGlhU2Vzc2lvblBvc2l0aW9uKGNvbnN0IE1lZGlh
U2Vzc2lvbiYpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNlbmRNZWRpYVNlc3Npb25BY3Rpb24o
TWVkaWFTZXNzaW9uJiwgY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYpOworCisjaWYg
RU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJik7CisjZW5kaWYKKwogI2VuZGlmCiAKICAgICBl
bnVtIFRyZWVUeXBlIDogdWludDhfdCB7IFRyZWUsIFNoYWRvd0luY2x1ZGluZ1RyZWUsIENvbXBv
c2VkVHJlZSB9OwpAQCAtMTExNCw2ICsxMTIyLDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdF
QlhSKQogICAgIFJlZlB0cjxXZWJYUlRlc3Q+IG1feHJUZXN0OwogI2VuZGlmCisKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I+IG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CisjZW5kaWYKKwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4
IGQzYzUzMjJhODI4OGIyOWM4ZTQ4ZjkwZjYzMjUwZWE4ZjNkNzZlNjkuLmNlNzE0YTRlZjJlOWJl
NjNlODA1ODZmNGQ0M2E3MWVkZmIxOTk4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKQEAgLTk2OSw2ICs5NjksNyBAQCBlbnVtIFRyZWVUeXBlIHsKIAogICAgIFtDb25kaXRp
b25hbD1NRURJQV9TRVNTSU9OLCBNYXlUaHJvd0V4Y2VwdGlvbl0gZG91YmxlIGN1cnJlbnRNZWRp
YVNlc3Npb25Qb3NpdGlvbihNZWRpYVNlc3Npb24gc2Vzc2lvbik7CiAgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NFU1NJT04sIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2VuZE1lZGlhU2Vz
c2lvbkFjdGlvbihNZWRpYVNlc3Npb24gc2Vzc2lvbiwgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWls
cyBhY3Rpb25EZXRhaWxzKTsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUiwgTWF5VGhyb3dFeGNlcHRpb24sIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IHVuZGVmaW5lZCByZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTdHJpbmdDYWxs
YmFjayBjYWxsYmFjayk7CiAKICAgICBET01TdHJpbmcgdHJlZU9yZGVyKE5vZGUgYSwgTm9kZSBi
LCBvcHRpb25hbCBUcmVlVHlwZSB0cmVlID0gIlRyZWUiKTsKICAgICBET01TdHJpbmcgdHJlZU9y
ZGVyQm91bmRhcnlQb2ludHMoTm9kZSBjb250YWluZXJBLCB1bnNpZ25lZCBsb25nIG9mZnNldEEs
IE5vZGUgY29udGFpbmVyQiwgdW5zaWduZWQgbG9uZyBvZmZzZXRCLCBvcHRpb25hbCBUcmVlVHlw
ZSB0cmVlID0gIlRyZWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjBhNGJkMzliMzFhZDRm
ZTc4ZWNmZTI2ZTI0YzRlODZjMzFhZTA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0wLDAgKzEsMTA3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIlN0cmluZ0NhbGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9VVUlELmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Im
IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2luZ2xldG9uKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjb29y
ZGluYXRvcihjb250ZXh0LCBXVEZNb3ZlKGxpc3RlbmVyKSk7CisgICAgcmV0dXJuIGNvb3JkaW5h
dG9yOworfQorCitNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8U3RyaW5n
Q2FsbGJhY2s+JiYgbGlzdGVuZXIpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1f
c3RhdGVDaGFuZ2VMaXN0ZW5lcihXVEZNb3ZlKGxpc3RlbmVyKSkKK3sKK30KKwordm9pZCBNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgU2Vla0NvbXBsZXRl
ZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJ
REVOVElGSUVSLCB0aW1lKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAg
ICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6cGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBB
TFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1fY29udGV4dC0+cG9z
dFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK3ZvaWQg
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNr
JiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVS
KTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjaygp
OworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJh
Y2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7
CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRl
eHQtPnBvc3RUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQor
Cit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQo
T3B0aW9uYWw8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFQb3NpdGlvblN0
YXRlPikKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAg
IG1fc3RhdGVDaGFuZ2VMaXN0ZW5lci0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCks
ICJwb3NpdGlvblN0YXRlQ2hhbmdlZCIpOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BP
U1NJQkxFKExPR0lERU5USUZJRVIsIHN0YXRlKTsKKyAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXIt
PnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgpLCAicmVhZHlTdGF0ZUNoYW5nZWQiKTsK
K30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFu
Z2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGUgc3RhdGUpCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVS
LCBzdGF0ZSk7CisgICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1f
Y29udGV4dC5nZXQoKSwgInBsYXliYWNrU3RhdGVDaGFuZ2VkIik7Cit9CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTcxYWZlNWE1MzhhZjk4ZGU0ZWRlYWYxYTNjZDRjYzYwODA5ZTQ3ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgK
QEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1
ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBTdHJpbmdDYWxsYmFjazsKKworY2xhc3MgTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0
YXRpYyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3ImIHNpbmdsZXRvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKKworICAgIE1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPFN0cmluZ0Nh
bGxiYWNrPiYmKTsKKyAgICB2aXJ0dWFsIH5Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9
IGRlZmF1bHQ7CisKK3ByaXZhdGU6CisKKyAgICB2b2lkIHNlZWtUbyhkb3VibGUsIFNlZWtDb21w
bGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHBsYXkoUGxheUNvbXBsZXRlZENhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgcGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmKSBm
aW5hbDsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tDb21wbGV0ZWRD
YWxsYmFjayYmKSBmaW5hbDsKKworICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9u
YWw8TWVkaWFQb3NpdGlvblN0YXRlPikgZmluYWw7CisgICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdl
ZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKKyAgICB2b2lkIHBsYXliYWNrU3RhdGVD
aGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpIGZpbmFsOworCisgICAgUmVmPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29udGV4dDsKKyAgICBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+
IG1fc3RhdGVDaGFuZ2VMaXN0ZW5lcjsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY2ODJkMzhlODZmMzMzNWM5NjU5NDQzMDFh
ZTMxYTBlYzU4MzYwZjUuLjA1YjE1MDM2NmVlYTI1ODIyOTQyOWU2MDA1ZmY2YmZiMWY2MjE4NDUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0xOCAgRXJpYyBDYXJsc29uICA8ZXJpYy5j
YXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBFeHBlcmltZW50YWwgTWVk
aWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0NTA4ODYyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zZXNzaW9uL21vY2st
Y29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1z
ZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbDogQWRkZWQuCisKIDIwMjEtMDItMjYgIExhdXJv
IE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIE1vdmUgc29tZSBj
c3MzIGJsZW5kaW5nIGJhc2VsaW5lcyB0byBnbGliIGFuZCB1cGRhdGUgZXhwZWN0YXRpb25zCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBkOTVkNDBmNjEzY2Y3NzgxZTQxY2VmMDNkZjc5ZTdiNjM2NDY5
NGYzLi42NzdlNDZkZDQzZmZjZDFjMDQyN2IyMzQ4Mjg1ZjM5YWRiMzk4Yjg4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTQ2NTYsNiArNDY1Niw3IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L3dyCiAj
IENvY29hLW9ubHkKIGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1oZHItc3dpdGNoLmh0bWwgWyBT
a2lwIF0KIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tY2FucGxheXRocm91Z2gtd2VibS5odG1sIFsg
U2tpcCBdCittZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbCBbIFNraXAg
XQogCiAjIFRoZXNlIHRlc3RzIHJlbHkgb24gd2Via2l0LXRlc3QtcnVubmVyIGZsYWdzIHRoYXQg
YXJlbid0IGltcGxlbWVudGVkIGZvciBEdW1wUmVuZGVyVHJlZSwgc28gdGhleSB3aWxsIGZhaWwg
dW5kZXIgbGVnYWN5IFdlYktpdC4KIGVkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZG8uaHRtbCBbIEZh
aWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2Nr
LWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Np
b24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQ1OGRiMTAyZmJj
MDA0OTg4Y2RlY2NhZWI0OTRiN2FiMjU2NDk1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMiBAQAorRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0
b3IgPT0gJ3VuZGVmaW5lZCcpIE9LCitSVU4oaW50ZXJuYWxzLnJlZ2lzdGVyTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKCkpCitFVkVOVChjb29yZGluYXRvcmNoYW5nZSkKK0VYUEVDVEVEIChu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yICE9ICd1bmRlZmluZWQnKSBPSworCitS
VU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5KCkpCitFWFBFQ1RFRCAo
bGF0ZXN0QWN0aW9uICE9ICdwbGF5JykgT0sKK0FDVElPTjogcGxheQorRVhQRUNURUQgKGxhdGVz
dEFjdGlvbiA9PSAncGxheScpIE9LCisKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yLnBhdXNlKCkpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uICE9ICdwYXVzZScpIE9LCitB
Q1RJT046IHBhdXNlCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdwYXVzZScpIE9LCisKK1JV
TihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnNlZWtUbygxMCkpCitFWFBFQ1RF
RCAobGF0ZXN0QWN0aW9uICE9ICdzZWVrdG8nKSBPSworQUNUSU9OOiBzZWVrdG8KK0VYUEVDVEVE
IChsYXRlc3RBY3Rpb24gPT0gJ3NlZWt0bycpIE9LCisKK0VORCBPRiBURVNUCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzMwZDk1MzAzYzAxM2I3OWZjZWU0ZThlODNhZDJkOTVjY2U1MDU5YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29y
ZGluYXRvci5odG1sCkBAIC0wLDAgKzEsMTE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPHRpdGxlPm1vY2stbWVkaWFzZXNzaW9uLWNvb3JkaW5hdG9yPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKworICAgIGZ1bmN0aW9uIGNoYW5nZUhhbmRsZXIoY2hhbmdlKQorICAgIHsKKyAgICAgICAg
d2luZG93LmxhdGVzdENoYW5nZSA9IGNoYW5nZTsKKyAgICB9CisgICAgCisgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAgICAgIAorICAgICAg
ICB3aW5kb3cubGF0ZXN0QWN0aW9uID0gJyc7CisgICAgICAgIHdpbmRvdy5sYXRlc3RDaGFuZ2Ug
PSAnJzsKKworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZh
aWxUZXN0KCdUaGlzIHRlc3QgcmVxdWlyZXMgSW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworCisgICAgICAgIGNvbnN0IGNoYW5nZVByb21pc2UgPSBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uYWRk
RXZlbnRMaXN0ZW5lcignY29vcmRpbmF0b3JjaGFuZ2UnLCAoZXZlbnQpID0+IHsKKyAgICAgICAg
ICAgICAgICBjb25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZlbnQudHlwZX0pYCk7CisgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAg
IGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGhlcmUgc2hvdWxkIGJl
IG5vIG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciBpbml0aWFsbHkuJykKKworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3InLCB1bmRlZmluZWQp
OworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVz
dCB0aGF0IG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcmNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVu
IGl0IGNoYW5nZXMuJykKKworICAgICAgICBydW4oJ2ludGVybmFscy5yZWdpc3Rlck1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcihjaGFuZ2VIYW5kbGVyKScpOworCisgICAgICAgIGF3YWl0IGNo
YW5nZVByb21pc2U7CisgICAgICAgIAorICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5t
ZWRpYVNlc3Npb24uY29vcmRpbmF0b3InLCB1bmRlZmluZWQsICchPScpOworCisgICAgICAgIGNv
bnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB0aGF0IG1lZGlhU2Vz
c2lvbiBhY3Rpb24gaGFuZGxlcnMgYXJlIGNhbGxlZCBieSB0aGUgY29vcmRpbmF0b3IuJykKKwor
ICAgICAgICBsZXQgYWN0aW9ucyA9IFsncGxheScsICdwYXVzZScsICdzZWVrdG8nXTsKKyAgICAg
ICAgYWN0aW9ucy5mb3JFYWNoKGFjdGlvbiA9PiB7CisgICAgICAgICAgICBuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLnNldEFjdGlvbkhhbmRsZXIoYWN0aW9uLCBhY3Rpb25EZXRhaWxzID0+IHsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEFDVElPTjogJHthY3Rpb25EZXRhaWxzLmFjdGlv
bn1gKTsKKyAgICAgICAgICAgICAgICBsYXRlc3RBY3Rpb24gPSBhY3Rpb25EZXRhaWxzLmFjdGlv
bjsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIGxldCB0
ZXN0QWN0aW9uID0gYXN5bmMgKGFjdGlvbikgPT4geworICAgICAgICAgICAgbGV0IGNvbW1hbmQ7
CisgICAgICAgICAgICBpZiAoYWN0aW9uID09ICdzZWVrdG8nKQorICAgICAgICAgICAgICAgIGNv
bW1hbmQgPSAnc2Vla1RvKDEwKScKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBj
b21tYW5kID0gYCR7YWN0aW9ufSgpYDsKKworICAgICAgICAgICAgcnVuKGBuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLmNvb3JkaW5hdG9yLiR7Y29tbWFuZH1gKTsKKyAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgnbGF0ZXN0QWN0aW9uJywgYWN0aW9uLCAnIT0nKTsKKyAgICAgICAgICAgIGF3YWl0IHRl
c3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2xhdGVzdEFjdGlvbicsIGFjdGlvbiwgJz09JywgMTAwKTsK
KyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIH07CisKKyAgICAgICAgZm9y
IChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpCisgICAgICAgICAgICBhd2FpdCB0ZXN0QWN0aW9uKGFj
dGlvbik7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgbWVkaWFTZXNzaW9uIG5v
dGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcG9zaXRpb25TdGF0ZSBjaGFuZ2VzLicpCisgICAgICAg
IHJ1bignbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKHsgZHVyYXRpb246
IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSknKTsKKyAgICAgICAgYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3Bvc2l0aW9uU3RhdGVDaGFuZ2Vk
JywgJz09JywgMTAwKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25z
b2xlV3JpdGUoJ1Rlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hl
biByZWFkeVN0YXRlIGNoYW5nZXMuJykKKyAgICAgICAgbGV0IHByZXZpb3VzU3RhdGUgPSAnaGF2
ZU5vdGhpbmcnOworICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBbJ2hhdmVNZXRhZGF0YScsICdo
YXZlQ3VycmVudERhdGEnLCAnaGF2ZUZ1dHVyZURhdGEnLCAnaGF2ZUVub3VnaERhdGEnLCAnaGF2
ZU5vdGhpbmcnXSkgeworICAgICAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKworICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBwcmV2
aW91c1N0YXRlKTsKKworICAgICAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7CisgICAgICAgICAg
ICBydW4oYG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICcke3N0YXRlfSdgKTsK
KworICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdl
JywgJ3JlYWR5U3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsKKworICAgICAgICAgICAgdGVzdEV4
cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBzdGF0ZSk7CisgICAg
ICAgICAgICBwcmV2aW91c1N0YXRlID0gc3RhdGU7CisgICAgICAgIH07CisKKyAgICAgICAgY29u
c29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgbWVkaWFTZXNz
aW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcGxheWJhY2tTdGF0ZSBjaGFuZ2VzLicpCisg
ICAgICAgIHByZXZpb3VzU3RhdGUgPSAnbm9uZSc7CisgICAgICAgIGZvciAobGV0IHN0YXRlIG9m
IFsncGF1c2VkJywgJ3BsYXlpbmcnLCAnbm9uZSddKSB7CisgICAgICAgICAgICBjb25zb2xlV3Jp
dGUoJycpOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Np
b24ucGxheWJhY2tTdGF0ZScsIHByZXZpb3VzU3RhdGUpOworCisgICAgICAgICAgICBsYXRlc3RD
aGFuZ2UgPSAnJzsKKyAgICAgICAgICAgIHJ1bihgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5
YmFja1N0YXRlID0gJyR7c3RhdGV9J2ApOworCisgICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0
ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAncGxheWJhY2tTdGF0ZUNoYW5nZWQnLCAnPT0n
LCAxMDApOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Np
b24ucGxheWJhY2tTdGF0ZScsIHN0YXRlKTsKKyAgICAgICAgICAgIHByZXZpb3VzU3RhdGUgPSBz
dGF0ZTsKKyAgICAgICAgfTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBl
bmRUZXN0KCk7CisgICAgfSwge29uY2U6IHRydWV9KTsKKworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFjNzQxMjE2
NjUyOThjNmYyMmQyYTM4NmE1MDY3MDM4ZjkxNTVmOGQuLmJkNzg3YmUxNzY3YzAyZjg2Y2U3NjZk
MjIxNWNjMjU0MmU4ZTdiZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMjY3LDcgKzIyNjcsNiBAQCB3ZWJraXQub3JnL2IvMjIwMzMyIFsgQmlnU3Vy
KyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWltZXNuaWZmL21pbWUtdAogd2Vi
a2l0Lm9yZy9iLzIyMTE1MiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9k
ZS1hdXRvbWF0aWMtcHVsbC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9y
Zy9iLzIyMTQ5MSBhbmltYXRpb25zL2tleWZyYW1lLXBzZXVkby1zaGFkb3cuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8yMjE5NzMgWyBCaWdTdXIgXSBwbGF0Zm9ybS9tYWMt
Ymlnc3VyL21lZGlhL21lZGlhLXdlYm0tbm8tZHVyYXRpb24uaHRtbCBbIEZhaWx1cmUgXQogCiB3
ZWJraXQub3JnL2IvMjIxOTM1IG1lZGlhL3dlYmF1ZGlvLWJhY2tncm91bmQtcGxheWJhY2suaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423401</attachid>
            <date>2021-03-16 14:32:36 -0700</date>
            <delta_ts>2021-03-23 14:50:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222158-20210316143235.patch</filename>
            <type>text/plain</type>
            <size>105546</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhMmM5MTVmMmZhOGM3MWRmNjA4MjNj
NTFjOTg3ZmQ3MGM1OTIxNGQuLjE1ZWQ3N2M4ZGEyOGY2MzRhMjg0Mzg4OTVkODJiYjIwYTMyMWMz
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAzLTExICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIFdvcmtRdWV1ZTo6bWFpbigp
IHRvIGdldCB0aGUgbWFpbiB0aHJlYWQncyB3b3JrIHF1ZXVlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI5NDE5
MzQwMTY5MTljNGQ0ZTI1NzBmNTIwYWJhM2IxZTRkMTBlOS4uNGRhYmQ3MWQ0YWRhYTBlNWUwYjVk
OTU3N2ZlYjk2YmQ1ZGFmYmEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIxLTAy
LTE4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gQWRkIEV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE1OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzQ1MDg4NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5h
dG9yLmh0bWwKKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1l
dGFkYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhTWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhTWV0YWRhdGFJbml0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFN
ZXRhZGF0YUluaXQ6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFNZXRhZGF0YUluaXQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldE1ldGFkYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uOjpzZXRQbGF5bGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb246OmNhbGxBY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29v
cmRpbmF0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlz
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6bmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmll
cik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25D
b29yZGluYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
c2Vla1RvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aDogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9n
SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6bG9nQ2xhc3NOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvci5pZGw6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVz
Lmg6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TG9n
Z2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmxvZ2dlclB0ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVs
IGNvbnN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaDogTmV3LgorCiAyMDIxLTAzLTExICBBbGV4ZXkgU2h2YXlrYSAg
PHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBBbGlnbiBKU0dsb2JhbE9iamVjdDo6
ZGVmaW5lT3duUHJvcGVydHkoKSB3aXRoIHRoZSBzcGVjIGFuZCBvdGhlciBydW50aW1lcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA0NzNhYmM2Y2I1MDBjZTc0NjBiMTI2MTRkY2Vh
YzE0YWMwZGU3ZjRiLi5kOTAwZmIyNzJkYjA3MGIyOWE3ZTczYTM4ODFiOGY5ZmI1OTRkY2U3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNjA5LDYgKzYwOSwxOSBAQCBNZWRpYVJl
Y29yZGVyRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFi
bGVOYW1lOiAiRXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvciBBUEkiCisgIGh1
bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9u
IGNvb3JkaW5hdG9yIEFQSSIKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3Jl
OgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTWVkaWFTZXNzaW9uRW5hYmxlZDoKICAgdHlwZTog
Ym9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIk1lZGlhIFNlc3Npb24gQVBJIgpAQCAtNjIyLDYg
KzYzNSwxOSBAQCBNZWRpYVNlc3Npb25FbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZh
dWx0OiBmYWxzZQogCitNZWRpYVNlc3Npb25QbGF5bGlzdEVuYWJsZWQ6CisgIHR5cGU6IGJvb2wK
KyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIHBsYXlsaXN0
IEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGV4cGVyaW1lbnRhbCBN
ZWRpYVNlc3Npb24gcGxheWxpc3QgQVBJIgorICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TRVNT
SU9OX1BMQVlMSVNUKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdl
YkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBNb2RlbEVsZW1lbnRFbmFibGVkOgogICB0
eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiSFRNTCA8bW9kZWw+IGVsZW1lbnQiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggMjQzZGYyNWE2NzZkNzlkYjdkMzg1
YjU3YjdjMjNjN2QwZGM5ZWFlOS4uZjkwOTkxOTczZTRhZjAzZjFmODY2MDAxZWI0MjQ0MTJlNjc5
ODRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApAQCAtMzI0LDYgKzMyNCwx
NCBAQAogI2RlZmluZSBFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUIDEKICNlbmRpZgogCisj
aWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpICYmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEyMDAwMAorI2RlZmlu
ZSBFTkFCTEVfTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNUKSAmJiBQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMjAwMDAKKyNkZWZpbmUgRU5BQkxFX01F
RElBX1NFU1NJT05fUExBWUxJU1QgMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfTUVE
SUFfU0VTU0lPTikgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQog
I2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTiAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggMWEwNmIwZjM0ZDcxOGE4NjU0ZDQwNzFhZDc2N2Y4YjdhMzRjYmQ3NC4uMzJlZTgyNjYy
N2ExOTVkNDRmMjFlZmQ5MDM0NDY0NGIyNWU2M2VlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTMzNiw3ICszMzYsOSBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKICAgICBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbAogICAgIE1vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaWRsCisgICAgTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL05h
dmlnYXRvcitNZWRpYVNlc3Npb24uaWRsCiAKICAgICBNb2R1bGVzL21lZGlhc291cmNlL0F1ZGlv
VHJhY2srTWVkaWFTb3VyY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAppbmRleCAwNmFkOGZlYjA2OGZiOWVkMDkzYmQzOGM0MWJmMzk5M2U1
MmNjNzNkLi4yOGY2ZDc2OThhNGRlODI4NDFmYThlODg3NTA0NWUwNTc3MjAyMTJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE3OCw3
ICsxNzgsOSBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25B
Y3Rpb24uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwKKyQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3IrTWVkaWFTZXNzaW9u
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNvdXJjZS9BdWRpb1RyYWNrK01lZGlh
U291cmNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNvdXJjZS9ET01VUkwrTWVk
aWFTb3VyY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CmluZGV4IGFjZjNkMDYyYzBhNjkzZDk5NDEzMDhjNTJiMzIzODhhNzg4NjE4NWMu
LjdjNDIwNTUwNTc0NTMzYzhjNWEwMzdjODdlMjc4MDc1NmNiNzM4ZDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzEyLDggKzEz
MTIsMTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
ZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9u
SGFuZGxlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25SZWFk
eVN0YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU291cmNlLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW0uY3BwCkBAIC0xMzQ4LDYg
KzEzNTIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01vY2tDRE1GYWN0b3J5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNb2NrQ0RNRmFjdG9yeS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3MuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tQYWdlT3Zl
cmxheS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TW9ja1BhZ2VPdmVybGF5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTW9ja1BheW1lbnRBZGRyZXNzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKaW5kZXggN2YzMmViMWRlZDc3OThlNDQyNjhiZGNlYzZkMmNhYjg5N2RjMmMxYS4uZmU1ZjAx
ZTIxYjU5M2YwNTk5OTk3YWE0NmJkNmMyYTBhYzY0MGRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0yMTIsNyArMjEyLDkgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uQWN0aW9uSGFuZGxlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvcitNZWRpYVNlc3Npb24u
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
RG91YmxlUmFuZ2UuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAKaW5kZXggZjZmZjMxZmIwOGRkNDk4MWEzYmNlOTAz
OTJiZGJkMmNkYTVmY2RiNi4uOWRhMjAxNTIwZjQ4YmY1MTFiYTllMGM3OWRhNzBjNDZjNDA1NTBh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFNZXRhZGF0YS5jcHAKQEAgLTQyLDYgKzQyLDkgQEAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhTWV0
YWRhdGE+PiBNZWRpYU1ldGFkYXRhOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY28K
ICAgICAgICAgbWV0YWRhdGEtPnNldFRpdGxlKGluaXQtPnRpdGxlKTsKICAgICAgICAgbWV0YWRh
dGEtPnNldEFydGlzdChpbml0LT5hcnRpc3QpOwogICAgICAgICBtZXRhZGF0YS0+c2V0QWxidW0o
aW5pdC0+YWxidW0pOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgICAg
ICBtZXRhZGF0YS0+c2V0VHJhY2tJZGVudGlmaWVyKGluaXQtPnRyYWNrSWRlbnRpZmllcik7Cisj
ZW5kaWYKICAgICAgICAgYXV0byBwb3NzaWJsZUV4Y2VwdGlvbiA9IG1ldGFkYXRhLT5zZXRBcnR3
b3JrKGNvbnRleHQsIFdURk1vdmUoaW5pdC0+YXJ0d29yaykpOwogICAgICAgICBpZiAocG9zc2li
bGVFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgcG9zc2libGVFeGNlcHRpb24uZXhjZXB0aW9uKCkgfTsKQEAgLTEwNSw2ICsxMDgsMTcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFNZXRhZGF0YTo6c2V0QXJ0d29yayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBWZWMKICAgICByZXR1cm4geyB9OwogfQogCisjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT05fUExBWUxJU1QpCit2b2lkIE1lZGlhTWV0YWRhdGE6OnNldFRyYWNrSWRl
bnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCit7CisgICAgaWYgKG1fbWV0YWRhdGEu
dHJhY2tJZGVudGlmaWVyID09IGlkZW50aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
bWV0YWRhdGEudHJhY2tJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAgICBtZXRhZGF0YVVwZGF0
ZWQoKTsKK30KKyNlbmRpZgorCiB2b2lkIE1lZGlhTWV0YWRhdGE6Om1ldGFkYXRhVXBkYXRlZCgp
CiB7CiAgICAgaWYgKG1fc2Vzc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaAppbmRleCAzMGUwOTNkNmQyN2RkYjc0MTUyODFl
ZThiNWQxMDA0ZWZjZmFhNWRhLi44NTQ4NjljNjM2YzM3NTBlZDc5OWFlOTM2NjliZjUyYWFjNTA1
Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFNZXRhZGF0YS5oCkBAIC01OSw2ICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9y
PE1lZGlhSW1hZ2U+JiBhcnR3b3JrKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YS5hcnR3b3Jr
OyB9CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QXJ0d29yayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgVmVjdG9yPE1lZGlhSW1hZ2U+JiYpOwogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05f
UExBWUxJU1QpCisgICAgY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllcjsgfQorICAgIHZvaWQgc2V0VHJhY2tJZGVu
dGlmaWVyKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAgICBjb25zdCBNZWRpYVNlc3Npb25N
ZXRhZGF0YSYgbWV0YWRhdGEoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhOyB9CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGEuaWRsCmluZGV4IGIyOGU5OWQzYjc5ZTVlZTYxYzYxY2VkNzk4MWMzY2IyMDdlMzgx
MjEuLmU2MjRlYmM0OGVlMWZlMGIwY2E2ZGIxMjQ3MWUyMjExOTVhMTdjNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRs
CkBAIC0zMyw0ICszMyw2IEBACiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhcnRpc3Q7CiAgICAg
YXR0cmlidXRlIERPTVN0cmluZyBhbGJ1bTsKICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxN
ZWRpYUltYWdlPiBhcnR3b3JrOworCisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fUExB
WUxJU1QsIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxheWxpc3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgdHJhY2tJZGVudGlmaWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oCmluZGV4IDY2OWRlZmZh
MmQ2OTQwODVmMDhmMTBkZjFiOTE2ZWY0NGU4ODVlMGQuLmQ4NmY5MTI5MzM0MWQyZDkwNTQzNTEz
ZGJhODUzZTc0NTYxNGNjOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaApAQCAtMzUsNiArMzUsOSBAQCBzdHJ1
Y3QgTWVkaWFNZXRhZGF0YUluaXQgewogICAgIFN0cmluZyB0aXRsZTsKICAgICBTdHJpbmcgYXJ0
aXN0OwogICAgIFN0cmluZyBhbGJ1bTsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElT
VCkKKyAgICBTdHJpbmcgdHJhY2tJZGVudGlmaWVyOworI2VuZGlmCiAgICAgVmVjdG9yPE1lZGlh
SW1hZ2U+IGFydHdvcms7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CkBAIC00MywyOCArNDYsNDAgQEAgc3RydWN0IE1lZGlhTWV0YWRh
dGFJbml0IHsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQgTWVkaWFNZXRh
ZGF0YUluaXQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIg
PDwgdGl0bGUgPDwgYXJ0aXN0IDw8IGFsYnVtIDw8IGFydHdvcms7CisgICAgZW5jb2RlciA8PCB0
aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0KKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElT
VCkKKyAgICA8PCB0cmFja0lkZW50aWZpZXIKKyNlbmRpZgorICAgIDw8IGFydHdvcms7CiB9CiAK
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlubGluZSBPcHRpb25hbDxNZWRpYU1ldGFkYXRhSW5p
dD4gTWVkaWFNZXRhZGF0YUluaXQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIFN0
cmluZyB0aXRsZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRpdGxlKSkKLSAgICAgICAgcmV0
dXJuIHsgfTsKKyNkZWZpbmUgREVDT0RFKG5hbWUsIHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBl
PiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7IFwKIAotICAgIFN0cmluZyBhcnRpc3Q7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShhcnRpc3QpKQotICAgICAgICByZXR1cm4geyB9OworICAgIERFQ09E
RSh0aXRsZSwgU3RyaW5nKTsKKyAgICBERUNPREUoYXJ0aXN0LCBTdHJpbmcpOworICAgIERFQ09E
RShhbGJ1bSwgU3RyaW5nKTsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAg
ICBERUNPREUodHJhY2tJZGVudGlmaWVyLCBTdHJpbmcpOworI2VuZGlmCisgICAgREVDT0RFKGFy
dHdvcmssIFZlY3RvcjxNZWRpYUltYWdlPik7CiAKLSAgICBTdHJpbmcgYWxidW07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShhbGJ1bSkpCi0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBWZWN0
b3I8TWVkaWFJbWFnZT4gYXJ0d29yazsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFydHdvcmsp
KQotICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiB7IHsKKyAgICAgICAgKnRpdGxlLAor
ICAgICAgICAqYXJ0aXN0LAorICAgICAgICAqYWxidW0sCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T05fUExBWUxJU1QpCisgICAgICAgICp0cmFja0lkZW50aWZpZXIsCisjZW5kaWYKKyAgICAgICAg
KmFydHdvcmsKKyAgICB9IH07CiAKLSAgICByZXR1cm4gTWVkaWFNZXRhZGF0YUluaXQgeyBXVEZN
b3ZlKHRpdGxlKSwgV1RGTW92ZShhcnRpc3QpLCBXVEZNb3ZlKGFsYnVtKSwgV1RGTW92ZShhcnR3
b3JrKSB9OworI3VuZGVmIERFQ09ERQogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKaW5kZXggOGIw
ZjU1Y2YxNGE1ODM4Y2I1NDg5NTY1ZDAyNzJkYWZhZDllMTIzZC4uMGRjOGVmMDA3YjEwOTUxYjBk
NTkxOWViMDMxMjQzNGYzZjY0NDYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbApAQCAtMzAsNSArMzAs
NiBAQAogICAgIERPTVN0cmluZyB0aXRsZSA9ICIiOwogICAgIERPTVN0cmluZyBhcnRpc3QgPSAi
IjsKICAgICBET01TdHJpbmcgYWxidW0gPSAiIjsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VT
U0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gRE9N
U3RyaW5nIHRyYWNrSWRlbnRpZmllciA9ICIiOwogICAgIHNlcXVlbmNlPE1lZGlhSW1hZ2U+IGFy
dHdvcmsgPSBbXTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uLmNwcAppbmRleCA5MDFkZGIwYTdiNGZlOWU5MzYzZTVmZjMxZjJl
YWI0N2E5ZDM2NDhkLi5iM2Q4OGM5NzM4ZDcxNTFiZjlkMzQ0NjQxYmFiZGQ3NTNlYzVkNDY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbi5jcHAKQEAgLTI4LDggKzI4LDEwIEBACiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikK
IAorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTWVkaWFNZXRhZGF0YS5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgi
CiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyLmgiCiAKQEAgLTc1LDcgKzc3LDExIEBAIFJlZjxNZWRpYVNlc3Npb24+IE1lZGlhU2Vz
c2lvbjo6Y3JlYXRlKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogfQogCiBNZWRpYVNlc3Npb246Ok1l
ZGlhU2Vzc2lvbihOYXZpZ2F0b3ImIG5hdmlnYXRvcikKLSAgICA6IG1fbmF2aWdhdG9yKG1ha2VX
ZWFrUHRyKG5hdmlnYXRvcikpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihuYXZp
Z2F0b3Iuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICwgbV9uYXZpZ2F0b3IobWFrZVdl
YWtQdHIobmF2aWdhdG9yKSkKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
KyAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6Y3Jl
YXRlKCp0aGlzKSkKKyNlbmRpZgogewogICAgIG1fbG9nZ2VyID0gbWFrZVJlZlB0cihEb2N1bWVu
dDo6c2hhcmVkTG9nZ2VyKCkpOwogICAgIG1fbG9nSWRlbnRpZmllciA9IG5leHRMb2dJZGVudGlm
aWVyKCk7CkBAIC04OCwxNCArOTQsNjMgQEAgTWVkaWFTZXNzaW9uOjp+TWVkaWFTZXNzaW9uKCkg
PSBkZWZhdWx0Owogdm9pZCBNZWRpYVNlc3Npb246OnNldE1ldGFkYXRhKFJlZlB0cjxNZWRpYU1l
dGFkYXRhPiYmIG1ldGFkYXRhKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Ci0K
ICAgICBpZiAobV9tZXRhZGF0YSkKICAgICAgICAgbV9tZXRhZGF0YS0+cmVzZXRNZWRpYVNlc3Np
b24oKTsKICAgICBtX21ldGFkYXRhID0gV1RGTW92ZShtZXRhZGF0YSk7CiAgICAgaWYgKG1fbWV0
YWRhdGEpCiAgICAgICAgIG1fbWV0YWRhdGEtPnNldE1lZGlhU2Vzc2lvbigqdGhpcyk7Ci0gICAg
bWV0YWRhdGFVcGRhdGVkKCk7CisgICAgbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMoKTsKK30KKwor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQordm9pZCBNZWRpYVNlc3Npb246
OnNldFJlYWR5U3RhdGUoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSkKK3sKKyAgICBpZiAo
bV9yZWFkeVN0YXRlID09IHN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsIHN0YXRlKTsKKworICAgIG1fcmVhZHlTdGF0ZSA9IHN0YXRlOworICAg
IG5vdGlmeVJlYWR5U3RhdGVPYnNlcnZlcnMoKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb246OnNl
dENvb3JkaW5hdG9yKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKiBjb29yZGluYXRvcikKK3sKKyAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCisgICAgaWYgKG1fY29vcmRpbmF0b3IpCisg
ICAgICAgIG1fY29vcmRpbmF0b3ItPnNldE1lZGlhU2Vzc2lvbihudWxscHRyKTsKKworICAgIG1f
Y29vcmRpbmF0b3IgPSBjb29yZGluYXRvcjsKKworICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAg
ICAgICBtX2Nvb3JkaW5hdG9yLT5zZXRNZWRpYVNlc3Npb24odGhpcyk7CisKKyAgICBtX2FzeW5j
RXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNvb3Jk
aW5hdG9yY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxh
YmxlOjpObykpOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElT
VCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU2Vzc2lvbjo6c2V0UGxheWxpc3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgVmVjdG9yPFJlZlB0cjxNZWRpYU1ldGFkYXRhPj4mJiBw
bGF5bGlzdCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCisgICAgVmVjdG9y
PFJlZjxNZWRpYU1ldGFkYXRhPj4gcmVzb2x2ZWRQbGF5bGlzdDsKKyAgICByZXNvbHZlZFBsYXls
aXN0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocGxheWxpc3Quc2l6ZSgpKTsKKworICAgIGZvciAo
YXV0byYgZW50cnkgOiBwbGF5bGlzdCkgeworICAgICAgICBhdXRvIHJlc29sdmVkRW50cnkgPSBN
ZWRpYU1ldGFkYXRhOjpjcmVhdGUoY29udGV4dCwgeyBlbnRyeS0+bWV0YWRhdGEoKSB9KTsKKyAg
ICAgICAgaWYgKHJlc29sdmVkRW50cnkuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1
cm4gcmVzb2x2ZWRFbnRyeS5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgICAgIAorICAgICAgICBy
ZXNvbHZlZFBsYXlsaXN0LnVuY2hlY2tlZEFwcGVuZChyZXNvbHZlZEVudHJ5LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpKTsKKyAgICB9CisKKyAgICBtX3BsYXlsaXN0ID0gV1RGTW92ZShyZXNvbHZlZFBs
YXlsaXN0KTsKKworICAgIHJldHVybiB7IH07CiB9CisjZW5kaWYKIAogdm9pZCBNZWRpYVNlc3Np
b246OnNldFBsYXliYWNrU3RhdGUoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKIHsK
QEAgLTExMCw2ICsxNjUsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0UGxheWJhY2tTdGF0ZShN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRlKQogICAgICAgICBtX3RpbWVBdExhc3RQb3Np
dGlvblVwZGF0ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIH0KICAgICBtX3BsYXliYWNr
U3RhdGUgPSBzdGF0ZTsKKyAgICBub3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2ZXJzKCk7CiB9CiAK
IHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vzc2lvbkFjdGlvbiBh
Y3Rpb24sIFJlZlB0cjxNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPiYmIGhhbmRsZXIpCkBAIC0x
MjgsNyArMTg0LDcgQEAgdm9pZCBNZWRpYVNlc3Npb246OnNldEFjdGlvbkhhbmRsZXIoTWVkaWFT
ZXNzaW9uQWN0aW9uIGFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2kKICAgICAgICAgUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVtb3ZlU3VwcG9ydGVkQ29tbWFu
ZChwbGF0Zm9ybUNvbW1hbmRGb3JNZWRpYVNlc3Npb25BY3Rpb24oYWN0aW9uKSk7CiAgICAgfQog
ICAgIAotICAgIGFjdGlvbkhhbmRsZXJzVXBkYXRlZCgpOworICAgIG5vdGlmeUFjdGlvbkhhbmRs
ZXJPYnNlcnZlcnMoKTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb246Omhhc0FjdGlvbkhhbmRsZXIo
TWVkaWFTZXNzaW9uQWN0aW9uIGFjdGlvbikgY29uc3QKQEAgLTE0MSwyNSArMTk3LDMwIEBAIFJl
ZlB0cjxNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPiBNZWRpYVNlc3Npb246OmhhbmRsZXJGb3JB
Y3Rpb24oTWVkaWFTZXNzaW9uQWN0CiAgICAgcmV0dXJuIG1fYWN0aW9uSGFuZGxlcnMuZ2V0KGFj
dGlvbik7CiB9CiAKK3ZvaWQgTWVkaWFTZXNzaW9uOjpjYWxsQWN0aW9uSGFuZGxlcihjb25zdCBN
ZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzJiBhY3Rpb25EZXRhaWxzKQoreworICAgIGlmIChhdXRv
IGhhbmRsZXIgPSBtX2FjdGlvbkhhbmRsZXJzLmdldChhY3Rpb25EZXRhaWxzLmFjdGlvbikpCisg
ICAgICAgIGhhbmRsZXItPmhhbmRsZUV2ZW50KGFjdGlvbkRldGFpbHMpOworfQorCiBFeGNlcHRp
b25Pcjx2b2lkPiBNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVkaWFQ
b3NpdGlvblN0YXRlPiYmIHN0YXRlKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7
CiAKICAgICBpZiAoIXN0YXRlKSB7CiAgICAgICAgIG1fcG9zaXRpb25TdGF0ZSA9IFdURjo6bnVs
bG9wdDsKKyAgICAgICAgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpOwogICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH0KIAotICAgIGlmICghKHN0YXRlLT5kdXJhdGlvbiA+PSAwCi0gICAg
ICAgICYmIHN0YXRlLT5wb3NpdGlvbiA+PSAwCi0gICAgICAgICYmIHN0YXRlLT5wb3NpdGlvbiA8
PSBzdGF0ZS0+ZHVyYXRpb24KLSAgICAgICAgJiYgc3RkOjppc2Zpbml0ZShzdGF0ZS0+cGxheWJh
Y2tSYXRlKQotICAgICAgICAmJiBzdGF0ZS0+cGxheWJhY2tSYXRlKSkKKyAgICBpZiAoc3RhdGUt
PnBsYXliYWNrUmF0ZSAmJiAhKHN0YXRlLT5kdXJhdGlvbiA+PSAwICYmIHN0YXRlLT5wb3NpdGlv
biA+PSAwICYmIHN0YXRlLT5wb3NpdGlvbiA8PSBzdGF0ZS0+ZHVyYXRpb24gJiYgc3RkOjppc2Zp
bml0ZShzdGF0ZS0+cGxheWJhY2tSYXRlKSkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IgfTsKIAogICAgIG1fcG9zaXRpb25TdGF0ZSA9IFdURk1vdmUoc3RhdGUpOwogICAg
IG1fbGFzdFJlcG9ydGVkUG9zaXRpb24gPSBtX3Bvc2l0aW9uU3RhdGUtPnBvc2l0aW9uOwogICAg
IG1fdGltZUF0TGFzdFBvc2l0aW9uVXBkYXRlID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAg
bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpOworCiAgICAgcmV0dXJuIHsgfTsKIH0KIApA
QCAtMTc3LDExICsyMzgsNjQgQEAgT3B0aW9uYWw8ZG91YmxlPiBNZWRpYVNlc3Npb246OmN1cnJl
bnRQb3NpdGlvbigpIGNvbnN0CiAKIHZvaWQgTWVkaWFTZXNzaW9uOjptZXRhZGF0YVVwZGF0ZWQo
KQogeworICAgIG5vdGlmeU1ldGFkYXRhT2JzZXJ2ZXJzKCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNz
aW9uOjphZGRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBtX29ic2VydmVycy5hZGQob2JzZXJ2ZXIpOworfQorCit2b2lkIE1l
ZGlhU2Vzc2lvbjo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsK
K30KKwordm9pZCBNZWRpYVNlc3Npb246OmZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlvbjx2
b2lkKE9ic2VydmVyJik+JiBhcHBseSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworICAgIG1fb2JzZXJ2ZXJz
LmZvckVhY2goYXBwbHkpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5TWV0YWRhdGFP
YnNlcnZlcnMoKQoreworICAgIGZvckVhY2hPYnNlcnZlcihbdGhpc10oYXV0byYgb2JzZXJ2ZXIp
IHsKKyAgICAgICAgb2JzZXJ2ZXIubWV0YWRhdGFDaGFuZ2VkKG1fbWV0YWRhdGEpOworICAgIH0p
OworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygp
Cit7CisgICAgZm9yRWFjaE9ic2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAg
ICBvYnNlcnZlci5wb3NpdGlvblN0YXRlQ2hhbmdlZChtX3Bvc2l0aW9uU3RhdGUpOworICAgIH0p
OworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygp
Cit7CisgICAgZm9yRWFjaE9ic2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAg
ICBvYnNlcnZlci5wbGF5YmFja1N0YXRlQ2hhbmdlZChtX3BsYXliYWNrU3RhdGUpOworICAgIH0p
OworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5QWN0aW9uSGFuZGxlck9ic2VydmVycygp
Cit7CisgICAgZm9yRWFjaE9ic2VydmVyKFtdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9i
c2VydmVyLmFjdGlvbkhhbmRsZXJzQ2hhbmdlZCgpOworICAgIH0pOwogfQogCi12b2lkIE1lZGlh
U2Vzc2lvbjo6YWN0aW9uSGFuZGxlcnNVcGRhdGVkKCkKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKK3ZvaWQgTWVkaWFTZXNzaW9uOjpub3RpZnlSZWFkeVN0YXRlT2JzZXJ2
ZXJzKCkKIHsKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNdKGF1dG8mIG9ic2VydmVyKSB7Cisg
ICAgICAgIG9ic2VydmVyLnJlYWR5U3RhdGVDaGFuZ2VkKG1fcmVhZHlTdGF0ZSk7CisgICAgfSk7
CiB9CisjZW5kaWYKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5oCmluZGV4IDRmNGJlNDc3MjY0NDA4NmI3N2Q2MWQ5ZjViMDgy
M2ExNWQwNTA1NjkuLmRjY2YyODY3ZmMyOWZlYzliODViYjhkYjFkNjk5M2FkZDYxZjYwMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5oCkBAIC0yNyw2ICsyNyw5IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIAorI2lu
Y2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkpTTWVkaWFQ
b3NpdGlvblN0YXRlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVNlc3Npb25BY3Rpb24uaCIKICNpbmNs
dWRlICJKU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCIKQEAgLTM0LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJNZWRpYVNlc3Npb25BY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25BY3Rp
b25IYW5kbGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIgorI2lu
Y2x1ZGUgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+
CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KQEAgLTQzLDM2ICs0NywxMDAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVk
aWFNZXRhZGF0YTsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgTmF2aWdh
dG9yOwogCi1jbGFzcyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Np
b24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPiB7CitjbGFzcyBNZWRpYVNl
c3Npb24KKyAgICA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4KKyAgICAsIHB1Ymxp
YyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NP
T1JESU5BVE9SKQorICAgICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEKKyNlbHNl
CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPgorI2VuZGlmCit7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRp
YVNlc3Npb24+IGNyZWF0ZShOYXZpZ2F0b3ImKTsKICAgICB+TWVkaWFTZXNzaW9uKCk7CiAKICAg
ICBNZWRpYU1ldGFkYXRhKiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEuZ2V0
KCk7IH07CiAgICAgdm9pZCBzZXRNZXRhZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJik7Cisg
ICAgdm9pZCBtZXRhZGF0YVVwZGF0ZWQoKTsKIAogICAgIE1lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGUgcGxheWJhY2tTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWJhY2tTdGF0ZTsgfTsKICAg
ICB2b2lkIHNldFBsYXliYWNrU3RhdGUoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CiAKICAg
ICB2b2lkIHNldEFjdGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0aW9uLCBSZWZQdHI8TWVkaWFT
ZXNzaW9uQWN0aW9uSGFuZGxlcj4mJik7CisKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQb3Np
dGlvblN0YXRlKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mJik7CisgICAgT3B0aW9uYWw8
TWVkaWFQb3NpdGlvblN0YXRlPiBwb3NpdGlvblN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3Np
dGlvblN0YXRlOyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxkb3VibGU+IGN1cnJl
bnRQb3NpdGlvbigpIGNvbnN0OwogCi0gICAgdm9pZCBtZXRhZGF0YVVwZGF0ZWQoKTsKKyNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBNZWRpYVNlc3Npb25SZWFkeVN0
YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH07CisgICAgdm9p
ZCBzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpOworCisgICAgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yKCkgY29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRv
ci5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29vcmRpbmF0b3IoTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IqKTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05f
UExBWUxJU1QpCisgICAgY29uc3QgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4mIHBsYXlsaXN0
KCkgY29uc3QgeyByZXR1cm4gbV9wbGF5bGlzdDsgfQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFBsYXlsaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBWZWN0b3I8UmVmUHRyPE1lZGlhTWV0
YWRhdGE+PiYmKTsKKyNlbmRpZgogCi0gICAgdm9pZCBhY3Rpb25IYW5kbGVyc1VwZGF0ZWQoKTsK
ICAgICBib29sIGhhc0FjdGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0aW9uKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4gaGFuZGxl
ckZvckFjdGlvbihNZWRpYVNlc3Npb25BY3Rpb24pIGNvbnN0OwogICAgIGJvb2wgaGFzQWN0aXZl
QWN0aW9uSGFuZGxlcnMoKSBjb25zdCB7IHJldHVybiAhbV9hY3Rpb25IYW5kbGVycy5pc0VtcHR5
KCk7IH0KIAorICAgIHZvaWQgY2FsbEFjdGlvbkhhbmRsZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0
aW9uRGV0YWlscyYpOworCisgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVy
biAqbV9sb2dnZXIuZ2V0KCk7IH0KKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQorICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOworI2VuZGlmCisKKyAgICBjbGFzcyBPYnNlcnZlciA6
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxPYnNlcnZlcj4geworICAgIHB1YmxpYzoKKyAgICAgICAg
dmlydHVhbCB+T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIG1l
dGFkYXRhQ2hhbmdlZChSZWZQdHI8TWVkaWFNZXRhZGF0YT4pIHsgfQorICAgICAgICB2aXJ0dWFs
IHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikg
eyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGFjdGlvbkhhbmRsZXJz
Q2hhbmdlZCgpIHsgfQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisg
ICAgICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0
YXRlKSB7IH0KKyNlbmRpZgorICAgIH07CisgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYp
OworICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKwogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBNZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7CiAKLSAgICBjb25zdCBMb2dnZXImIGxv
Z2dlcigpIGNvbnN0IHsgcmV0dXJuICptX2xvZ2dlci5nZXQoKTsgfQogICAgIGNvbnN0IHZvaWQq
IGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KIAorICAg
IHZvaWQgZm9yRWFjaE9ic2VydmVyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mKTsK
KyAgICB2b2lkIG5vdGlmeU1ldGFkYXRhT2JzZXJ2ZXJzKCk7CisgICAgdm9pZCBub3RpZnlQb3Np
dGlvblN0YXRlT2JzZXJ2ZXJzKCk7CisgICAgdm9pZCBub3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2
ZXJzKCk7CisgICAgdm9pZCBub3RpZnlBY3Rpb25IYW5kbGVyT2JzZXJ2ZXJzKCk7CisgICAgdm9p
ZCBub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCk7CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVy
ZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1lZGlhU2Vzc2lvbkV2ZW50VGFyZ2V0SW50ZXJm
YWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisKKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkg
ZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVy
ZWYoKTsgfQorI2VuZGlmCisKICAgICBXZWFrUHRyPE5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAg
ICAgUmVmUHRyPE1lZGlhTWV0YWRhdGE+IG1fbWV0YWRhdGE7CiAgICAgTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZSBtX3BsYXliYWNrU3RhdGUgeyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpO
b25lIH07CkBAIC04Miw2ICsxNTAsMTggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPE1lZGlhU2Vz
c2lvbkFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+LCBXVEY6OkludEhh
c2g8TWVkaWFTZXNzaW9uQWN0aW9uPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVNl
c3Npb25BY3Rpb24+PiBtX2FjdGlvbkhhbmRsZXJzOwogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+
IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKworICAgIFdlYWtI
YXNoU2V0PE9ic2VydmVyPiBtX29ic2VydmVyczsKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SKQorICAgIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsg
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgfTsKKyAgICBSZWZQdHI8TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I+IG1fY29vcmRpbmF0b3I7CisgICAgVW5pcXVlUmVmPE1haW5UaHJl
YWRHZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CisjZW5kaWYKKworI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFZlY3RvcjxSZWY8TWVkaWFNZXRhZGF0
YT4+IG1fcGxheWxpc3Q7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsCmluZGV4IDg0ZjQzMGQ2ODdj
NzRmZWNlZTEyYTY5NjEwNTVlYjRkOTkxNWFkYjguLmM1NzM3Yzg3YmQxOTFkNzA3Y2IyYTY5NmZh
ZWJmNWFkY2IwOWY1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw5ICsyNiwxMyBAQAogWwogICAgIENvbmRpdGlv
bmFsPU1FRElBX1NFU1NJT04sCiAgICAgRXhwb3NlZD1XaW5kb3csCi0gICAgSW1wbGVtZW50YXRp
b25MYWNrc1ZUYWJsZSwKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJm
YWNlIE1lZGlhU2Vzc2lvbiB7CisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGludGVyZmFj
ZSBNZWRpYVNlc3Npb24KKyNpZiBkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKSAmJiBFTkFCTEVfTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUgorICA6IEV2ZW50VGFyZ2V0
CisjZW5kaWYKK3sKICAgICBhdHRyaWJ1dGUgTWVkaWFNZXRhZGF0YT8gbWV0YWRhdGE7CiAKICAg
ICBhdHRyaWJ1dGUgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBwbGF5YmFja1N0YXRlOwpAQCAt
MzYsNCArNDAsMTAgQEAKICAgICB1bmRlZmluZWQgc2V0QWN0aW9uSGFuZGxlcihNZWRpYVNlc3Np
b25BY3Rpb24gYWN0aW9uLCBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPyBoYW5kbGVyKTsKIAog
ICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFBvc2l0aW9uU3RhdGUob3B0aW9u
YWwgTWVkaWFQb3NpdGlvblN0YXRlPyBzdGF0ZSA9IG51bGwpOworCisgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvcj8g
Y29vcmRpbmF0b3I7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Is
IEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JdIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb25jb29yZGluYXRvcmNoYW5nZTsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUiwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25Db29yZGluYXRv
cl0gYXR0cmlidXRlIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgcmVhZHlTdGF0ZTsKKworICAgIFtD
b25kaXRpb25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlh
U2Vzc2lvblBsYXlsaXN0LCBTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBN
YXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhTWV0YWRhdGE+IHBs
YXlsaXN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmgKaW5kZXggNWNiNjQ0ZmYzNjJkZWQ3MzcwMmIxMzNm
M2YyMGFkODY3MGI3ZmY2MS4uOWJjNGYwMDEzYjQ2YjUyYTgxYzAwMDc5NzIyYTM2MDEyZjdjYzIz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQWN0aW9uLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNiArMzksNyBAQCBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lv
bkFjdGlvbiB7CiAgICAgU2tpcGFkLAogICAgIFN0b3AsCiAgICAgU2Vla3RvLAorICAgIFNldHRy
YWNrLAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpAQCAtNTYsNyArNTcsOCBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbj4gewog
ICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246Ok5leHR0cmFjaywKICAgICAgICAg
V2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTa2lwYWQsCiAgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkFjdGlvbjo6U3RvcCwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0
aW9uOjpTZWVrdG8KKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTZWVrdG8s
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2V0dHJhY2sKICAgICA+Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uQWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKaW5kZXggNDYzNWU2OTczNGVkYTE5ZGMyYTdjYWVkOWE1
ZmM3MTA3NDU5OGNkNC4uOGY3NjVmNjRlM2RhY2JlNzE3MTNhNGY4NmJiOWJhMmFiODJmNDNhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uQWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25BY3Rpb24uaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDQgKzM1LDcgQEAKICAgICAic2tpcGFkIiwKICAgICAi
c3RvcCIsCiAgICAgInNlZWt0byIKKyNpZiBkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OX1BM
QVlMSVNUKSAmJiBFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVAorICAgICwgInNldHRyYWNr
IgorI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCmluZGV4IDY0MWVhNzI0
YWNhNjcwNWQ3MzUwN2UyODcxYzUxNzQxNzk2OTZkN2MuLmY1OTA5ZDQ2ZjhlYWM2NmQwZjNjOWRk
N2U3NTMyZTM2MDQ2OGQ2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNiAr
MzcsOSBAQCBzdHJ1Y3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyB7CiAgICAgT3B0aW9uYWw8
ZG91YmxlPiBzZWVrT2Zmc2V0OwogICAgIE9wdGlvbmFsPGRvdWJsZT4gc2Vla1RpbWU7CiAgICAg
T3B0aW9uYWw8Ym9vbD4gZmFzdFNlZWs7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJ
U1QpCisgICAgU3RyaW5nIHRyYWNrSWRlbnRpZmllcjsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0
aW9uRGV0YWlscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbAppbmRleCAxYTFlZjdhZTc2NWFlMDJmMjFlMzIzMmEx
MzY0YTk2YTFhZGYxNTQ3Li4yZDhjNjA3MzdjNmQ2N2ZkMTI1ZTEzZTkxNjk4ZWNmYTgwMjZjMDkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw0ICszMiw2IEBACiAgICAg
ZG91YmxlPyBzZWVrT2Zmc2V0OwogICAgIGRvdWJsZT8gc2Vla1RpbWU7CiAgICAgYm9vbGVhbj8g
ZmFzdFNlZWs7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5h
YmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gRE9NU3RyaW5nPyB0cmFja0lkZW50
aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3MTEw
NjMwZmQ4MWU5NjVkZjdkNjc1Yjc5MTdlYWNlNjVkYzgwNmQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5jcHAKQEAgLTAsMCArMSwyMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiSlNET01FeGNlcHRpb24uaCIKKyNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJNZWRpYVNlc3Npb24uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IHZvaWQq
IG5leHRDb29yZGluYXRvckxvZ0lkZW50aWZpZXIoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBs
b2dJZGVudGlmaWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIoKTsKKyAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsKK30KKwor
UmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3Jl
YXRlKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmIHBsYXRmb3JtQ29vcmRp
bmF0b3IpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IoV1RGTW92ZShwbGF0Zm9ybUNvb3JkaW5hdG9yKSkpOworfQorCitNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29yZGluYXRvcikKKyAgICA6IG1fcGxhdGZvcm1Db29y
ZGluYXRvcihXVEZNb3ZlKHBsYXRmb3JtQ29vcmRpbmF0b3IpKQorICAgICwgbV9sb2dnZXIobWFr
ZVJlZihEb2N1bWVudDo6c2hhcmVkTG9nZ2VyKCkpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKG5l
eHRDb29yZGluYXRvckxvZ0lkZW50aWZpZXIoKSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZXRMb2dnZXIobV9sb2dnZXIu
Y29weVJlZigpLCBtX2xvZ0lkZW50aWZpZXIpOworfQorCitNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6fk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCit2b2lkIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsK
KyAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIsIHRpbWUpOworCisgICAgaWYgKCFtX3Nlc3Npb24p
IHsKKyAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICJNZWRpYVNlc3Npb24gaXMgTlVMTCEi
KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Ig
fSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3It
PnNlZWtUbyh0aW1lLCBbdGltZSwgdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRo
aXMpLCBpZGVudGlmaWVyID0gaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSld
IChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKworICAgICAgICBp
ZiAoIW1fc2Vzc2lvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZN
b3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVyLCAiY29v
cmRpbmF0b3Iuc2Vla1RvIGZhaWxlZCEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAg
ICAgICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpTZWVrdG8sCisgICAgICAgICAgICAu
c2Vla1RpbWUgPSB0aW1lLAorICAgICAgICB9OworICAgICAgICBtX3Nlc3Npb24tPmNhbGxBY3Rp
b25IYW5kbGVyKGRldGFpbHMpOworCisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIH0p
OworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gTE9HSURFTlRJ
RklFUjsKKyAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIpOworCisgICAgaWYgKCFtX3Nlc3Npb24p
IHsKKyAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICJNZWRpYVNlc3Npb24gaXMgTlVMTCEi
KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Ig
fSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3It
PnBsYXkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmll
ciA9IGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhj
ZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghbV9zZXNzaW9uKSB7
CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNl
cHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikp
OworICAgICAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICJjb29yZGluYXRvci5wbGF5IGZh
aWxlZCEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIE1lZGlh
U2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0aW9uID0gTWVk
aWFTZXNzaW9uQWN0aW9uOjpQbGF5LAorICAgICAgICB9OworICAgICAgICBtX3Nlc3Npb24tPmNh
bGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOworCisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOwor
ICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZShET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IExP
R0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyKTsKKworICAgIGlmICghbV9z
ZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVyLCAiTWVkaWFTZXNzaW9uIGlz
IE5VTEwhIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wbGF0Zm9ybUNvb3Jk
aW5hdG9yLT5wYXVzZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBp
ZGVudGlmaWVyID0gaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRp
b25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3Nl
c3Npb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZSgqZXhj
ZXB0aW9uKSk7CisgICAgICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgImNvb3JkaW5hdG9y
LnBhdXNlIGZhaWxlZCEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0
aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpQYXVzZSwKKyAgICAgICAgfTsKKyAgICAgICAgbV9z
ZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgICAgICBwcm9taXNlLnJl
c29sdmUoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0
VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZ
U19MT0coaWRlbnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJP
Ul9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+c2V0VHJhY2sodHJhY2ss
IFt0cmFjaywgdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlm
aWVyID0gaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxF
eGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3Nlc3Npb24p
IHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4
Y2VwdGlvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZSgqZXhjZXB0aW9u
KSk7CisgICAgICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgImNvb3JkaW5hdG9yLnNldFRy
YWNrIGZhaWxlZCEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0aW9u
ID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpTZXR0cmFjaywKKyAgICAgICAgICAgIC50cmFja0lkZW50
aWZpZXIgPSB0cmFjaywKKyAgICAgICAgfTsKKyAgICAgICAgbV9zZXNzaW9uLT5jYWxsQWN0aW9u
SGFuZGxlcihkZXRhaWxzKTsKKworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsK
K30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKE1lZGlh
U2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAg
IG1fc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Npb24pOworCisgICAgaWYgKG1fc2Vzc2lvbikK
KyAgICAgICAgbV9zZXNzaW9uLT5hZGRPYnNlcnZlcigqdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9z
aXRpb25TdGF0ZT4gc3RhdGUpCit7CisgICAgaWYgKCFzdGF0ZSkgeworICAgICAgICBtX3BsYXRm
b3JtQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3RhdGVDaGFuZ2VkKHsgfSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3RhdGVDaGFu
Z2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhUG9zaXRpb25TdGF0ZSB7
IHN0YXRlLT5kdXJhdGlvbiwgc3RhdGUtPnBsYXliYWNrUmF0ZSwgc3RhdGUtPnBvc2l0aW9uIH0p
OworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdl
ZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRlKQoreworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSkgPT0g
c3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
OjpOb25lIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlOjpOb25lIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQpID09
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlOjpQYXVzZWQgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19h
c3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxh
eWluZykgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyksICJNZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlOjpQbGF5aW5nIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nIGFzIGV4cGVjdGVkIik7CisK
KyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHN0YXRpY19j
YXN0PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGU+KHN0YXRlKSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5
U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCit7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZl
Tm90aGluZykgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcpLCAiTWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRh
ZGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEgaXMgbm90IFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVN
ZXRhZGF0YSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKSA9PSBzdGF0aWNf
Y2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6
SGF2ZUN1cnJlbnREYXRhIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU6OkhhdmVGdXR1cmVEYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0
YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSBpcyBub3QgUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1
dHVyZURhdGEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhKSA9PSBzdGF0aWNf
Y2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlRW5vdWdoRGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEgYXMgZXhwZWN0ZWQiKTsKKworICAg
IG1fcGxhdGZvcm1Db29yZGluYXRvci0+cmVhZHlTdGF0ZUNoYW5nZWQoc3RhdGljX2Nhc3Q8UGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZT4oc3Rh
dGUpKTsKK30KKworV1RGTG9nQ2hhbm5lbCYgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0No
YW5uZWwoKQoreworICAgIHJldHVybiBMb2dNZWRpYTsKK30KKworfQorCisjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZmMwMGYwYWZiYTljZGQ5YTJmN2RiMmZkNWU0Mzc4ZTIwNGVkYjNmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1
ZGUgPHd0Zi9Mb2dnZXIuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3
dGYvVW5pcXVlUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGU8dHlwZW5h
bWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKKworY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvcjsKK2NsYXNzIE1lZGlhU2Vzc2lvbjsKKworY2xhc3MgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IKKyAgICA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yPgorLCBwdWJsaWMgTWVkaWFTZXNzaW9uOjpPYnNlcnZlciB7CitwdWJsaWM6CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRlKFJl
ZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKKworICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgcGxheShET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4m
Jik7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcmLCBET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJik7CisKKyAgICB2b2lkIHNldE1lZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24qKTsKKwor
ICAgIC8vIE1lZGlhU2Vzc2lvbjo6T2JzZXJ2ZXIKKyAgICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFu
Z2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIGZpbmFsOworICAgIHZvaWQgcGxheWJh
Y2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CisgICAgdm9p
ZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKKworcHJp
dmF0ZToKKyAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7CisKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigp
IGNvbnN0IHsgcmV0dXJuIG1fbG9nZ2VyOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIHN0YXRpYyBXVEZMb2dD
aGFubmVsJiBsb2dDaGFubmVsKCk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFt
ZSgpIHsgcmV0dXJuICJNZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KKworICAgIFdlYWtQdHI8
TWVkaWFTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I+IG1fcGxhdGZvcm1Db29yZGluYXRvcjsKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBt
X2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3NlZWtUb1Byb21pc2U7CisgICAg
c3RkOjp1bmlxdWVfcHRyPERPTVByb21pc2VEZWZlcnJlZDx2b2lkPj4gbV9wbGF5UHJvbWlzZTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3BhdXNlUHJv
bWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3Nl
dFRyYWNrUHJvbWlzZTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVj
MDVhYjg5MGVhMTgyNmQwZmU3MTMwYjVkMzJiNDJkN2I0NjIzZDkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25h
bD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLAorICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgRXhwb3J0TWFjcm89
V0VCQ09SRV9FWFBPUlQsCitdIGludGVyZmFjZSBNZWRpYVNlc3Npb25Db29yZGluYXRvciB7Cisg
ICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNlZWtUbyh1bnJlc3RyaWN0ZWQgZG91YmxlIHRpbWUpOwor
ICAgIFByb21pc2U8dW5kZWZpbmVkPiBwbGF5KCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBh
dXNlKCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNldFRyYWNrKERPTVN0cmluZyB0cmFja0lk
ZW50aWZpZXIpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaAppbmRleCBkNGFkYmQ1
NDE3OTRlNWExMDk1YmU1NGEyM2JiM2ViOWViZTc0NzU2Li43MDYzYzc4ZTNkNzhiZmFkMzg4ZGYz
MDk0NTRhOWNmN2EzNTRkMmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oCkBAIC0y
OSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlIHsKK2VudW0gY2xhc3MgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZSA6IHVpbnQ4X3QgewogICAgIE5vbmUsCiAgICAgUGF1c2VkLAogICAgIFBsYXlpbmcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25S
ZWFkeVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25SZWFkeVN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ1MjNkZDU0YTcxZTY2NTRhMTdiYjBjNzc0
Zjc4ODE2MzM3ZjQ2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaApAQCAtMCwwICsxLDQyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIE1lZGlhU2Vzc2lv
blJlYWR5U3RhdGUgOiB1aW50OF90IHsKKyAgICBIYXZlTm90aGluZywKKyAgICBIYXZlTWV0YWRh
dGEsCisgICAgSGF2ZUN1cnJlbnREYXRhLAorICAgIEhhdmVGdXR1cmVEYXRhLAorICAgIEhhdmVF
bm91Z2hEYXRhLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ5NzNmMmFhNTRjODY4ZjNiNDY1ZjliNTVlNjE5MDVkNWVjNGI5NDkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25SZWFkeVN0YXRlLmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsCitdIGVudW0gTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZSB7CisgICAgImhhdmVOb3RoaW5nIiwKKyAgICAiaGF2ZU1ldGFkYXRh
IiwKKyAgICAiaGF2ZUN1cnJlbnREYXRhIiwKKyAgICAiaGF2ZUZ1dHVyZURhdGEiLAorICAgICJo
YXZlRW5vdWdoRGF0YSIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCmluZGV4IDA0MjE5NjE3YzIz
ODY5MzAxMDhhNjg2MGIyMTAxMjY5Y2U1MzY4OWUuLjdkMmJmMzA2OGJmNTY3YzFjNmY4YTNjMmU4
OTU0ZmFhYjRkMjMzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCkBAIC00MSw3ICs0MSw3IEBA
IHB1YmxpYzoKICAgICBleHBsaWNpdCBOYXZpZ2F0b3JNZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7
CiAgICAgfk5hdmlnYXRvck1lZGlhU2Vzc2lvbigpOwogCi0gICAgc3RhdGljIE1lZGlhU2Vzc2lv
biYgbWVkaWFTZXNzaW9uKE5hdmlnYXRvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBN
ZWRpYVNlc3Npb24mIG1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsKICAgICBNZWRpYVNlc3Npb24m
IG1lZGlhU2Vzc2lvbigpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0M2QxMWM5YmQ1
M2NlMTYzY2YyZTg3ZjQ3MWVhZGJiMTAzYmFmYzhiLi43MmI3NTFhNmE2MGY0YTBmOGRhYmUzZDM1
NjFhMzg4NjJkNTMwNzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTMxLDYgKzEzMSw3IEBAIE1vZHVs
ZXMvbWVkaWFjYXBhYmlsaXRpZXMvTWVkaWFDYXBhYmlsaXRpZXMuY3BwCiBNb2R1bGVzL21lZGlh
Y2FwYWJpbGl0aWVzL05hdmlnYXRvck1lZGlhQ2FwYWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbi5jcHAKK01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cAogTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmNwcAogTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAogTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL0Jsb2JFdmVudC5jcHAKQEAgLTE5OTUsNiArMTk5Niw3IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L1BhdGguY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVy
bi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRpbWVSYW5nZXMuY3BwCiBwbGF0Zm9ybS9n
cmFwaGljcy9SZWdpb24uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5QmFzZS5jcHAKQEAgLTMyMTksNiArMzIyMSw3IEBAIEpTTWVkaWFLZXlzLmNwcAog
SlNNZWRpYUtleXNSZXF1aXJlbWVudC5jcHAKIEpTTWVkaWFMaXN0LmNwcAogSlNNZWRpYU1ldGFk
YXRhLmNwcAorSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIEpTTWVkaWFNZXRhZGF0YUlu
aXQuY3BwCiBKU01lZGlhUG9zaXRpb25TdGF0ZS5jcHAKIEpTTWVkaWFRdWVyeUxpc3QuY3BwCkBA
IC0zMjI5LDYgKzMyMzIsNyBAQCBKU01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuY3BwCiBKU01l
ZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiBKU01lZGlhU2Vzc2lvbkFjdGlvbi5jcHAKIEpT
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAKK0pTTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5j
cHAKIEpTTWVkaWFTZXNzaW9uLmNwcAogSlNNZWRpYVNvdXJjZS5jcHAKIEpTTWVkaWFTdHJlYW0u
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggYTBjMDU0ZGM0Mzk4OTc1N2NiOTM0ZGIyMmYyMTc4ZmYwYjExOGI2MC4uZWI3ZmQ1
MDVhMWY2MGE4MjAxZTY2NjcxMzQ2NTNjZWU2NmE0NzNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTAsNiArOTAsNyBAQAog
CQkwNzA3NTZENDE0MjM5QTRGMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3NTZEMjE0MjM5QTRF
MDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50LmggKi87IH07CiAJCTA3MDc1NkRFMTQyMzlC
NEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRy
YWNrQ3VlLmggKi87IH07CiAJCTA3MDc1NkUwMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFj
a0N1ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3MDc1NkRBMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCAqLzsgfTsK
KwkJMDcwOEYyQjYyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmggKi87IH07CiAJCTA3MDlENzhGMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzA5RDc4RDFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MDlENzkyMUFF
NTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlENzkwMUFFNTU1N0UwMDRF
NDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLzsgfTsKIAkJMDcwOUQ3OTMx
QUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlENzkxMUFFNTU1N0UwMDRF
NDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEyMyw2ICsxMjQsNyBAQAogCQkwNzNBMTU1
NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAv
KiBSZW1vdGVWaWRlb1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1
ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2OTFF
NDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMg
LyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc0MEIxNDQyNURFMzFGODAwRTM4REJBIC8qIE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzQwQjE0MzI1REUzMUE5MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmNwcCAqLzsgfTsKIAkJMDc0RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBs
YXRmb3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTAz
M0E4MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQz
NjgwMEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBC
Nzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRy
YWNrLmggKi87IH07CkBAIC01Njg3LDYgKzU2ODksNyBAQAogCQkwNzA3NTZEODE0MjM5QjRCMDA0
MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNUZXh0VHJhY2tDdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2
RDkxNDIzOUI0QzAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1ZUxpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA3NTZEQTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0
VHJhY2tDdWVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRy
YWNrQ3VlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzA4RjJCNDI1RERF
NDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzhDMUFFNTU1NTQwMDRFNDJG
OCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9u
TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzkwMUFFNTU1
N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTc3OCw2ICs1NzgxLDExIEBACiAJCTA3MkFF
MUUzMTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzJBRTFFNDE4M0MwNzQxMDAwQTU5ODggLyogUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IHBhdGggPSBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5qczsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FwdGlv
blVzZXJQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRC
QkZCMjVEQjM4QkMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwNzJEQkMwMzI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDUyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDYyNURDNkVEQTAwQTEz
NTBFIC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNNZWRp
YVNlc3Npb25Db29yZGluYXRvci5oOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVp
bGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA3MjVEQzZFREEwMEExMzUw
RSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpT
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2Vi
S2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0REMxOUVFMkM1
MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENPZmZlckFuc3dlck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDczNzk0RTMxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ0NvbmZpZ3Vy
YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTRFNDE5RUUyRkYy
MDBFNUEwNDUgLyogSlNSVENDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTUlRDQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTc5OSw2ICs1ODA3LDEwIEBACiAJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBB
dWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXVkaW9TYW1wbGVCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1NhbXBsZURhdGFTb3VyY2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDBCMTQzMjVERTMxQTkwMEUzOERCQSAvKiBNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0
NDcxRkQyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwNzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3NDRFQ0VCMUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrQXVkaW9TaGFyZWRV
bml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tBdWRpb1NoYXJlZFVu
aXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NEVDRUMxRTBDNEFFNTAwMEQw
OTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBNb2NrQXVkaW9TaGFyZWRVbml0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzQ2RDMwQTIxNDZFQTM3MDAzRERGODQgLyogSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEltYWdlVHJh
bnNmZXJTZXNzaW9uVlQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTE1LDYg
KzU5MjcsNyBAQAogCQkwN0UxMTZCMDE0ODlDOUExMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UxMTcwNjE0ODlFQkVC
MDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFj
a1RhcmdldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXliYWNr
VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3RTVGMzkyMjVFQUE5MUYw
MEE4NTNBRCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
OTU4NCw2ICsxOTU5Nyw4IEBACiAJCQkJNTEwNThBREExRDY3OTI1NzAwOUE1MzhDIC8qIE1vY2tH
YW1lcGFkUHJvdmlkZXIuaCAqLywKIAkJCQk0MTU3RUJGOTFFM0FCMDY4MDBBQzlGRTkgLyogTW9j
a0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk0MTU3RUJGODFFM0FCMDY4MDBB
QzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmggKi8sCisJCQkJMDc0MEIxNDMy
NURFMzFBOTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJ
CQkJMDc0MEIxNDEyNURFMzFBODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oICovLAogCQkJCTJENkYzRThBMUMxRUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXku
Y3BwICovLAogCQkJCTJENkYzRThCMUMxRUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXku
aCAqLywKIAkJCQkyRDZGM0U4QzFDMUVDQjFDMDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5Lmlk
bCAqLywKQEAgLTI2ODkwLDYgKzI2OTA1LDggQEAKIAkJCQk1NTA2NDBBRDI0MDc1NkRBMDBBQUUw
NDUgLyogUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQuaCAqLywKIAkJCQkwNTYyRjk2MDE1NzNG
ODhGMDAzMUNBMTYgLyogUGxhdGZvcm1MYXllci5oICovLAogCQkJCUNFRUZDRDdCMTlEQjMzREMw
MDM4NzZENyAvKiBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAqLywKKwkJCQkwN0U1RjM5
MjI1RUFBOTFGMDBBODUzQUQgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAg
Ki8sCisJCQkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaCAqLywKIAkJCQkwNzI4NDdFMjE2RUJDNUIwMDA0M0NGQTQgLyogUGxhdGZv
cm1UZXh0VHJhY2suaCAqLywKIAkJCQkwNzRFODJCODE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZv
cm1UaW1lUmFuZ2VzLmNwcCAqLywKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMgLyogUGxh
dGZvcm1UaW1lUmFuZ2VzLmggKi8sCkBAIC0yODM0Nyw4ICsyODM2NCwxMyBAQAogCQkJCUNERERF
QTM1MjUzOENFNzAwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCAqLywK
IAkJCQlDRERERUEzQTI1MzhFOUMyMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxl
ci5oICovLAogCQkJCUNERERFQTM5MjUzOEU5QzIwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rp
b25IYW5kbGVyLmlkbCAqLywKKwkJCQkwNzJEQkMwNTI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3MkRCQzAzMjVEQzZCRDMwMEExMzUwRSAv
KiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovLAorCQkJCTA3MkRCQkZCMjVEQjM4QkMwMEEx
MzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8sCiAJCQkJQ0REREVBMjkyNTM4
Q0RDQjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCAqLywKIAkJCQlDRERE
RUEyODI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgKi8s
CisJCQkJMDc0NDcxRkQyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUu
aCAqLywKKwkJCQkwNzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZS5pZGwgKi8sCiAJCQkJQ0REREVBMjUyNTM4Q0RBQjAwQTEzMDBDIC8qIE5hdmlnYXRvcitN
ZWRpYVNlc3Npb24uaWRsICovLAogCQkJCUNERERFQTI3MjUzOENEQUIwMEExMzAwQyAvKiBOYXZp
Z2F0b3JNZWRpYVNlc3Npb24uY3BwICovLAogCQkJCUNERERFQTI2MjUzOENEQUIwMEExMzAwQyAv
KiBOYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCAqLywKQEAgLTI4Mzc1LDYgKzI4Mzk3LDggQEAKIAkJ
CQlDRERERUE0MDI1MzkxMURCMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxz
LmggKi8sCiAJCQkJQ0REREVBNEQyNTM5MTNCQjAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0
aW9uSGFuZGxlci5jcHAgKi8sCiAJCQkJQ0REREVBNEUyNTM5MTNCQzAwQTEzMDBDIC8qIEpTTWVk
aWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovLAorCQkJCTA3MkRCQzA3MjVEQzZFREEwMEExMzUw
RSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJCQkwNzJEQkMwNjI1REM2
RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovLAogCQkJCUNERERF
QTQ2MjUzOTExREQwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuY3BwICov
LAogCQkJCUNERERFQTQyMjUzOTExREMwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGUuaCAqLywKIAkJCSk7CkBAIC0zNDI2NSw2ICszNDI4OSw3IEBACiAJCQkJRjU0NEY3ODkx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RUVGQ0Q3QzE5REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwNzBFMDkxOTE4NzVFRUZDMDAzQTFEM0MgLyogUGxhdGZvcm1N
ZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTA3MDhGMkI2MjVEREU0NUQwMDRGOTA4
NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwN0Y5NDQxNjE4NjREMDQ2MDA1RDMxQ0IgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVDNDc2OTA5QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZv
cm1Nb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTk4OTA1ODE0RTlDMjk5MDBFOEQx
OEIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLywKQEAgLTM2MTY3LDYgKzM2
MTkyLDcgQEAKIAkJCQk1MTA1OEFEQjFENjc5MkMxMDA5QTUzOEMgLyogTW9ja0dhbWVwYWQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwNThBREQxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1l
cGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE1N0VCRkExRTNBQjY3OTAwQUM5
RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkwNzQwQjE0NDI1REUzMUY4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENkYzRTkwMUMxRUNCMjcwMDYxREJENCAvKiBNb2Nr
UGFnZU92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5N0YwNDcxOURENDEzQzAwMUVF
OUMzIC8qIE1vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUFG
RURFNzFGOEJGRjZEMDA4NzAxM0YgLyogTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGlu
TmFtZXMuaAppbmRleCBkYWYxNzlmMmNmNDA5N2FlMTI4YmJiZDE0MGJhOWUzMjgwNGY2MGRiLi5m
YzM3MzdlMjJkMThiNzUyM2I3M2UyYmIxZTE0ZTUzZmFmNDM3OWU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0xNzEsNiArMTcx
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKE1lZGlhUXVlcnlMaXN0RXZlbnQp
IFwKICAgICBtYWNybyhNZWRpYVJlY29yZGVyKSBcCiAgICAgbWFjcm8oTWVkaWFSZWNvcmRlckVy
cm9yRXZlbnQpIFwKKyAgICBtYWNybyhNZWRpYVNlc3Npb25Db29yZGluYXRvcikgXAogICAgIG1h
Y3JvKE1lZGlhU291cmNlKSBcCiAgICAgbWFjcm8oTWVkaWFTdHJlYW0pIFwKICAgICBtYWNybyhN
ZWRpYVN0cmVhbVRyYWNrKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCA2MDA4YjA4MGYw
ZTg0Y2NjZGMxNWM3Y2MzMmJhNWQzNDMzZmM2Y2ZhLi40NjVlMzNjYTJlZjI3MTU4Njk4MDQyY2Qw
ZTgzM2VmNzU1NDIxMDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTEwMSw2ICsxMDEs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oY29ubmVjdGluZykgXAogICAgIG1h
Y3JvKGNvbnRleHRtZW51KSBcCiAgICAgbWFjcm8oY29udHJvbGxlcmNoYW5nZSkgXAorICAgIG1h
Y3JvKGNvb3JkaW5hdG9yY2hhbmdlKSBcCiAgICAgbWFjcm8oY29weSkgXAogICAgIG1hY3JvKGN1
ZWNoYW5nZSkgXAogICAgIG1hY3JvKGN1dCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4KaW5kZXggNjk2ZWE5Y2ViZDIxZDE0OWFlYTVlMGJiNjQzN2FjZWZiOGNhMjAz
NC4uN2EyYzBhOGQ4YzA3NjE5ZDBlNjdiMjI3YTMwNGU2MmFjZjg5ZWU3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC0yMyw2ICsyMyw3IEBAIE1lZGlhRGV2
aWNlcyBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KIE1lZGlhS2V5U2Vzc2lvbiBjb25kaXRpb25h
bD1FTkNSWVBURURfTUVESUEKIE1lZGlhUXVlcnlMaXN0CiBNZWRpYVJlY29yZGVyIGNvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTQorTWVkaWFTZXNzaW9uIGNvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05f
Q09PUkRJTkFUT1IKIE1lZGlhU291cmNlIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQogTWVkaWFT
dHJlYW0gY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBNZWRpYVN0cmVhbVRyYWNrIGNvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0Nh
bGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaAppbmRleCBjZTFj
M2E1NjgyZmYxYjdkYTM5OGY5YzNhNDQwYTc0OTdkOTMyZjE5Li42NzlmYjljODlkYWE3ODhiYmJm
NWE3NTc1ZDljZDIxMTkwNDYyNTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3Ry
aW5nQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaApA
QCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lk
PiBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIGRhdGEpID0gMDsKIAogICAgIC8vIEhlbHBlciB0
byBwb3N0IGNhbGxiYWNrIHRhc2suCi0gICAgdm9pZCBzY2hlZHVsZUNhbGxiYWNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIGRhdGEpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2NoZWR1bGVDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3Ry
aW5nJiBkYXRhKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTExNzg1MTEzOTlmNDE1Zjc4MWIz
MmFhZWU3NmMxMTNlYjE3ZWJjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0w
LDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBz
dGF0ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNb
XSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVOb3RoaW5nIiksCisg
ICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlTWV0YWRhdGEiKSwKKyAgICAgICAg
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVDdXJyZW50RGF0YSIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUZ1dHVyZURhdGEiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIkhhdmVFbm91Z2hEYXRhIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nKSwgIk1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU6OkhhdmVOb3RoaW5nIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSkgPT0gMSwgIk1lZGlhU2Vzc2lv
blJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEpID09IDIsICJN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEgaXMgbm90IDIgYXMgZXhwZWN0
ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURh
dGEpID09IDMsICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSBpcyBub3Qg
MyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlRW5vdWdoRGF0YSkgPT0gNCwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hE
YXRhIGlzIG5vdCA0IGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVf
dD4oc3RhdGUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVz
W3N0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpXTsKK30KKworU3RyaW5nIGNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lv
blBsYXliYWNrU3RhdGUgc3RhdGUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJO
b25lIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJQYXVzZWQiKSwKKyAgICAg
ICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlBsYXlpbmciKSwKKyAgICB9OworICAgIHN0YXRp
Y19hc3NlcnQoIXN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSksICJNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlOjpOb25lIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCkgPT0gMSwgIk1lZGlhU2Vzc2lvblBsYXli
YWNrU3RhdGU6OlBhdXNlZCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3Nl
cnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nKSA9PSAyLCAiTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZTo6UGxheWluZyBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChz
dGF0aWNfY2FzdDxzaXplX3Q+KHN0YXRlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7Cisg
ICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KHN0YXRlKV07Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkx
MGRjNTFkMmE2ZjgwYWJjOTdhYTYwN2Q5ZTlhNTEwMTUwZjMyZWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiRXhj
ZXB0aW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4K
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8UGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKKworICAgIHVzaW5nIFNlZWtD
b21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0
aW9uPiYmKT47CisgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhkb3VibGUsIFNlZWtDb21wbGV0ZWRD
YWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBQbGF5Q29tcGxldGVkQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+OworICAgIHZpcnR1YWwg
dm9pZCBwbGF5KFBsYXlDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBQYXVz
ZUNvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNl
cHRpb24+JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFj
ayYmKSA9IDA7CisKKyAgICB1c2luZyBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPjsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYpID0g
MDsKKworICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYgbG9nZ2VyLCBjb25zdCB2b2lk
KiBsb2dJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKGxv
Z2dlcik7CisgICAgICAgIG1fbG9nSWRlbnRpZmllciA9IGxvZ0lkZW50aWZpZXI7CisgICAgfQor
CisgICAgc3RydWN0IE1lZGlhUG9zaXRpb25TdGF0ZSB7CisgICAgICAgIGRvdWJsZSBkdXJhdGlv
biA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKKyAgICAgICAgZG91
YmxlIHBsYXliYWNrUmF0ZSA9IDE7CisgICAgICAgIGRvdWJsZSBwb3NpdGlvbiA9IDA7CisgICAg
fTsKKworICAgIGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSA6IHVpbnQ4X3Qgewor
ICAgICAgICBIYXZlTm90aGluZywKKyAgICAgICAgSGF2ZU1ldGFkYXRhLAorICAgICAgICBIYXZl
Q3VycmVudERhdGEsCisgICAgICAgIEhhdmVGdXR1cmVEYXRhLAorICAgICAgICBIYXZlRW5vdWdo
RGF0YSwKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
IDogdWludDhfdCB7CisgICAgICAgIE5vbmUsCisgICAgICAgIFBhdXNlZCwKKyAgICAgICAgUGxh
eWluZywKKyAgICB9OworCisgICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9w
dGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZHlT
dGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSA9IDA7CisK
K3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KCkgPSBkZWZhdWx0OworCisgICAgY29uc3QgTG9nZ2VyKiBsb2dnZXJQdHIoKSBjb25zdCB7IHJl
dHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFz
c05hbWUoKSBjb25zdCB7IHJldHVybiAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciI7
IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgeyByZXR1cm4gTG9nTWVk
aWE7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAg
ICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Cit9OworCitTdHJpbmcgY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZSk7CitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CisK
K30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDZlNDljOTc1OWMzOWU4ZDc2MmVhZTgwMDk3
OTY1OTNlYjZiOGQ2MDkuLjQxZDczMjM5YmUxNjZmNzgxNTg5OThjNGM1MDVhNjMxZGZhODQ5NmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMzNCw2ICszMzQsMTIgQEAK
ICNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisj
aW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmgiCisjZW5kaWYKKwogdXNpbmcgSlNDOjpD
YWxsRGF0YTsKIHVzaW5nIEpTQzo6Q29kZUJsb2NrOwogdXNpbmcgSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGU7CkBAIC02MDUyLDggKzYwNTgsNDEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxz
OjpzZW5kTWVkaWFTZXNzaW9uQWN0aW9uKE1lZGlhU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QKICAg
ICB9CiAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiB9CisKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKK0V4Y2VwdGlvbk9yPHZvaWQ+IElu
dGVybmFsczo6cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmIGxpc3RlbmVyKQor
eworICAgIGlmIChtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+ZG9tV2luZG93KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAgIGlmICghZG9jdW1lbnQtPnNldHRpbmdz
KCkubWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAgIGF1dG8mIHNlc3Npb24gPSBOYXZp
Z2F0b3JNZWRpYVNlc3Npb246Om1lZGlhU2Vzc2lvbihkb2N1bWVudC0+ZG9tV2luZG93KCktPm5h
dmlnYXRvcigpKTsKKyAgICBhdXRvIG1vY2sgPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmNyZWF0ZShjb250ZXh0LCBXVEZNb3ZlKGxpc3RlbmVyKSk7CisgICAgbV9tb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IgPSAmbW9jay5nZXQoKTsKKyAgICBtX21lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShtb2NrLmdldCgpKTsKKyAgICBz
ZXNzaW9uLnNldENvb3JkaW5hdG9yKG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuZ2V0KCkpOwor
CisgICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzZXRN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21tYW5kc1Nob3VsZEZhaWwoYm9vbCBzaG91bGRG
YWlsKQoreworICAgIGlmICghbV9tb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgbV9tb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3ItPnNldENvbW1hbmRzU2hvdWxkRmFpbChzaG91bGRGYWlsKTsK
KyAgICByZXR1cm4geyB9OworfQogI2VuZGlmCiAKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VT
U0lPTikKKwogY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzdHJpbmcoUGFydGlhbE9yZGVyaW5nIG9y
ZGVyaW5nKQogewogICAgIGlmIChpc19sdChvcmRlcmluZykpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAppbmRleCAyOTgyNDdmNDgyNGRhMjUzMjViN2E5MzY4YTIzOWI4ZTc0NTJmZGFkLi5m
MzUxOTRiMGUyODk4NWEyYWU4YTM4YTNlMGQ4ZWZkODM2M2ZkNDQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKQEAgLTEzNCw2ICsxMzQsMTAgQEAgY2xhc3MgV2ViWFJUZXN0OwogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogY2xhc3MgTWVkaWFTZXNzaW9uOwogc3RydWN0IE1lZGlh
U2Vzc2lvbkFjdGlvbkRldGFpbHM7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCitjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKK2NsYXNzIE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjsKKyNlbmRpZgogI2VuZGlmCiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5
cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKQEAgLTEwODAsNiArMTA4NCwxMiBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgRXhjZXB0aW9uT3I8ZG91YmxlPiBj
dXJyZW50TWVkaWFTZXNzaW9uUG9zaXRpb24oY29uc3QgTWVkaWFTZXNzaW9uJik7CiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2VuZE1lZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNlc3Npb24mLCBjb25z
dCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiByZWdpc3Rlck1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPFN0cmluZ0Nh
bGxiYWNrPiYmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JDb21tYW5kc1Nob3VsZEZhaWwoYm9vbCk7CisjZW5kaWYKKwogI2VuZGlmCiAKICAg
ICBlbnVtIFRyZWVUeXBlIDogdWludDhfdCB7IFRyZWUsIFNoYWRvd0luY2x1ZGluZ1RyZWUsIENv
bXBvc2VkVHJlZSB9OwpAQCAtMTEyMiw2ICsxMTMyLDEyIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KFdFQlhSKQogICAgIFJlZlB0cjxXZWJYUlRlc3Q+IG1feHJUZXN0OwogI2VuZGlmCisKKyNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBSZWZQdHI8TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I+IG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CisgICAgUmVmUHRyPE1vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9tb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7Cisj
ZW5kaWYKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCmluZGV4IGFhYzJlNzdkODJjMmUyMWQ3N2JkMTI5MGNjNTE3YTQyYTM3ODY2
NTMuLmE1ZWNjN2QzNTBkMDNkZWZiN2IzNjczYmYxNTY5ODZlODI4NDExOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTk3Niw2ICs5NzYsOCBAQCBlbnVtIFRyZWVUeXBl
IHsKIAogICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OLCBNYXlUaHJvd0V4Y2VwdGlvbl0g
ZG91YmxlIGN1cnJlbnRNZWRpYVNlc3Npb25Qb3NpdGlvbihNZWRpYVNlc3Npb24gc2Vzc2lvbik7
CiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT04sIE1heVRocm93RXhjZXB0aW9uXSB1bmRl
ZmluZWQgc2VuZE1lZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNlc3Npb24gc2Vzc2lvbiwgTWVkaWFT
ZXNzaW9uQWN0aW9uRGV0YWlscyBhY3Rpb25EZXRhaWxzKTsKKyAgICBbQ29uZGl0aW9uYWw9TUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUiwgTWF5VGhyb3dFeGNlcHRpb24sIENhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIHVuZGVmaW5lZCByZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcihTdHJpbmdDYWxsYmFjayBjYWxsYmFjayk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IsIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0TW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKGJvb2xlYW4gc2hvdWxk
RmFpbCk7CiAKICAgICBET01TdHJpbmcgdHJlZU9yZGVyKE5vZGUgYSwgTm9kZSBiLCBvcHRpb25h
bCBUcmVlVHlwZSB0cmVlID0gIlRyZWUiKTsKICAgICBET01TdHJpbmcgdHJlZU9yZGVyQm91bmRh
cnlQb2ludHMoTm9kZSBjb250YWluZXJBLCB1bnNpZ25lZCBsb25nIG9mZnNldEEsIE5vZGUgY29u
dGFpbmVyQiwgdW5zaWduZWQgbG9uZyBvZmZzZXRCLCBvcHRpb25hbCBUcmVlVHlwZSB0cmVlID0g
IlRyZWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzc1ZmI2MTMyNTBkNzFkNzExNDU3Njc0
OTQzYTVjMDE3ODUyOWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgorI2luY2x1ZGUgIlN0cmluZ0NhbGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9VVUlELmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitSZWY8TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKGNvbnRleHQsIFdURk1v
dmUobGlzdGVuZXIpKSk7Cit9CisKK01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJl
ZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKKyAgICA6IG1fY29udGV4dChjb250ZXh0
KQorICAgICwgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyKFdURk1vdmUobGlzdGVuZXIpKQoreworfQor
CitPcHRpb25hbDxFeGNlcHRpb24+IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVzdWx0
KCkgY29uc3QKK3sKKyAgICBpZiAobV9mYWlsQ29tbWFuZHMpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
K30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGlt
ZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19J
Rl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNr
KFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjayhyZXN1bHQoKSk7CisgICAgfSk7Cit9
CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KFBsYXlDb21wbGV0ZWRD
YWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURF
TlRJRklFUik7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAg
ICAgY2FsbGJhY2socmVzdWx0KCkpOworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6cGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQor
eworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9jb250
ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2socmVzdWx0KCkp
OworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJh
Y2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7
CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRl
eHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjayhyZXN1bHQoKSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlv
blN0YXRlQ2hhbmdlZChPcHRpb25hbDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
ZWRpYVBvc2l0aW9uU3RhdGU+KQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURF
TlRJRklFUik7CisgICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1f
Y29udGV4dC5nZXQoKSwgInBvc2l0aW9uU3RhdGVDaGFuZ2VkIik7Cit9CisKK3ZvaWQgTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQoreworICAgIEFM
V0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgc3RhdGUpOworICAgIG1fc3RhdGVD
aGFuZ2VMaXN0ZW5lci0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCksICJyZWFkeVN0
YXRlQ2hhbmdlZCIpOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxh
eWJhY2tTdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxF
KExPR0lERU5USUZJRVIsIHN0YXRlKTsKKyAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVk
dWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgpLCAicGxheWJhY2tTdGF0ZUNoYW5nZWQiKTsKK30K
KworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZTM1ODkzZDdlZTZkZmQyNTBkOThjMzBkYWZhMjU5NTMxY2E2MmQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgIkdl
bmVyaWNFdmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFN0cmluZ0NhbGxiYWNr
OworCitjbGFzcyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKKwor
ICAgIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
UmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKKyAgICB2aXJ0dWFsIH5Nb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIHNldENvbW1hbmRzU2hvdWxkRmFp
bChib29sIHNob3VsZEZhaWwpIHsgbV9mYWlsQ29tbWFuZHMgPSBzaG91bGRGYWlsOyB9CisKK3By
aXZhdGU6CisKKyAgICB2b2lkIHNlZWtUbyhkb3VibGUsIFNlZWtDb21wbGV0ZWRDYWxsYmFjayYm
KSBmaW5hbDsKKyAgICB2b2lkIHBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOwor
ICAgIHZvaWQgcGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lk
IHNldFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmKSBmaW5h
bDsKKworICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlv
blN0YXRlPikgZmluYWw7CisgICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlKSBmaW5hbDsKKyAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUpIGZpbmFsOworCisgICAgT3B0aW9uYWw8RXhjZXB0aW9uPiByZXN1
bHQoKSBjb25zdDsKKworICAgIFJlZjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX2NvbnRleHQ7
CisgICAgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiBtX3N0YXRlQ2hhbmdlTGlzdGVuZXI7CisgICAg
Ym9vbCBtX2ZhaWxDb21tYW5kcyB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMTA4YTdmYTM1Y2MzOWEyZDRl
MTQ3NDE4MmFmNTMyMWVmMDZiNWYwLi40OGQ2ZmRhYmRjYmEzMGFiOWEwMjRhMjcwMTMzNzFhYTVm
NjE4MTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVu
dGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUw
ODg2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHBsYXRmb3JtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lv
bi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEv
bWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWw6IEFkZGVkLgorCiAyMDIxLTAzLTEx
ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBBbGln
biBKU0dsb2JhbE9iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoKSB3aXRoIHRoZSBzcGVjIGFuZCBv
dGhlciBydW50aW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzNlNGQxOWNhYzI3YzUwYzIxZGJl
MjdhYjE0YTQ5MGI1M2E1ZjM5MC4uNmVkZWYxMzc4MzA4ZDgwOTdiOWJlMWI5NmFmMzRmMWYwNDFk
OTBjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NjQwLDYgKzQ2NDAsNyBAQCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1hZnRlci1pbml0
aWFsLWxheW91dC93cgogIyBDb2NvYS1vbmx5CiBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtaGRy
LXN3aXRjaC5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNhbnBsYXl0aHJv
dWdoLXdlYm0uaHRtbCBbIFNraXAgXQorbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5h
dG9yLmh0bWwgWyBTa2lwIF0KIAogIyBUaGVzZSB0ZXN0cyByZWx5IG9uIHdlYmtpdC10ZXN0LXJ1
bm5lciBmbGFncyB0aGF0IGFyZW4ndCBpbXBsZW1lbnRlZCBmb3IgRHVtcFJlbmRlclRyZWUsIHNv
IHRoZXkgd2lsbCBmYWlsIHVuZGVyIGxlZ2FjeSBXZWJLaXQuCiBlZGl0aW5nL3NlbGVjdGlvbi9l
eHBhbmRvLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk0MDZmNDgyZjQ4OWM3MjZmNDcyODgwZWU2Njc2ZjkyNGQwNWU1NjQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3It
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsODEgQEAKKworKiogVGhlcmUgc2hvdWxkIGJlIG5vIG1l
ZGlhU2Vzc2lvbi5jb29yZGluYXRvciBpbml0aWFsbHkuCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbi5jb29yZGluYXRvciA9PSAndW5kZWZpbmVkJykgT0sKKworKiogVGVzdCB0aGF0
IG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcmNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIGl0IGNo
YW5nZXMuCitSVU4oaW50ZXJuYWxzLnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KGNoYW5nZUhhbmRsZXIpKQorRVZFTlQoY29vcmRpbmF0b3JjaGFuZ2UpCitFWFBFQ1RFRCAobmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciAhPSAndW5kZWZpbmVkJykgT0sKKworKiog
VGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCBwcm9taXNlcyByZXNv
bHZlIGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBjYWxsZWQuCitUZXN0IG5h
dmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpCitBQ1RJT04ocGxheSkKK0VY
UEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3BsYXknKSBPSworCitUZXN0IG5hdmlnYXRvci5tZWRp
YVNlc3Npb24uY29vcmRpbmF0b3IucGF1c2UoKQorQUNUSU9OKHBhdXNlKQorRVhQRUNURUQgKGxh
dGVzdEFjdGlvbiA9PSAncGF1c2UnKSBPSworCitUZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
Y29vcmRpbmF0b3Iuc2Vla3RvKCkKK0FDVElPTihzZWVrdG8pCitFWFBFQ1RFRCAobGF0ZXN0QWN0
aW9uID09ICdzZWVrdG8nKSBPSworCisqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRo
b2RzIHN1Y2NlZWQsIHByb21pc2VzIHJlamVjdCBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5k
bGVycyBhcmUgbm90IGNhbGxlZC4KK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGlu
YXRvci5wbGF5KCkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisKK1Rlc3QgbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpCitFWFBFQ1RFRCAobGF0ZXN0
QWN0aW9uID09ICcnKSBPSworCitUZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0
b3Iuc2Vla3RvKCkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisKKyoqIFRlc3Qg
dGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwb3NpdGlvblN0YXRl
IGNoYW5nZXMuCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKHsg
ZHVyYXRpb246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSkpCitFWFBFQ1RFRCAo
bGF0ZXN0Q2hhbmdlID09ICdwb3NpdGlvblN0YXRlQ2hhbmdlZCcpIE9LCisKKyoqIFRlc3QgdGhh
dCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiByZWFkeVN0YXRlIGNoYW5n
ZXMuCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZl
Tm90aGluZycpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hh
dmVNZXRhZGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdl
ZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdo
YXZlTWV0YWRhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFk
eVN0YXRlID09ICdoYXZlTWV0YWRhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
cmVhZHlTdGF0ZSA9ICdoYXZlQ3VycmVudERhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9
PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Np
b24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUN1cnJlbnREYXRhJykgT0sKKworRVhQRUNURUQgKG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUN1cnJlbnREYXRhJykgT0sKK1JV
TihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUZ1dHVyZURhdGEnKQor
RVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNU
RUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUZ1dHVyZURhdGEn
KSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdo
YXZlRnV0dXJlRGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRl
ID0gJ2hhdmVFbm91Z2hEYXRhJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3JlYWR5U3Rh
dGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3Rh
dGUgPT0gJ2hhdmVFbm91Z2hEYXRhJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUVub3VnaERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlTm90aGluZycpCitFWFBFQ1RFRCAobGF0ZXN0
Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTm90aGluZycpIE9LCisKKyoqIFRlc3QgdGhh
dCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwbGF5YmFja1N0YXRlIGNo
YW5nZXMuCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09
ICdub25lJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAn
cGF1c2VkJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3BsYXliYWNrU3RhdGVDaGFuZ2Vk
JykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0g
J3BhdXNlZCcpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNr
U3RhdGUgPT0gJ3BhdXNlZCcpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFj
a1N0YXRlID0gJ3BsYXlpbmcnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncGxheWJhY2tT
dGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJh
Y2tTdGF0ZSA9PSAncGxheWluZycpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BsYXlpbmcnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucGxheWJhY2tTdGF0ZSA9ICdub25lJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0g
J3BsYXliYWNrU3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnBsYXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSworCisKK0VORCBPRiBURVNUCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5o
dG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTc4MTE0YThiNTMwZjRkZDk5YzMxMThkOWE1NzJmZWI1ZTVjMTc0ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1j
b29yZGluYXRvci5odG1sCkBAIC0wLDAgKzEsMTMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHRpdGxlPm1vY2stbWVkaWFzZXNzaW9uLWNvb3JkaW5hdG9yPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdD4KKworICAgIGZ1bmN0aW9uIGNoYW5nZUhhbmRsZXIoY2hhbmdlKQorICAgIHsKKyAgICAg
ICAgd2luZG93LmxhdGVzdENoYW5nZSA9IGNoYW5nZTsKKyAgICB9CisKKyAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKworICAgICAgICB3aW5kb3cu
bGF0ZXN0QWN0aW9uID0gJyc7CisgICAgICAgIHdpbmRvdy5sYXRlc3RDaGFuZ2UgPSAnJzsKKwor
ICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdU
aGlzIHRlc3QgcmVxdWlyZXMgSW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBjb25zdCBjaGFuZ2VQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7CisgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmFkZEV2ZW50TGlzdGVu
ZXIoJ2Nvb3JkaW5hdG9yY2hhbmdlJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKGBFVkVOVCgke2V2ZW50LnR5cGV9KWApOworICAgICAgICAgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBjb25zb2xlV3Jp
dGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRoZXJlIHNob3VsZCBiZSBubyBtZWRp
YVNlc3Npb24uY29vcmRpbmF0b3IgaW5pdGlhbGx5LicpCisKKyAgICAgICAgdGVzdEV4cGVjdGVk
KCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yJywgdW5kZWZpbmVkKTsKKworICAg
ICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhh
dCBtZWRpYVNlc3Npb24uY29vcmRpbmF0b3JjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiBpdCBj
aGFuZ2VzLicpCisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IoY2hhbmdlSGFuZGxlciknKTsKKworICAgICAgICBhd2FpdCBjaGFuZ2VQ
cm9taXNlOworICAgICAgICAKKyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFT
ZXNzaW9uLmNvb3JkaW5hdG9yJywgdW5kZWZpbmVkLCAnIT0nKTsKKworICAgICAgICBbJ3BsYXkn
LCAncGF1c2UnLCAnc2Vla3RvJ10uZm9yRWFjaChhY3Rpb24gPT4geworICAgICAgICAgICAgbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRBY3Rpb25IYW5kbGVyKGFjdGlvbiwgYWN0aW9uRGV0YWls
cyA9PiB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBBQ1RJT04oJHthY3Rpb25EZXRh
aWxzLmFjdGlvbn0pYCk7CisgICAgICAgICAgICAgICAgbGF0ZXN0QWN0aW9uID0gYWN0aW9uRGV0
YWlscy5hY3Rpb247CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgbGV0
IHRlc3RBY3Rpb24gPSBhc3luYyAoYWN0aW9uLCBmdW5jLCBmb3JjZUZhaWx1cmUpID0+IHsKKyAg
ICAgICAgICAgIGxhdGVzdEFjdGlvbiA9ICcnOworCisgICAgICAgICAgICBsZXQgc3VjY2VlZGVk
OworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYFRlc3Qg
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci4ke2FjdGlvbn0oKWApOworICAgICAg
ICAgICAgICAgIGF3YWl0IGZ1bmMoKTsKKyAgICAgICAgICAgICAgICBpZiAoZm9yY2VGYWlsdXJl
KQorICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEZBSUw6ICR7ZnVuYy50b1N0cmlu
ZygpfSByZXNvbHZlZCBidXQgc2hvdWxkIGhhdmUgcmVqZWN0ZWRgKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ2xhdGVzdEFjdGlvbicsIGFjdGlvbik7CisgICAgICAgICAgICB9IGNh
dGNoIChleCkgeworICAgICAgICAgICAgICAgIGlmICghZm9yY2VGYWlsdXJlKQorICAgICAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoYEZBSUw6ICR7ZnVuYy50b1N0cmluZygpfSB0aHJldyAk
e2V4fWApOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0aW9uJywgJycp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAg
ICB9OworCisgICAgICAgIGxldCBhY3Rpb25zID0gWyAKKyAgICAgICAgICAgIHsgYWN0aW9uOiAn
cGxheScsIGZ1bmMgOiAoKSA9PiB7IHJldHVybiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yLnBsYXkoKSB9LCB9LAorICAgICAgICAgICAgeyBhY3Rpb246ICdwYXVzZScsIGZ1bmMg
OiAoKSA9PiB7IHJldHVybiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBhdXNl
KCkgfSwgfSwKKyAgICAgICAgICAgIHsgYWN0aW9uOiAnc2Vla3RvJywgZnVuYyA6ICgpID0+IHsg
cmV0dXJuIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEwKSB9LCB9
LAorICAgICAgICBdOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNv
bGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCAg
cHJvbWlzZXMgcmVzb2x2ZSBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUgY2Fs
bGVkLicpCisgICAgICAgIGludGVybmFscy5zZXRNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JD
b21tYW5kc1Nob3VsZEZhaWwoZmFsc2UpOworICAgICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0
aW9ucykKKyAgICAgICAgICAgIGF3YWl0IHRlc3RBY3Rpb24oYWN0aW9uLmFjdGlvbiwgYWN0aW9u
LmZ1bmMsIGZhbHNlKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCB3aGVu
IGNvb3JkaW5hdG9yIG1ldGhvZHMgc3VjY2VlZCwgIHByb21pc2VzIHJlamVjdCBhbmQgbWVkaWFT
ZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUgbm90IGNhbGxlZC4nKQorICAgICAgICBpbnRlcm5h
bHMuc2V0TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKHRydWUp
OworICAgICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykKKyAgICAgICAgICAgIGF3YWl0
IHRlc3RBY3Rpb24oYWN0aW9uLmFjdGlvbiwgYWN0aW9uLmZ1bmMsIHRydWUpOworCisgICAgICAg
IGNvbnNvbGVXcml0ZShgKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGlu
YXRvciB3aGVuIHBvc2l0aW9uU3RhdGUgY2hhbmdlcy5gKQorICAgICAgICBydW4oJ25hdmlnYXRv
ci5tZWRpYVNlc3Npb24uc2V0UG9zaXRpb25TdGF0ZSh7IGR1cmF0aW9uOiAxLCBwbGF5YmFja1Jh
dGU6IDEsIHBvc2l0aW9uOiAwIH0pJyk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50
dWFsbHkoJ2xhdGVzdENoYW5nZScsICdwb3NpdGlvblN0YXRlQ2hhbmdlZCcsICc9PScsIDEwMCk7
CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBU
ZXN0IHRoYXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcmVhZHlTdGF0
ZSBjaGFuZ2VzLicpCisgICAgICAgIGxldCBwcmV2aW91c1N0YXRlID0gJ2hhdmVOb3RoaW5nJzsK
KyAgICAgICAgZm9yIChsZXQgc3RhdGUgb2YgWydoYXZlTWV0YWRhdGEnLCAnaGF2ZUN1cnJlbnRE
YXRhJywgJ2hhdmVGdXR1cmVEYXRhJywgJ2hhdmVFbm91Z2hEYXRhJywgJ2hhdmVOb3RoaW5nJ10p
IHsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFk
eVN0YXRlJywgcHJldmlvdXNTdGF0ZSk7CisKKyAgICAgICAgICAgIGxhdGVzdENoYW5nZSA9ICcn
OworICAgICAgICAgICAgcnVuKGBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAn
JHtzdGF0ZX0nYCk7CisKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J2xhdGVzdENoYW5nZScsICdyZWFkeVN0YXRlQ2hhbmdlZCcsICc9PScsIDEwMCk7CisKKyAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlJywg
c3RhdGUpOworICAgICAgICAgICAgcHJldmlvdXNTdGF0ZSA9IHN0YXRlOworICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgfTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJyoq
IFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwbGF5YmFj
a1N0YXRlIGNoYW5nZXMuJykKKyAgICAgICAgcHJldmlvdXNTdGF0ZSA9ICdub25lJzsKKyAgICAg
ICAgZm9yIChsZXQgc3RhdGUgb2YgWydwYXVzZWQnLCAncGxheWluZycsICdub25lJ10pIHsKKwor
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNr
U3RhdGUnLCBwcmV2aW91c1N0YXRlKTsKKworICAgICAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7
CisgICAgICAgICAgICBydW4oYG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9
ICcke3N0YXRlfSdgKTsKKworICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxs
eSgnbGF0ZXN0Q2hhbmdlJywgJ3BsYXliYWNrU3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsKKwor
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNr
U3RhdGUnLCBzdGF0ZSk7CisgICAgICAgICAgICBwcmV2aW91c1N0YXRlID0gc3RhdGU7CisgICAg
ICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICB9OworCisgICAgICAgIGNvbnNvbGVX
cml0ZSgnJyk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9LCB7b25jZTogdHJ1ZX0pOworCisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggYWM5NjUwZDcwN2ZkMWY1OGJiNmVkYTNhMDJmOGIwZjI2MzFhZGI5YS4uZTA5
MGUyYmM0OTk4NTA0ODhlYjYzNDViMmU1MTE2NDIzMmQ5NWMwYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIyNjYsNyArMjI2Niw2IEBAIHdlYmtpdC5v
cmcvYi8yMjAzMzIgWyBCaWdTdXIrIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
aW1lc25pZmYvbWltZS10CiB3ZWJraXQub3JnL2IvMjIxMTUyIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVy
ZmFjZS9hdWRpb3dvcmtsZXRub2RlLWF1dG9tYXRpYy1wdWxsLmh0dHBzLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjIxNDkxIGFuaW1hdGlvbnMva2V5ZnJhbWUtcHNldWRv
LXNoYWRvdy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzIyMTk3MyBbIEJp
Z1N1ciBdIHBsYXRmb3JtL21hYy1iaWdzdXIvbWVkaWEvbWVkaWEtd2VibS1uby1kdXJhdGlvbi5o
dG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMjE5MzUgbWVkaWEvd2ViYXVkaW8tYmFj
a2dyb3VuZC1wbGF5YmFjay5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424070</attachid>
            <date>2021-03-23 14:50:05 -0700</date>
            <delta_ts>2021-03-23 16:56:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222158-20210323145003.patch</filename>
            <type>text/plain</type>
            <size>120890</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE3ZTY3NzU1MjFkMDdmZjlhZDlhYTBk
M2YyNzExZDJhNjIwNzYwYzAuLmM5YWJjNTdhYWU4ODg3NmM5YzY2ZjdmNDEwZmNhMmRkZTZkMjdh
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAzLTE5ICBTYW0gV2VpbmlnICA8
d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgUHJvcGVydHlOYW1lIHBhcmFtZXRlciB0
byBjdXN0b20gc2V0dGVycyB0byBhbGxvdyBzaGFyZWQgaW1wbGVtZW50YXRpb25zIHRvIGRvIGxh
dGUgbmFtZSBsb29rdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MWQ0NTIzZDU5YTYzNGYzZDI3MWM0NWRlOTU1
ZjAyOTdlYjI4NzY3Li44MDkyMGFkZmVkMzc2ZTg2MjA1YjdiNjYxMzU0NDRmNWEwNTIwY2JiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEzIEBACisyMDIxLTAyLTE4ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIEV4cGVyaW1lbnRh
bCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMjE1OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQ1MDg4
NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGFuIGV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IsIGFuIG9iamVjdCB0aGF0
IHByb3ZpZGVzIGFuIGludGVyZmFjZQorICAgICAgICB0aGF0IGFsbG93cyBzY3JpcHQgdG8gY29v
cmRpbmF0ZSBjaGFuZ2VzIHRvIE1lZGlhU2Vzc2lvbiB3aXRoIHRoZSBVc2VyIEFnZW50LiBBbHNv
CisgICAgICAgIGFkZCBhbiBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIHBsYXlsaXN0IGludGVy
ZmFjZS4KKworICAgICAgICBUaGUgY2hhbmdlcyBhcmUgYmVoaW5kIG5ldyBleHBlcmltZW50YWwg
ZmVhdHVyZSBmbGFncywKKyAgICAgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JFbmFibGVkIGFu
ZCBNZWRpYVNlc3Npb25QbGF5bGlzdEVuYWJsZWQuCisKKyAgICAgICAgVGVzdDogbWVkaWEvbWVk
aWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6IEFkZCBuZXcgSURMIGZpbGVzLgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OiBBZGQgbmV3IGRlcml2ZWQgc291cmNlcy4KKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBBZGQgbmV3IElETC4KKworICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFNZXRhZGF0YTo6Y3JlYXRlKTogU2V0IHRyYWNrSWRlbnRpZmllciBmcm9tIGluaXQgZGF0
YS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OnNldFRyYWNrSWRlbnRpZmllcik6
IHRyYWNrSWRlbnRpZmllciBzZXR0ZXIuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFNZXRhZGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFNZXRhZGF0YTo6dHJhY2tJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1l
dGFkYXRhLmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGFJbml0Lmg6IEFkZCB0cmFja0lkZW50aWZpZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYU1l
dGFkYXRhSW5pdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRh
dGFJbml0OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0
YWRhdGFJbml0LmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbik6
IEluaXRpYWxpemUgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uOjpzZXRNZXRhZGF0YSk6IG1ldGFkYXRhVXBkYXRlZCAtPiBub3RpZnlN
ZXRhZGF0YU9ic2VydmVycy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0UmVh
ZHlTdGF0ZSk6IFNlc3Npb24gcmVhZHlTdGF0ZSBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNlc3Npb246OnNldENvb3JkaW5hdG9yKTogQ29vcmRpbmF0b3Igc2V0dGVyLiBQb3N0ICdj
b29yZGluYXRvcmNoYW5nZScKKyAgICAgICAgZXZlbnQgYWZ0ZXIgY2hhbmdlLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpzZXRQbGF5bGlzdCk6IFBsYXlsaXN0IHNldHRlci4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0QWN0aW9uSGFuZGxlcik6IENhbGwgbm90
aWZ5QWN0aW9uSGFuZGxlck9ic2VydmVycy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bjo6c2V0UG9zaXRpb25TdGF0ZSk6IENhbGwgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycy4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bWV0YWRhdGFVcGRhdGVkKTogQ2FsbCBu
b3RpZnlNZXRhZGF0YU9ic2VydmVycy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6
YWRkT2JzZXJ2ZXIpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnJlbW92
ZU9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpmb3JFYWNo
T2JzZXJ2ZXIpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Om5vdGlmeU1l
dGFkYXRhT2JzZXJ2ZXJzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpu
b3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uOjpub3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2ZXJzKTogTmV3LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpub3RpZnlBY3Rpb25IYW5kbGVyT2JzZXJ2ZXJzKTogTmV3
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpub3RpZnlSZWFkeVN0YXRlT2JzZXJ2
ZXJzKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpjb29yZGluYXRvciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnBsYXlsaXN0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsOgorCisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGw6CisKKyAgICAgICAgTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IgcHJveGllcyBjYWxscyB0aHJvdWdoIHRoZSBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLAorICAgICAgICBhbmQgdGhlbiBjYWxscyB0aGUgZXF1aXZhbGVu
dCBNZWRpYVNlc3Npb24gbWV0aG9kZSBpZiB0aGUgcGxhdGZvcm0gY29vcmRpbmF0b3IgCisgICAg
ICAgIGlzIHN1Y2Nlc3NmdWwuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om5leHRDb29y
ZGluYXRvckxvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OnNldFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpzZXRNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OmxvZ0NoYW5uZWwpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmg6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpsb2dnZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OmxvZ0lkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsOiBOZXcuCisKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaDoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAg
ICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9y
eS5pbjoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzZXRMb2dnZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nZ2VyUHRyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0lkZW50aWZpZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9n
Q2xhc3NOYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OmxvZ0NoYW5uZWwgY29uc3QpOgorCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZWdpc3Rlck1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcik6IFJlZ2lzdGVyIHRoZSBtb2NrCisgICAgICAgIG1lZGlhIHNl
c3Npb24gY29vcmRpbmF0b3IgZm9yIHRlc3RpbmcuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKKyAgICAgICAgKiB0ZXN0
aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpz
ZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpw
bGF5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1
c2UpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRU
cmFjayk6CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDog
TmV3LgorCiAyMDIxLTAzLTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbXBsZW1lbnQgUlRDRGF0YUNoYW5uZWwgdHJhbnNmZXIgb3V0IG9mIHByb2Nlc3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggODliYzhmYmQwZmRlYjk0ODMzNDkyMjJh
YmIyMTMwNDFjZjkxNjdkMS4uM2I3Yjc5ZjZiZWRjMjk0ZWI0YjA4OTYxYjNjODQzYzI0NDkzYjFi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTYyMCw2ICs2MjAsMTkgQEAgTWVk
aWFSZWNvcmRlckVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAK
K01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJl
YWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IgQVBJIgor
ICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhwZXJpbWVudGFsIE1lZGlhU2Vz
c2lvbiBjb29yZGluYXRvciBBUEkiCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX1NFU1NJT05f
Q09PUkRJTkFUT1IpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBk
ZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2Vi
Q29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIE1lZGlhU2Vzc2lvbkVuYWJsZWQ6CiAgIHR5
cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJNZWRpYSBTZXNzaW9uIEFQSSIKQEAgLTYz
Myw2ICs2NDYsMTkgQEAgTWVkaWFTZXNzaW9uRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAg
ZGVmYXVsdDogZmFsc2UKIAorTWVkaWFTZXNzaW9uUGxheWxpc3RFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBwbGF5
bGlzdCBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBleHBlcmltZW50
YWwgTWVkaWFTZXNzaW9uIHBsYXlsaXN0IEFQSSIKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9QTEFZTElTVCkKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAg
ICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAg
ICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTW9kZWxFbGVtZW50RW5hYmxlZDoK
ICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkhUTUwgPG1vZGVsPiBlbGVtZW50
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4IDIzYmVmNjZjYjU5NDVjYzE4
YzU0NWIzMmNiMTk1YjRjMjI2Mjk1OTQuLjE5NzdjZWQ3ODQ5MDJhMDkxYzk4Njc3NzEwOGE5ZmUw
MWRmOWRmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTMyOCw2ICsz
MjgsMTQgQEAKICNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMgMQog
I2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikg
JiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTIw
MDAwCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1QpICYmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEyMDAwMAorI2RlZmlu
ZSBFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVk
KEVOQUJMRV9NRURJQV9TRVNTSU9OKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JN
KEFQUExFVFYpCiAjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9OIDEKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCBhYjhmNTJmMTdjNjAwMTRkYjgwMzZkNThmN2JhMmU1MWEzM2M0MmRi
Li5kZjU3MDk2OTU3MTBiMjliYjhlYmVhMzM1ZGNhOWYyMGFhYjEwYzkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMzMxLDEyICszMzEsMTcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklM
RVMKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdlLmlkbAogICAgIE1vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFNZXRhZGF0YUluaXQuaWRsCisgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRh
ZGF0YVBsYXlsaXN0TWl4aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3Np
dGlvblN0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwK
ICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCiAgICAgTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwKICAgICBNb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbAorICAgIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbAorICAgIE1vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCiAgICAgTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwKKyAgICBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbAorICAgIE1vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsCiAgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKIAogICAgIE1vZHVsZXMvbWVkaWFz
b3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDdlMWQ4ODhkYWM1YzkwY2M4Y2EwNmMw
YWEwMjAyYjZkN2Y2N2YwNmIuLjhjMzJkMzdiNGIxMTQxZjdkNzI0YzIzODYwYTZjNTZiMjk2YjA4
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dApAQCAtMTczLDEyICsxNzMsMTcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIu
aWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwKKyQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3IrTWVkaWFTZXNzaW9uLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNvdXJjZS9BdWRpb1RyYWNrK01lZGlhU291
cmNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNvdXJjZS9ET01VUkwrTWVkaWFT
b3VyY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IDE4YzkxZWFkOTVmZjIxZjlkNjM0MDhiODFmNWYzZTc0YmM2MzE3ZTUuLjQ4
NWE1MTMyNzRmYzAxN2Q5MGY0MWY0ZDc0NTUzMzQ0YjFlYmI1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMjk0LDYgKzEyOTQs
OCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
TWV0YWRhdGEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU01lZGlhTWV0YWRhdGEuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNZWRpYU1ldGFkYXRhSW5pdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YUluaXQuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYU1ldGFkYXRhUGxheWxpc3RN
aXhpbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVBvc2l0aW9uU3RhdGUuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhUG9zaXRpb25TdGF0ZS5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhUXVlcnlM
aXN0LmNwcApAQCAtMTMxMiw4ICsxMzE0LDE2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0
aW9uRGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Np
b25Db29yZGluYXRvck1peGluLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
U2Vzc2lvblBsYXlsaXN0TWl4aW4uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRl
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YVNlc3Npb25SZWFkeVN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU291cmNlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW0uY3BwCkBAIC0xMzQ4LDYgKzEzNTgs
OCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tD
RE1GYWN0b3J5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNb2NrQ0RNRmFjdG9yeS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tDb250ZW50RmlsdGVyU2V0dGlu
Z3MuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tQYWdlT3ZlcmxheS5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja1Bh
Z2VPdmVybGF5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTW9ja1BheW1lbnRBZGRyZXNzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggY2JhMGYzNTljYzRmMTViNDFmNTI0OTkzMzNkNDM0NjQyMTQxNmMyYS4uYTFlMDkxM2E2NzFh
ZDQ5OGU0ODI5ZDZjY2MyMWExNGY5OGZiMTFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC0yMDcsMTIgKzIwNywxNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsIFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3Rh
dGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
QWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9Eb3VibGVSYW5nZS5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1l
dGFkYXRhLmNwcAppbmRleCAzMTNkNzViMTcwMTdiMjE5N2VjMGQwMDVmYzc5NThiNTUzYzE4NDM0
Li45NzY2MmRkYTgzMGI4YzBhOTE1YzJmNTRiMzg2N2QyOTIxMmFkODdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcApA
QCAtNzksNiArNzksOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFNZXRhZGF0YT4+IE1lZGlhTWV0
YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwogICAgICAgICBtZXRhZGF0
YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRhZGF0YS0+c2V0QXJ0aXN0KGlu
aXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1bShpbml0LT5hbGJ1bSk7Cisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgICAgIG1ldGFkYXRhLT5zZXRU
cmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsKKyNlbmRpZgogICAgICAgICBh
dXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFydHdvcmsoY29udGV4dCwgV1RG
TW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3NzaWJsZUV4Y2VwdGlvbi5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBwb3NzaWJsZUV4Y2Vw
dGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTcxLDYgKzE3NCwxNyBAQCB2b2lkIE1lZGlhTWV0YWRh
dGE6OnNldEFydHdvcmtJbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgbV9hcnR3b3JrSW1hZ2UgPSBp
bWFnZTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQordm9pZCBNZWRp
YU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQor
eworICAgIGlmIChtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllciA9PSBpZGVudGlmaWVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllciA9IGlkZW50aWZp
ZXI7CisgICAgbWV0YWRhdGFVcGRhdGVkKCk7Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYU1ldGFk
YXRhOjptZXRhZGF0YVVwZGF0ZWQoKQogewogICAgIGlmIChtX3Nlc3Npb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmgKaW5kZXgg
YTdiZTc4NTkwMDA5MGVkMTdiY2MzYTk5ZWIxZjFmNzg0Y2ZkNmI1NC4uMjk2MGI0NGE4NjNiYzgy
YjRmOTIzYWNiMzVhNmNlMWIwZDEzODIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaApAQCAtOTEsNiArOTEsMTEgQEAgcHVi
bGljOgogCiAgICAgY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRhdGEmIG1ldGFkYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9tZXRhZGF0YTsgfQogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJ
U1QpCisgICAgY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X21ldGFkYXRhLnRyYWNrSWRlbnRpZmllcjsgfQorICAgIHZvaWQgc2V0VHJhY2tJZGVudGlmaWVy
KGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgTWVkaWFNZXRhZGF0YSgp
OwogICAgIHZvaWQgc2V0QXJ0d29ya0ltYWdlKEltYWdlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCmluZGV4IGIyOGU5
OWQzYjc5ZTVlZTYxYzYxY2VkNzk4MWMzY2IyMDdlMzgxMjEuLjFjMzFkZjRlOWE4OWJlNTJhNjkz
YjcyZmJiZjRkNDE5Nzc5NzNhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCkBAIC0zNCwzICszNCw1IEBACiAgICAg
YXR0cmlidXRlIERPTVN0cmluZyBhbGJ1bTsKICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxN
ZWRpYUltYWdlPiBhcnR3b3JrOwogfTsKKworTWVkaWFNZXRhZGF0YSBpbmNsdWRlcyBNZWRpYU1l
dGFkYXRhUGxheWxpc3RNaXhpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oCmluZGV4IDY2OWRlZmZhMmQ2OTQwODVm
MDhmMTBkZjFiOTE2ZWY0NGU4ODVlMGQuLmQ2OTJkMmQ5NDgyNzUzZjBhYzBhODQzMmE0NjBmOTAx
NGEwY2ZiYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhTWV0YWRhdGFJbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaApAQCAtMzUsNiArMzUsOSBAQCBzdHJ1Y3QgTWVkaWFN
ZXRhZGF0YUluaXQgewogICAgIFN0cmluZyB0aXRsZTsKICAgICBTdHJpbmcgYXJ0aXN0OwogICAg
IFN0cmluZyBhbGJ1bTsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBT
dHJpbmcgdHJhY2tJZGVudGlmaWVyOworI2VuZGlmCiAgICAgVmVjdG9yPE1lZGlhSW1hZ2U+IGFy
dHdvcms7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CkBAIC00MywyOCArNDYsNTEgQEAgc3RydWN0IE1lZGlhTWV0YWRhdGFJbml0IHsK
IAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQgTWVkaWFNZXRhZGF0YUluaXQ6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgdGl0bGUg
PDwgYXJ0aXN0IDw8IGFsYnVtIDw8IGFydHdvcms7CisgICAgZW5jb2RlciA8PCB0aXRsZSA8PCBh
cnRpc3QgPDwgYWxidW0KKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICA8
PCB0cmFja0lkZW50aWZpZXIKKyNlbmRpZgorICAgIDw8IGFydHdvcms7CiB9CiAKIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IGlubGluZSBPcHRpb25hbDxNZWRpYU1ldGFkYXRhSW5pdD4gTWVkaWFN
ZXRhZGF0YUluaXQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIFN0cmluZyB0aXRs
ZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRpdGxlKSkKKyAgICBPcHRpb25hbDxTdHJpbmc+
IHRpdGxlOworICAgIGRlY29kZXIgPj4gdGl0bGU7CisgICAgaWYgKHRpdGxlKQogICAgICAgICBy
ZXR1cm4geyB9OwogCi0gICAgU3RyaW5nIGFydGlzdDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGFydGlzdCkpCisgICAgT3B0aW9uYWw8U3RyaW5nPiBhcnRpc3Q7CisgICAgZGVjb2RlciA+PiBh
cnRpc3Q7CisgICAgaWYgKCFhcnRpc3QpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBTdHJp
bmcgYWxidW07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhbGJ1bSkpCisgICAgT3B0aW9uYWw8
U3RyaW5nPiBhbGJ1bTsKKyAgICBkZWNvZGVyID4+IGFsYnVtOworICAgIGlmICghYWxidW0pCiAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBWZWN0b3I8TWVkaWFJbWFnZT4gYXJ0d29yazsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGFydHdvcmspKQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
X1BMQVlMSVNUKQorICAgIE9wdGlvbmFsPFN0cmluZz4gdHJhY2tJZGVudGlmaWVyOworICAgIGRl
Y29kZXIgPj4gdHJhY2tJZGVudGlmaWVyOworICAgIGlmICghdHJhY2tJZGVudGlmaWVyKQorICAg
ICAgICByZXR1cm4geyB9OworI2VuZGlmCisKKyAgICBPcHRpb25hbDxWZWN0b3I8TWVkaWFJbWFn
ZT4+IGFydHdvcms7CisgICAgZGVjb2RlciA+PiBhcnR3b3JrOworICAgIGlmICghYXJ0d29yaykK
ICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBNZWRpYU1ldGFkYXRhSW5pdCB7IFdU
Rk1vdmUodGl0bGUpLCBXVEZNb3ZlKGFydGlzdCksIFdURk1vdmUoYWxidW0pLCBXVEZNb3ZlKGFy
dHdvcmspIH07CisgICAgcmV0dXJuIHsgeworICAgICAgICBXVEZNb3ZlKCp0aXRsZSksCisgICAg
ICAgIFdURk1vdmUoKmFydGlzdCksCisgICAgICAgIFdURk1vdmUoKmFsYnVtKSwKKyNpZiBFTkFC
TEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICAgICAgV1RGTW92ZSgqdHJhY2tJZGVudGlm
aWVyKSwKKyNlbmRpZgorICAgICAgICBXVEZNb3ZlKCphcnR3b3JrKQorICAgIH0gfTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YUluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFNZXRhZGF0YUluaXQuaWRsCmluZGV4IDhiMGY1NWNmMTRhNTgzOGNiNTQ4OTU2NWQwMjcyZGFm
YWQ5ZTEyM2QuLjBkYzhlZjAwN2IxMDk1MWIwZDU5MTllYjAzMTI0MzRmM2Y2NDQ2MTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJ
bml0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1l
dGFkYXRhSW5pdC5pZGwKQEAgLTMwLDUgKzMwLDYgQEAKICAgICBET01TdHJpbmcgdGl0bGUgPSAi
IjsKICAgICBET01TdHJpbmcgYXJ0aXN0ID0gIiI7CiAgICAgRE9NU3RyaW5nIGFsYnVtID0gIiI7
CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fUExBWUxJU1QsIEVuYWJsZWRCeVNldHRp
bmc9TWVkaWFTZXNzaW9uUGxheWxpc3RdIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXIgPSAiIjsK
ICAgICBzZXF1ZW5jZTxNZWRpYUltYWdlPiBhcnR3b3JrID0gW107CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0
TWl4aW4uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRh
ZGF0YVBsYXlsaXN0TWl4aW4uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4NDVlMGJjMjU4MjVjYTczZTgwYTc1
MzEyYTIwMmM5MjFjOThmNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwKQEAgLTAsMCAr
MSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX1BM
QVlMSVNULAorICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxheWxpc3QsCitdIGlu
dGVyZmFjZSBtaXhpbiBNZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbiB7CisgICAgYXR0cmlidXRl
IERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKaW5kZXggMzJiMDhlMWE3MWRl
OTQzMGQxMjIwZTBiZTZhMjFjZDhlMmI1NzBhZS4uZThhOWNhZWVhZDQ2MWNiODk2MDdjMzRjMzE4
YmEyNGEzYmQ0MDE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCkBAIC0yOSw4ICsyOSwxMCBAQAogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQogCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYU1ldGFkYXRhLmgi
CisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJOYXZpZ2F0
b3IuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKIApAQCAtNzYs
NyArNzgsMTEgQEAgUmVmPE1lZGlhU2Vzc2lvbj4gTWVkaWFTZXNzaW9uOjpjcmVhdGUoTmF2aWdh
dG9yJiBuYXZpZ2F0b3IpCiB9CiAKIE1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKE5hdmlnYXRv
ciYgbmF2aWdhdG9yKQotICAgIDogbV9uYXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9yKSkK
KyAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKG5hdmlnYXRvci5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCisgICAgLCBtX25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgICwgbV9hc3luY0V2ZW50
UXVldWUoTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQorI2VuZGlm
CiB7CiAgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSk7
CiAgICAgbV9sb2dJZGVudGlmaWVyID0gbmV4dExvZ0lkZW50aWZpZXIoKTsKQEAgLTg5LDE1ICs5
NSw2NyBAQCBNZWRpYVNlc3Npb246On5NZWRpYVNlc3Npb24oKSA9IGRlZmF1bHQ7CiB2b2lkIE1l
ZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+JiYgbWV0YWRhdGEp
CiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKLQogICAgIGlmIChtX21ldGFkYXRh
KQogICAgICAgICBtX21ldGFkYXRhLT5yZXNldE1lZGlhU2Vzc2lvbigpOwogICAgIG1fbWV0YWRh
dGEgPSBXVEZNb3ZlKG1ldGFkYXRhKTsKICAgICBpZiAobV9tZXRhZGF0YSkKICAgICAgICAgbV9t
ZXRhZGF0YS0+c2V0TWVkaWFTZXNzaW9uKCp0aGlzKTsKLSAgICBtZXRhZGF0YVVwZGF0ZWQoKTsK
KyAgICBub3RpZnlNZXRhZGF0YU9ic2VydmVycygpOworfQorCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCit2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0UmVhZHlTdGF0ZShNZWRp
YVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gc3Rh
dGUpCisgICAgICAgIHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgc3Rh
dGUpOworCisgICAgbV9yZWFkeVN0YXRlID0gc3RhdGU7CisgICAgbm90aWZ5UmVhZHlTdGF0ZU9i
c2VydmVycygpOwogfQogCit2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0Q29vcmRpbmF0b3IoTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yKQoreworICAgIGlmIChtX2Nvb3JkaW5hdG9y
ID09IGNvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIpOworCisgICAgaWYgKG1fY29vcmRpbmF0b3IpCisgICAgICAgIG1fY29vcmRpbmF0
b3ItPnNldE1lZGlhU2Vzc2lvbihudWxscHRyKTsKKworICAgIG1fY29vcmRpbmF0b3IgPSBjb29y
ZGluYXRvcjsKKworICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAgICAgICBtX2Nvb3JkaW5hdG9y
LT5zZXRNZWRpYVNlc3Npb24odGhpcyk7CisKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1
ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNvb3JkaW5hdG9yY2hhbmdlRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKK0V4Y2VwdGlvbk9yPHZv
aWQ+IE1lZGlhU2Vzc2lvbjo6c2V0UGxheWxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgVmVjdG9yPFJlZlB0cjxNZWRpYU1ldGFkYXRhPj4mJiBwbGF5bGlzdCkKK3sKKyAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRh
Pj4gcmVzb2x2ZWRQbGF5bGlzdDsKKyAgICByZXNvbHZlZFBsYXlsaXN0LnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkocGxheWxpc3Quc2l6ZSgpKTsKKworICAgIGZvciAoYXV0byYgZW50cnkgOiBwbGF5
bGlzdCkgeworICAgICAgICBhdXRvIHJlc29sdmVkRW50cnkgPSBNZWRpYU1ldGFkYXRhOjpjcmVh
dGUoY29udGV4dCwgeyBlbnRyeS0+bWV0YWRhdGEoKSB9KTsKKyAgICAgICAgaWYgKHJlc29sdmVk
RW50cnkuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZWRFbnRyeS5y
ZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgICAgIAorICAgICAgICByZXNvbHZlZFBsYXlsaXN0LnVu
Y2hlY2tlZEFwcGVuZChyZXNvbHZlZEVudHJ5LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKyAgICB9
CisKKyAgICBtX3BsYXlsaXN0ID0gV1RGTW92ZShyZXNvbHZlZFBsYXlsaXN0KTsKKworICAgIHJl
dHVybiB7IH07Cit9CisjZW5kaWYKKwogdm9pZCBNZWRpYVNlc3Npb246OnNldFBsYXliYWNrU3Rh
dGUoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKIHsKICAgICBpZiAobV9wbGF5YmFj
a1N0YXRlID09IHN0YXRlKQpAQCAtMTExLDYgKzE2OSw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpz
ZXRQbGF5YmFja1N0YXRlKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCiAgICAgICAg
IG1fdGltZUF0TGFzdFBvc2l0aW9uVXBkYXRlID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAg
fQogICAgIG1fcGxheWJhY2tTdGF0ZSA9IHN0YXRlOworICAgIG5vdGlmeVBsYXliYWNrU3RhdGVP
YnNlcnZlcnMoKTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb246OnNldEFjdGlvbkhhbmRsZXIoTWVk
aWFTZXNzaW9uQWN0aW9uIGFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+
JiYgaGFuZGxlcikKQEAgLTEyOSw3ICsxODgsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0QWN0
aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rpb24gYWN0aW9uLCBSZWZQdHI8TWVkaWFTZXNzaQog
ICAgICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1v
dmVTdXBwb3J0ZWRDb21tYW5kKHBsYXRmb3JtQ29tbWFuZEZvck1lZGlhU2Vzc2lvbkFjdGlvbihh
Y3Rpb24pKTsKICAgICB9CiAKLSAgICBhY3Rpb25IYW5kbGVyc1VwZGF0ZWQoKTsKKyAgICBub3Rp
ZnlBY3Rpb25IYW5kbGVyT2JzZXJ2ZXJzKCk7CiB9CiAKIGJvb2wgTWVkaWFTZXNzaW9uOjpoYXNB
Y3Rpb25IYW5kbGVyKE1lZGlhU2Vzc2lvbkFjdGlvbiBhY3Rpb24pIGNvbnN0CkBAIC0xNDIsMTIg
KzIwMSwxOSBAQCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4gTWVkaWFTZXNzaW9u
OjpoYW5kbGVyRm9yQWN0aW9uKE1lZGlhU2Vzc2lvbkFjdAogICAgIHJldHVybiBtX2FjdGlvbkhh
bmRsZXJzLmdldChhY3Rpb24pOwogfQogCit2b2lkIE1lZGlhU2Vzc2lvbjo6Y2FsbEFjdGlvbkhh
bmRsZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYgYWN0aW9uRGV0YWlscykKK3sK
KyAgICBpZiAoYXV0byBoYW5kbGVyID0gbV9hY3Rpb25IYW5kbGVycy5nZXQoYWN0aW9uRGV0YWls
cy5hY3Rpb24pKQorICAgICAgICBoYW5kbGVyLT5oYW5kbGVFdmVudChhY3Rpb25EZXRhaWxzKTsK
K30KKwogRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uOjpzZXRQb3NpdGlvblN0YXRlKE9w
dGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mJiBzdGF0ZSkKIHsKICAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIpOwogCiAgICAgaWYgKCFzdGF0ZSkgewogICAgICAgICBtX3Bvc2l0aW9uU3Rh
dGUgPSBXVEY6Om51bGxvcHQ7CisgICAgICAgIG5vdGlmeVBvc2l0aW9uU3RhdGVPYnNlcnZlcnMo
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTE2MSw2ICsyMjcsOCBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVk
aWFQb3NpdGlvblN0YXRlPiYmCiAgICAgbV9wb3NpdGlvblN0YXRlID0gV1RGTW92ZShzdGF0ZSk7
CiAgICAgbV9sYXN0UmVwb3J0ZWRQb3NpdGlvbiA9IG1fcG9zaXRpb25TdGF0ZS0+cG9zaXRpb247
CiAgICAgbV90aW1lQXRMYXN0UG9zaXRpb25VcGRhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsK
KyAgICBub3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCk7CisKICAgICByZXR1cm4geyB9Owog
fQogCkBAIC0xODUsMTEgKzI1Myw2NCBAQCBEb2N1bWVudCogTWVkaWFTZXNzaW9uOjpkb2N1bWVu
dCgpIGNvbnN0CiAKIHZvaWQgTWVkaWFTZXNzaW9uOjptZXRhZGF0YVVwZGF0ZWQoKQogeworICAg
IG5vdGlmeU1ldGFkYXRhT2JzZXJ2ZXJzKCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjphZGRP
YnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBtX29ic2VydmVycy5hZGQob2JzZXJ2ZXIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lv
bjo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKK30KKwordm9p
ZCBNZWRpYVNlc3Npb246OmZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2Vy
dmVyJik+JiBhcHBseSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGF1dG8g
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworICAgIG1fb2JzZXJ2ZXJzLmZvckVhY2go
YXBwbHkpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMo
KQoreworICAgIGZvckVhY2hPYnNlcnZlcihbdGhpc10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAg
ICAgb2JzZXJ2ZXIubWV0YWRhdGFDaGFuZ2VkKG1fbWV0YWRhdGEpOworICAgIH0pOworfQorCit2
b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpCit7CisgICAg
Zm9yRWFjaE9ic2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZl
ci5wb3NpdGlvblN0YXRlQ2hhbmdlZChtX3Bvc2l0aW9uU3RhdGUpOworICAgIH0pOworfQorCit2
b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpCit7CisgICAg
Zm9yRWFjaE9ic2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZl
ci5wbGF5YmFja1N0YXRlQ2hhbmdlZChtX3BsYXliYWNrU3RhdGUpOworICAgIH0pOworfQorCit2
b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5QWN0aW9uSGFuZGxlck9ic2VydmVycygpCit7CisgICAg
Zm9yRWFjaE9ic2VydmVyKFtdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLmFj
dGlvbkhhbmRsZXJzQ2hhbmdlZCgpOworICAgIH0pOwogfQogCi12b2lkIE1lZGlhU2Vzc2lvbjo6
YWN0aW9uSGFuZGxlcnNVcGRhdGVkKCkKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUikKK3ZvaWQgTWVkaWFTZXNzaW9uOjpub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCkKIHsK
KyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9i
c2VydmVyLnJlYWR5U3RhdGVDaGFuZ2VkKG1fcmVhZHlTdGF0ZSk7CisgICAgfSk7CiB9CisjZW5k
aWYKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbi5oCmluZGV4IDc2NzJlMzJmYzcwNmUzNzgxMTZkNWVmNzM1NDJiMWRjZjNmYWI3
NmYuLjQ5NjFmNGRmZDcyMjU5NGRkNWQ0MWU0MDVlMDBkODg3YjQ1ZTU0MWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBAIC0y
Nyw2ICsyNyw5IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIAorI2luY2x1ZGUgIkNv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNp
bmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkpTTWVkaWFQb3NpdGlvblN0
YXRlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVNlc3Npb25BY3Rpb24uaCIKICNpbmNsdWRlICJKU01l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCIKQEAgLTM0LDYgKzM3LDcgQEAKICNpbmNsdWRlICJN
ZWRpYVNlc3Npb25BY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVy
LmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIgorI2luY2x1ZGUgIk1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVk
ZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTQ0
LDM4ICs0OCwxMDIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKIGNs
YXNzIE1lZGlhTWV0YWRhdGE7CitjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKIGNsYXNz
IE5hdmlnYXRvcjsKIAotY2xhc3MgTWVkaWFTZXNzaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TWVk
aWFTZXNzaW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhU2Vzc2lvbj4geworY2xhc3Mg
TWVkaWFTZXNzaW9uCisgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb24+CisgICAg
LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKKyNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikKKyAgICAsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
CisjZWxzZQorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhU2Vzc2lvbj4KKyNlbmRp
ZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8TWVkaWFTZXNzaW9uPiBjcmVhdGUoTmF2aWdhdG9yJik7CiAgICAgfk1lZGlhU2Vzc2lvbigp
OwogCiAgICAgTWVkaWFNZXRhZGF0YSogbWV0YWRhdGEoKSBjb25zdCB7IHJldHVybiBtX21ldGFk
YXRhLmdldCgpOyB9OwogICAgIHZvaWQgc2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+
JiYpOworICAgIHZvaWQgbWV0YWRhdGFVcGRhdGVkKCk7CiAKICAgICBNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlIHBsYXliYWNrU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3BsYXliYWNrU3RhdGU7
IH07CiAgICAgdm9pZCBzZXRQbGF5YmFja1N0YXRlKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUp
OwogCiAgICAgdm9pZCBzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vzc2lvbkFjdGlvbiwgUmVmUHRy
PE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+JiYpOworCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYpOworICAgIE9w
dGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gcG9zaXRpb25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcG9zaXRpb25TdGF0ZTsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8ZG91Ymxl
PiBjdXJyZW50UG9zaXRpb24oKSBjb25zdDsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNv
bnN0OwogICAgIAotICAgIHZvaWQgbWV0YWRhdGFVcGRhdGVkKCk7CisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSByZWFkeVN0
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9OworICAgIHZvaWQgc2V0UmVhZHlT
dGF0ZShNZWRpYVNlc3Npb25SZWFkeVN0YXRlKTsKKworICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKiBjb29yZGluYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fY29vcmRpbmF0b3IuZ2V0KCk7IH0K
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb3JkaW5hdG9yKE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yKik7CisjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQor
ICAgIGNvbnN0IFZlY3RvcjxSZWY8TWVkaWFNZXRhZGF0YT4+JiBwbGF5bGlzdCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGxheWxpc3Q7IH0KKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQbGF5bGlzdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVmVjdG9yPFJlZlB0cjxNZWRpYU1ldGFkYXRhPj4mJik7
CisjZW5kaWYKIAotICAgIHZvaWQgYWN0aW9uSGFuZGxlcnNVcGRhdGVkKCk7CiAgICAgYm9vbCBo
YXNBY3Rpb25IYW5kbGVyKE1lZGlhU2Vzc2lvbkFjdGlvbikgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+IGhhbmRsZXJGb3JBY3Rpb24o
TWVkaWFTZXNzaW9uQWN0aW9uKSBjb25zdDsKICAgICBib29sIGhhc0FjdGl2ZUFjdGlvbkhhbmRs
ZXJzKCkgY29uc3QgeyByZXR1cm4gIW1fYWN0aW9uSGFuZGxlcnMuaXNFbXB0eSgpOyB9CiAKKyAg
ICB2b2lkIGNhbGxBY3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMm
KTsKKworICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4gKm1fbG9nZ2Vy
LmdldCgpOyB9CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICAv
LyBFdmVudFRhcmdldAorICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZD
b3VudGVkOjpkZXJlZjsKKyNlbmRpZgorCisgICAgY2xhc3MgT2JzZXJ2ZXIgOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8T2JzZXJ2ZXI+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9i
c2VydmVyKCkgPSBkZWZhdWx0OworCisgICAgICAgIHZpcnR1YWwgdm9pZCBtZXRhZGF0YUNoYW5n
ZWQoUmVmUHRyPE1lZGlhTWV0YWRhdGE+KSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHBvc2l0
aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIHsgfQorICAgICAg
ICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZSkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBhY3Rpb25IYW5kbGVyc0NoYW5nZWQoKSB7
IH0KKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgICAgICB2aXJ0
dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgeyB9Cisj
ZW5kaWYKKyAgICB9OworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICB2b2lk
IHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVk
aWFTZXNzaW9uKE5hdmlnYXRvciYpOwogCi0gICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25z
dCB7IHJldHVybiAqbV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAKKyAgICB2b2lkIGZvckVh
Y2hPYnNlcnZlcihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+Jik7CisgICAgdm9pZCBu
b3RpZnlNZXRhZGF0YU9ic2VydmVycygpOworICAgIHZvaWQgbm90aWZ5UG9zaXRpb25TdGF0ZU9i
c2VydmVycygpOworICAgIHZvaWQgbm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpOworICAg
IHZvaWQgbm90aWZ5QWN0aW9uSGFuZGxlck9ic2VydmVycygpOworICAgIHZvaWQgbm90aWZ5UmVh
ZHlTdGF0ZU9ic2VydmVycygpOworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBNZWRpYVNlc3Npb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0K
KyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsgfQorCisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVm
KCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KKyNl
bmRpZgorCiAgICAgV2Vha1B0cjxOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOwogICAgIFJlZlB0cjxN
ZWRpYU1ldGFkYXRhPiBtX21ldGFkYXRhOwogICAgIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUg
bV9wbGF5YmFja1N0YXRlIHsgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSB9OwpAQCAt
ODUsNiArMTUzLDE4IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxNZWRpYVNlc3Npb25BY3Rpb24s
IFJlZlB0cjxNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPiwgV1RGOjpJbnRIYXNoPE1lZGlhU2Vz
c2lvbkFjdGlvbj4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8TWVkaWFTZXNzaW9uQWN0aW9u
Pj4gbV9hY3Rpb25IYW5kbGVyczsKICAgICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsK
ICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisKKyAgICBXZWFrSGFzaFNldDxPYnNl
cnZlcj4gbV9vYnNlcnZlcnM7CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKKyAgICBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZSB7IE1lZGlhU2Vzc2lv
blJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIH07CisgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yPiBtX2Nvb3JkaW5hdG9yOworICAgIFVuaXF1ZVJlZjxNYWluVGhyZWFkR2VuZXJpY0V2
ZW50UXVldWU+IG1fYXN5bmNFdmVudFF1ZXVlOworI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9QTEFZTElTVCkKKyAgICBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiBtX3BsYXls
aXN0OworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbAppbmRleCA4NGY0MzBkNjg3Yzc0ZmVjZWUxMmE2
OTYxMDU1ZWI0ZDk5MTVhZGI4Li4yMDQ2NGU3NTRlMWQyYmUwMTlhMjQ0OTRkYTdkMTVlODllZWJh
NjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbi5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0y
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjYsOSArMjYsMTAgQEAKIFsKICAgICBDb25kaXRpb25hbD1NRURJQV9T
RVNTSU9OLAogICAgIEV4cG9zZWQ9V2luZG93LAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGUsCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFjZSBNZWRpYVNl
c3Npb24geworICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBpbnRlcmZhY2UgTWVkaWFTZXNz
aW9uIDogRXZlbnRUYXJnZXQKK3sKICAgICBhdHRyaWJ1dGUgTWVkaWFNZXRhZGF0YT8gbWV0YWRh
dGE7CiAKICAgICBhdHRyaWJ1dGUgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBwbGF5YmFja1N0
YXRlOwpAQCAtMzcsMyArMzgsNiBAQAogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSB1bmRlZmlu
ZWQgc2V0UG9zaXRpb25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0aW9uU3RhdGU/IHN0YXRlID0g
bnVsbCk7CiB9OworCitNZWRpYVNlc3Npb24gaW5jbHVkZXMgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JNaXhpbjsKK01lZGlhU2Vzc2lvbiBpbmNsdWRlcyBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGlu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25BY3Rpb24uaAppbmRleCA1Y2I2NDRmZjM2MmRlZDczNzAyYjEzM2YzZjIwYWQ4Njcw
YjdmZjYxLi45YmM0ZjAwMTNiNDZiNTJhODFjMDAwNzk3MjJhMzYwMTJmN2NjMjM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25BY3Rpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zOSw2ICszOSw3IEBAIGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uQWN0aW9uIHsK
ICAgICBTa2lwYWQsCiAgICAgU3RvcCwKICAgICBTZWVrdG8sCisgICAgU2V0dHJhY2ssCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkBAIC01Niw3ICs1Nyw4IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uPiB7CiAgICAgICAgIFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6TmV4dHRyYWNrLAogICAgICAgICBXZWJDb3JlOjpN
ZWRpYVNlc3Npb25BY3Rpb246OlNraXBhZCwKICAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9u
QWN0aW9uOjpTdG9wLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0
bworICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywKKyAgICAgICAg
V2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTZXR0cmFjawogICAgID47CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25B
Y3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uQWN0aW9uLmlkbAppbmRleCA0NjM1ZTY5NzM0ZWRhMTlkYzJhN2NhZWQ5YTVmYzcxMDc0NTk4
Y2Q0Li44Zjc2NWY2NGUzZGFjYmU3MTcxM2E0Zjg2YmI5YmEyYWI4MmY0M2E1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24u
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bkFjdGlvbi5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzUsNCArMzUsNyBAQAogICAgICJza2lwYWQiLAogICAgICJzdG9wIiwKICAg
ICAic2Vla3RvIgorI2lmIGRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1QpICYm
IEVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNUCisgICAgLCAic2V0dHJhY2siCisjZW5kaWYK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25BY3Rpb25EZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmgKaW5kZXggNjQxZWE3MjRhY2E2NzA1ZDcz
NTA3ZTI4NzFjNTE3NDE3OTY5NmQ3Yy4uZjU5MDlkNDZmOGVhYzY2ZDBmM2M5ZGQ3ZTc1MzJlMzYw
NDY4ZDZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw5IEBAIHN0
cnVjdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIHsKICAgICBPcHRpb25hbDxkb3VibGU+IHNl
ZWtPZmZzZXQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBzZWVrVGltZTsKICAgICBPcHRpb25hbDxi
b29sPiBmYXN0U2VlazsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBT
dHJpbmcgdHJhY2tJZGVudGlmaWVyOworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHMuaWRsCmluZGV4IDFhMWVmN2FlNzY1YWUwMmYyMWUzMjMyYTEzNjRhOTZhMWFk
ZjE1NDcuLjJkOGM2MDczN2M2ZDY3ZmQxMjVlMTNlOTE2OThlY2ZhODAyNmMwOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlv
bkRldGFpbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDQgKzMyLDYgQEAKICAgICBkb3VibGU/IHNl
ZWtPZmZzZXQ7CiAgICAgZG91YmxlPyBzZWVrVGltZTsKICAgICBib29sZWFuPyBmYXN0U2VlazsK
KworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0
aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0XSBET01TdHJpbmc/IHRyYWNrSWRlbnRpZmllcjsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRmNGU5MjE1NWYxYWMw
MTVlNmM1MTc0ZDRiZWY2NDgxZTU5MzU2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAt
MCwwICsxLDI0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05f
Q09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1l
ZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3Qgdm9pZCogbmV4dENvb3Jk
aW5hdG9yTG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50aWZp
ZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitSZWY8TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoUmVmPFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29yZGluYXRvcikKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25Db29yZGluYXRvcihXVEZNb3Zl
KHBsYXRmb3JtQ29vcmRpbmF0b3IpKSk7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
ZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQorICAgIDogbV9wbGF0Zm9ybUNvb3JkaW5hdG9yKFdU
Rk1vdmUocGxhdGZvcm1Db29yZGluYXRvcikpCisgICAgLCBtX2xvZ2dlcihtYWtlUmVmKERvY3Vt
ZW50OjpzaGFyZWRMb2dnZXIoKSkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4dENvb3JkaW5h
dG9yTG9nSWRlbnRpZmllcigpKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisK
KyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNldExvZ2dlcihtX2xvZ2dlci5jb3B5UmVmKCks
IG1fbG9nSWRlbnRpZmllcik7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZ
U19MT0coaWRlbnRpZmllciwgdGltZSk7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAg
ICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+c2Vla1RvKHRp
bWUsIFt0aW1lLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2Vw
dGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7
CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNl
cHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikp
OworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJvdGVjdGVkVGhp
cy0+bG9nQ2hhbm5lbCgpLCBpZGVudGlmaWVyLCAiY29vcmRpbmF0b3Iuc2Vla1RvIGZhaWxlZCEi
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIE1lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNz
aW9uQWN0aW9uOjpTZWVrdG8sCisgICAgICAgICAgICAuc2Vla1RpbWUgPSB0aW1lLAorICAgICAg
ICB9OworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVy
KGRldGFpbHMpOworCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0
IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAnc2Vla1RvJyBhY3Rpb24gaGFuZGxlcj8KKyAg
ICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sK
KyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRl
bnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRl
bnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cGxheShbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0g
KE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAo
IXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3Qo
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBwcm9taXNl
LnJlamVjdChXVEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMt
PmxvZ2dlcigpLmVycm9yKHByb3RlY3RlZFRoaXMtPmxvZ0NoYW5uZWwoKSwgaWRlbnRpZmllciwg
ImNvb3JkaW5hdG9yLnBsYXkgZmFpbGVkISIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAg
ICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBsYXksCisgICAgICAgIH07Cisg
ICAgICAgIHByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWls
cyk7CisKKyAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhl
cmUgaXNuJ3QgYSByZWdpc3RlcmVkICdwbGF5JyBhY3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJv
bWlzZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OnBhdXNlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0
byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKKyAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIp
OworCisgICAgaWYgKCFtX3Nlc3Npb24pIHsKKyAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIs
ICJNZWRpYVNlc3Npb24gaXMgTlVMTCEiKTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBhdXNlKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9u
YWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghcHJvdGVj
dGVkVGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0
KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2Vy
KCkuZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBpZGVudGlmaWVyLCAiY29vcmRp
bmF0b3IucGF1c2UgZmFpbGVkISIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAg
IC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBhdXNlLAorICAgICAgICB9OworICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOwor
CisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlz
bid0IGEgcmVnaXN0ZXJlZCAncGF1c2UnIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm9taXNl
LnJlc29sdmUoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
c2V0VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFM
V0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBF
UlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICBw
cm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+c2V0VHJhY2sodHJh
Y2ssIFt0cmFjaywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVy
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNl
cHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikg
eworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXhj
ZXB0aW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKCpleGNlcHRpb24p
KTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmxvZ2dlcigpLmVycm9yKHByb3RlY3RlZFRo
aXMtPmxvZ0NoYW5uZWwoKSwgaWRlbnRpZmllciwgImNvb3JkaW5hdG9yLnNldFRyYWNrIGZhaWxl
ZCEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIE1lZGlhU2Vz
c2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFT
ZXNzaW9uQWN0aW9uOjpTZXR0cmFjaywKKyAgICAgICAgICAgIC50cmFja0lkZW50aWZpZXIgPSB0
cmFjaywKKyAgICAgICAgfTsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uLT5jYWxs
QWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBw
cm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3NldFRyYWNrJyBhY3Rp
b24gaGFuZGxlcj8KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisKK3Zv
aWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24q
IHNlc3Npb24pCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBtX3Nlc3Np
b24gPSBtYWtlV2Vha1B0cihzZXNzaW9uKTsKKworICAgIGlmIChtX3Nlc3Npb24pCisgICAgICAg
IG1fc2Vzc2lvbi0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3Rh
dGU+IHN0YXRlKQoreworICAgIGlmICghc3RhdGUpIHsKKyAgICAgICAgbV9wbGF0Zm9ybUNvb3Jk
aW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZCh7IH0pOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZChQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVBvc2l0aW9uU3RhdGUgeyBzdGF0ZS0+
ZHVyYXRpb24sIHN0YXRlLT5wbGF5YmFja1JhdGUsIHN0YXRlLT5wb3NpdGlvbiB9KTsKK30KKwor
dm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUpID09IHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lv
blBsYXliYWNrU3RhdGU6Ok5vbmUpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSBp
cyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZTo6Tm9uZSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkKSA9PSBzdGF0aWNf
Y2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlOjpQYXVzZWQpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1
c2VkIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlOjpQYXVzZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpID09
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZTo6UGxheWluZyBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBhcyBleHBlY3RlZCIpOworCisgICAgbV9w
bGF0Zm9ybUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChzdGF0aWNfY2FzdDxQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlPihz
dGF0ZSkpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hh
bmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQoreworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcp
ID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nKSwgIk1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU6OkhhdmVOb3RoaW5nIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZU1ldGFkYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEpLCAi
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGlzIG5vdCBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEg
YXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkgPT0gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZTo6SGF2ZUN1cnJlbnREYXRhKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJy
ZW50RGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZl
RnV0dXJlRGF0YSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEpLCAiTWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRh
IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSkgPT0gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZTo6SGF2ZUVub3VnaERhdGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVub3Vn
aERhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lv
blJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhIGFzIGV4cGVjdGVkIik7CisKKyAgICBtX3BsYXRm
b3JtQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRpY19jYXN0PFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU+KHN0YXRlKSk7Cit9
CisKK1dURkxvZ0NoYW5uZWwmIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkK
K3sKKyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjQ3Y2VjODgwYjM1M2Y0NmJjYmQ4NzBmZjVkYmMxOTJjOTk5N2M5MgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlIDx3dGYv
TG9nZ2VyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1
ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFz
cyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2NsYXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I7CitjbGFzcyBNZWRpYVNlc3Npb247CisKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+LCBwdWJsaWMg
TWVkaWFTZXNzaW9uOjpPYnNlcnZlciB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRlKFJlZjxQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IoKTsKKworICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYpOworICAgIHZvaWQgcGxheShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7
CisgICAgdm9pZCBwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBz
ZXRUcmFjayhjb25zdCBTdHJpbmcmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisKKyAg
ICB2b2lkIHNldE1lZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24qKTsKKworICAgIC8vIE1lZGlhU2Vz
c2lvbjo6T2JzZXJ2ZXIKKyAgICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1l
ZGlhUG9zaXRpb25TdGF0ZT4pIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQo
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CisgICAgdm9pZCByZWFkeVN0YXRlQ2hh
bmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBs
aWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcj4mJik7CisKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IHsgcmV0dXJu
IG1fbG9nZ2VyOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIHN0YXRpYyBXVEZMb2dDaGFubmVsJiBsb2dDaGFu
bmVsKCk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIHsgcmV0dXJuICJN
ZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KKworICAgIFdlYWtQdHI8TWVkaWFTZXNzaW9uPiBt
X3Nlc3Npb247CisgICAgUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fcGxh
dGZvcm1Db29yZGluYXRvcjsKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBj
b25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+PiBtX3NlZWtUb1Byb21pc2U7CisgICAgc3RkOjp1bmlxdWVfcHRy
PERPTVByb21pc2VEZWZlcnJlZDx2b2lkPj4gbV9wbGF5UHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3BhdXNlUHJvbWlzZTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3NldFRyYWNrUHJvbWlzZTsK
K307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMDVhYjg5MGVhMTgyNmQw
ZmU3MTMwYjVkMzJiNDJkN2I0NjIzZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKQEAgLTAs
MCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SLAorICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQs
CitdIGludGVyZmFjZSBNZWRpYVNlc3Npb25Db29yZGluYXRvciB7CisgICAgUHJvbWlzZTx1bmRl
ZmluZWQ+IHNlZWtUbyh1bnJlc3RyaWN0ZWQgZG91YmxlIHRpbWUpOworICAgIFByb21pc2U8dW5k
ZWZpbmVkPiBwbGF5KCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBhdXNlKCk7CisgICAgUHJv
bWlzZTx1bmRlZmluZWQ+IHNldFRyYWNrKERPTVN0cmluZyB0cmFja0lkZW50aWZpZXIpOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdmZjRm
YTQwNzIxY2I3ZjJiMDI4ZDEwYjcyZDQwNjQzNzJkNWVmZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
TWl4aW4uaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9u
YWw9TUVESUFfU0VTU0lPTiwKKyAgICBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLAorXSBpbnRlcmZhY2UgbWl4aW4gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbiB7
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPyBjb29yZGlu
YXRvcjsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uY29vcmRpbmF0b3JjaGFuZ2U7Cisg
ICAgYXR0cmlidXRlIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgcmVhZHlTdGF0ZTsKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlLmgKaW5kZXggZDRhZGJkNTQxNzk0ZTVhMTA5NWJlNTRhMjNi
YjNlYjllYmU3NDc1Ni4uNzA2M2M3OGUzZDc4YmZhZDM4OGRmMzA5NDU0YTljZjdhMzU0ZDJiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaApAQCAtMjksNyArMjksNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSB7
CitlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgOiB1aW50OF90IHsKICAgICBO
b25lLAogICAgIFBhdXNlZCwKICAgICBQbGF5aW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1p
eGluLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMzYwZjRjNzQ0MGY0ODBjMmQxYWNkNzcyZThmODYwZTBmYTBm
Mjc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULAorICAgIEVu
YWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxheWxpc3QsCitdIGludGVyZmFjZSBtaXhpbiBN
ZWRpYVNlc3Npb25QbGF5bGlzdE1peGluIHsKKyAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxN
ZWRpYU1ldGFkYXRhPiBwbGF5bGlzdDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjQ1MjNkZDU0YTcxZTY2NTRhMTdiYjBjNzc0Zjc4ODE2MzM3ZjQ2NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
blJlYWR5U3RhdGUuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgOiB1aW50OF90IHsK
KyAgICBIYXZlTm90aGluZywKKyAgICBIYXZlTWV0YWRhdGEsCisgICAgSGF2ZUN1cnJlbnREYXRh
LAorICAgIEhhdmVGdXR1cmVEYXRhLAorICAgIEhhdmVFbm91Z2hEYXRhLAorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NzNmMmFhNTRj
ODY4ZjNiNDY1ZjliNTVlNjE5MDVkNWVjNGI5NDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbApA
QCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IsCitdIGVudW0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSB7CisgICAg
ImhhdmVOb3RoaW5nIiwKKyAgICAiaGF2ZU1ldGFkYXRhIiwKKyAgICAiaGF2ZUN1cnJlbnREYXRh
IiwKKyAgICAiaGF2ZUZ1dHVyZURhdGEiLAorICAgICJoYXZlRW5vdWdoRGF0YSIKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRp
YVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRv
ck1lZGlhU2Vzc2lvbi5oCmluZGV4IDA0MjE5NjE3YzIzODY5MzAxMDhhNjg2MGIyMTAxMjY5Y2U1
MzY4OWUuLjdkMmJmMzA2OGJmNTY3YzFjNmY4YTNjMmU4OTU0ZmFhYjRkMjMzZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vz
c2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRv
ck1lZGlhU2Vzc2lvbi5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBO
YXZpZ2F0b3JNZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7CiAgICAgfk5hdmlnYXRvck1lZGlhU2Vz
c2lvbigpOwogCi0gICAgc3RhdGljIE1lZGlhU2Vzc2lvbiYgbWVkaWFTZXNzaW9uKE5hdmlnYXRv
ciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBNZWRpYVNlc3Npb24mIG1lZGlhU2Vzc2lv
bihOYXZpZ2F0b3ImKTsKICAgICBNZWRpYVNlc3Npb24mIG1lZGlhU2Vzc2lvbigpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCA1OWJhYjJlMThjNmE5OTA0YjRhODY2MDA0YTZkYjMzMzAy
OTEwMzI2Li5hMmQ4ZWM4ZjEzM2E2NTQxMjUwMmExZmY3ZjgyNzE0YWM3N2I1ZTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTMxLDYgKzEzMSw3IEBAIE1vZHVsZXMvbWVkaWFjYXBhYmlsaXRpZXMvTWVk
aWFDYXBhYmlsaXRpZXMuY3BwCiBNb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL05hdmlnYXRvck1l
ZGlhQ2FwYWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5j
cHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKK01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAogTW9kdWxlcy9tZWRpYXNlc3Npb24v
TmF2aWdhdG9yTWVkaWFTZXNzaW9uLmNwcAogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29u
dHJvbHNIb3N0LmNwcAogTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5jcHAKQEAgLTE5
OTgsNiArMTk5OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGguY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0
aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybVRpbWVSYW5nZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAKQEAgLTMy
MjQsNiArMzIyNiw3IEBAIEpTTWVkaWFLZXlzLmNwcAogSlNNZWRpYUtleXNSZXF1aXJlbWVudC5j
cHAKIEpTTWVkaWFMaXN0LmNwcAogSlNNZWRpYU1ldGFkYXRhLmNwcAorSlNNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAKIEpTTWVkaWFNZXRhZGF0YUluaXQuY3BwCiBKU01lZGlhUG9zaXRpb25T
dGF0ZS5jcHAKIEpTTWVkaWFRdWVyeUxpc3QuY3BwCkBAIC0zMjM0LDYgKzMyMzcsNyBAQCBKU01l
ZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuY3BwCiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIu
Y3BwCiBKU01lZGlhU2Vzc2lvbkFjdGlvbi5jcHAKIEpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5jcHAKK0pTTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5jcHAKIEpTTWVkaWFTZXNzaW9uLmNwcAog
SlNNZWRpYVNvdXJjZS5jcHAKIEpTTWVkaWFTdHJlYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWFkMGJlNzQ5ZmE4NTdk
OGE2ODYwYWIwMWE5YmUzN2NkNmUyY2QxZS4uNWU3N2FlYWExNTM3ZTM4OTlmZDVkYjdjZGRmM2Jh
ZTQ1ZmMwYzQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTAsNiArOTAsNyBAQAogCQkwNzA3NTZENDE0MjM5QTRGMDA0MTQx
NjEgLyogSlNIVE1MVHJhY2tFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzA3NTZEMjE0MjM5QTRFMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tF
bGVtZW50LmggKi87IH07CiAJCTA3MDc1NkRFMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFj
a0N1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcw
NzU2RDgxNDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi87IH07CiAJCTA3MDc1
NkUwMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkRBMTQyMzlCNEUwMDQxNDE2
MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCAqLzsgfTsKKwkJMDcwOEYyQjYyNURERTQ1RDAwNEY5
MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi87IH07CiAJCTA3MDlENzhGMUFF
NTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjgg
LyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3MDlENzkyMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjLmNwcCAqLzsgfTsKIAkJMDcwOUQ3OTMxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3MDlENzkxMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTEyMyw2ICsxMjQsNyBAQAogCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVt
b3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3M0I4NzY3
MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9T
YW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc0
MEIxNDQyNURFMzFGODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQwQjE0MzI1
REUzMUE5MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLzsgfTsK
IAkJMDc0RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTgyQjkxOEE2OUYw
RTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTAzM0E4MjUyQkQzNjgwMEY3MENFMyAvKiBW
aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXli
YWNrUXVhbGl0eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNr
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYw
MTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07CkBAIC01Njk0LDYg
KzU2OTYsNyBAQAogCQkwNzA3NTZEODE0MjM5QjRCMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJhY2tDdWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2RDkxNDIzOUI0QzAwNDE0MTYxIC8qIEpT
VGV4dFRyYWNrQ3VlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1RleHRUcmFja0N1ZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzA3NTZEQTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlTGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3MDlENzhDMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk1lZGlhU2Vz
c2lvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA5RDc4RDFB
RTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNl
c3Npb25NYW5hZ2VyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTc4NSw2ICs1Nzg4LDE0IEBACiAJCTA3MkFFMUUzMTgzQzA3NDEwMDBBNTk4OCAvKiBR
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzJBRTFFNDE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQu
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBRdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyQ0E4NjAx
NkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQkZCMjVEQjM4QkMwMEExMzUwRSAvKiBN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkMwMzI1REM2QkQzMDBBMTM1
MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDUy
NURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDcyREJDMDYyNURDNkVEQTAwQTEzNTBFIC8qIEpTTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkMwNzI1REM2RURBMDBBMTM1MEUgLyog
SlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcz
NkI3MzAyNjA5NEEzNzAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwNzM2QjczMjI2MDk1NTU0MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uUGxh
eWxpc3RNaXhpbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzZCNzMzMjYwQTdCNjQwMEUwNjk5NCAvKiBNZWRp
YU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4
aW4uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTREQzE5RUUyQzUyMDBF
NUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzM3OTRFMzE5RUUyRkYyMDBFNUEwNDUgLyogSlNSVENDb25maWd1cmF0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUlRDQ29uZmlndXJhdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NEU0MTlFRTJGRjIwMEU1
QTA0NSAvKiBKU1JUQ0NvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNSVENDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01ODA2LDYgKzU4MTcsMTAgQEAKIAkJMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRp
b1NhbXBsZUJ1ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3
NjQxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8q
IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MDc0MEIxNDEyNURFMzFBODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0MEIxNDMyNURFMzFBOTAwRTM4REJBIC8qIE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzQ0NzFG
RDI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTA3NDQ3MUZGMjVFMTgwMDUwMDU0QjIzMSAvKiBNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDc0NEVDRUIxRTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0F1ZGlvU2hhcmVkVW5pdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQg
LyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IE1vY2tBdWRpb1NoYXJlZFVuaXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3NDZEMzBBMjE0NkVBMzcwMDNEREY4NCAvKiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU5MjIsNiArNTkz
Nyw3IEBACiAJCTA3RTExNkIwMTQ4OUM5QTEwMEVDNUFDRSAvKiBKU1RleHRUcmFja0N1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1c3Rv
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RTExNzA2MTQ4OUVCRUIwMEVD
NUFDRSAvKiBKU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3RTNERkQwMUE5RTc4NjUwMDc2NENBOCAvKiBNZWRpYVBsYXliYWNrVGFy
Z2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWJhY2tUYXJn
ZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdFNUYzOTIyNUVBQTkxRjAwQTg1
M0FEIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3RTlFMTJEMThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0
YVRleHRUcmFja1ByaXZhdGVBVkYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3RTlFMTJGMThGNjJCMzcwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDdFRTc2RTkxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk3OTUs
MTAgKzk4MTEsMTAgQEAKIAkJNkUwRTU2OUExODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRl
ZFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxvYXRSb3VuZGVkUmVj
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZCRjExMjYzMzg1MDBBN0JF
MDIgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250
ZXh0R0xDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGlj
c0NvbnRleHRHTENHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyNDJCMjYy
MzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuY3BwOyBwYXRoID0gLi4v
Li4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk2RTI0MkIyODIzMzU5M0Q3MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
RVRDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oOyBwYXRo
ID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNkUyNDJCMjkyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUVUQzEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
RVRDMS5jcHA7IHBhdGggPSAuLi8uLi8uLi8uLi8uLi8uLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RTI0MkIyQTIzMzU5M0Q4MDAyQ0FERDQgLyogSlNX
ZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdMQ29tcHJl
c3NlZFRleHR1cmVFVEMxLmg7IHBhdGggPSAuLi8uLi8uLi8uLi8uLi8uLi9XZWJLaXRCdWlsZC9E
ZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUyNDJCMjYyMzM1OTNENzAwMkNBREQ0
IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk2RTI0MkIyODIzMzU5M0Q3MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
RVRDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RTI0MkIyOTIzMzU5M0Q3MDAyQ0FERDQgLyogSlNX
ZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVFVEMxLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NkUyNDJCMkEyMzM1OTNEODAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RTI3RjI0MjIyOThDRTRCMDBGMUY2MzIgLyogR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkUyN0YyNDMyMjlDOUY4NDAwRjFGNjMyIC8qIEV4dGVuc2lvbnNHTEFOR0xFLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4dGVuc2lvbnNHTEFOR0xFLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyN0YyNDQyMjlDOUY4RDAwRjFGNjMyIC8q
IEV4dGVuc2lvbnNHTEFOR0xFLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4
dGVuc2lvbnNHTEFOR0xFLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTYwNSw2
ICsxOTYyMSw4IEBACiAJCQkJNTEwNThBREExRDY3OTI1NzAwOUE1MzhDIC8qIE1vY2tHYW1lcGFk
UHJvdmlkZXIuaCAqLywKIAkJCQk0MTU3RUJGOTFFM0FCMDY4MDBBQzlGRTkgLyogTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk0MTU3RUJGODFFM0FCMDY4MDBBQzlGRTkg
LyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmggKi8sCisJCQkJMDc0MEIxNDMyNURFMzFB
OTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDc0
MEIxNDEyNURFMzFBODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICov
LAogCQkJCTJENkYzRThBMUMxRUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXkuY3BwICov
LAogCQkJCTJENkYzRThCMUMxRUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXkuaCAqLywK
IAkJCQkyRDZGM0U4QzFDMUVDQjFDMDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5LmlkbCAqLywK
QEAgLTI2OTEwLDYgKzI2OTI4LDggQEAKIAkJCQk1NTA2NDBBRDI0MDc1NkRBMDBBQUUwNDUgLyog
UGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQuaCAqLywKIAkJCQkwNTYyRjk2MDE1NzNGODhGMDAz
MUNBMTYgLyogUGxhdGZvcm1MYXllci5oICovLAogCQkJCUNFRUZDRDdCMTlEQjMzREMwMDM4NzZE
NyAvKiBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAqLywKKwkJCQkwN0U1RjM5MjI1RUFB
OTFGMDBBODUzQUQgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJ
CQkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaCAqLywKIAkJCQkwNzI4NDdFMjE2RUJDNUIwMDA0M0NGQTQgLyogUGxhdGZvcm1UZXh0
VHJhY2suaCAqLywKIAkJCQkwNzRFODJCODE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1l
UmFuZ2VzLmNwcCAqLywKIAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1U
aW1lUmFuZ2VzLmggKi8sCkBAIC0yODM1Nyw2ICsyODM3Nyw3IEBACiAJCQkJQ0REREVBMkMyNTM4
Q0UwNDAwQTEzMDBDIC8qIE1lZGlhTWV0YWRhdGEuaWRsICovLAogCQkJCUNERERFQTMwMjUzOENF
MUUwMEExMzAwQyAvKiBNZWRpYU1ldGFkYXRhSW5pdC5oICovLAogCQkJCUNERERFQTJGMjUzOENF
MUUwMEExMzAwQyAvKiBNZWRpYU1ldGFkYXRhSW5pdC5pZGwgKi8sCisJCQkJMDczNkI3MzMyNjBB
N0I2NDAwRTA2OTk0IC8qIE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbCAqLywKIAkJCQlD
RERERUEzNDI1MzhDRTYyMDBBMTMwMEMgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggKi8sCiAJCQkJ
Q0REREVBMzMyNTM4Q0U2MjAwQTEzMDBDIC8qIE1lZGlhUG9zaXRpb25TdGF0ZS5pZGwgKi8sCiAJ
CQkJQ0REREVBMjQyNTM4Q0Q4MDAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbi5jcHAgKi8sCkBAIC0y
ODM2OCw4ICsyODM4OSwxNSBAQAogCQkJCUNERERFQTM1MjUzOENFNzAwMEExMzAwQyAvKiBNZWRp
YVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCAqLywKIAkJCQlDRERERUEzQTI1MzhFOUMyMDBBMTMw
MEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovLAogCQkJCUNERERFQTM5MjUzOEU5
QzIwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCAqLywKKwkJCQkwNzJE
QkMwNTI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAor
CQkJCTA3MkRCQzAzMjVEQzZCRDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
ICovLAorCQkJCTA3MkRCQkZCMjVEQjM4QkMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5pZGwgKi8sCisJCQkJMDczNkI3MzAyNjA5NEEzNzAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yTWl4aW4uaWRsICovLAogCQkJCUNERERFQTI5MjUzOENEQ0IwMEExMzAwQyAv
KiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggKi8sCiAJCQkJQ0REREVBMjgyNTM4Q0RDQjAw
QTEzMDBDIC8qIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaWRsICovLAorCQkJCTA3MzZCNzMy
MjYwOTU1NTQwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbCAqLywKKwkJ
CQkwNzQ0NzFGRDI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oICov
LAorCQkJCTA3NDQ3MUZGMjVFMTgwMDUwMDU0QjIzMSAvKiBNZWRpYVNlc3Npb25SZWFkeVN0YXRl
LmlkbCAqLywKIAkJCQlDRERERUEyNTI1MzhDREFCMDBBMTMwMEMgLyogTmF2aWdhdG9yK01lZGlh
U2Vzc2lvbi5pZGwgKi8sCiAJCQkJQ0REREVBMjcyNTM4Q0RBQjAwQTEzMDBDIC8qIE5hdmlnYXRv
ck1lZGlhU2Vzc2lvbi5jcHAgKi8sCiAJCQkJQ0REREVBMjYyNTM4Q0RBQjAwQTEzMDBDIC8qIE5h
dmlnYXRvck1lZGlhU2Vzc2lvbi5oICovLApAQCAtMjgzOTYsNiArMjg0MjQsOCBAQAogCQkJCUNE
RERFQTQwMjUzOTExREIwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaCAq
LywKIAkJCQlDRERERUE0RDI1MzkxM0JCMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25BY3Rpb25I
YW5kbGVyLmNwcCAqLywKIAkJCQlDRERERUE0RTI1MzkxM0JDMDBBMTMwMEMgLyogSlNNZWRpYVNl
c3Npb25BY3Rpb25IYW5kbGVyLmggKi8sCisJCQkJMDcyREJDMDcyNURDNkVEQTAwQTEzNTBFIC8q
IEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3MkRCQzA2MjVEQzZFREEw
MEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCiAJCQkJQ0REREVBNDYy
NTM5MTFERDAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAgKi8sCiAJ
CQkJQ0REREVBNDIyNTM5MTFEQzAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5oICovLAogCQkJKTsKQEAgLTM0Mjg4LDYgKzM0MzE4LDcgQEAKIAkJCQlGNTQ0Rjc4OTE1Q0ZC
MkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRUZD
RDdDMTlEQjMzREMwMDM4NzZENyAvKiBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3MEUwOTE5MTg3NUVFRkMwMDNBMUQzQyAvKiBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDcwOEYyQjYyNURERTQ1RDAwNEY5MDg2IC8q
IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
Rjk0NDE2MTg2NEQwNDYwMDVEMzFDQiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNUM0NzY5MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybU1v
dXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1OTg5MDU4MTRFOUMyOTkwMEU4RDE4QiAv
KiBQbGF0Zm9ybVBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovLApAQCAtMzYxOTQsNiArMzYyMjUs
NyBAQAogCQkJCTUxMDU4QURCMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MTA1OEFERDFENjc5MkMxMDA5QTUzOEMgLyogTW9ja0dhbWVwYWRQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTU3RUJGQTFFM0FCNjc5MDBBQzlGRTkg
LyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3
NDBCMTQ0MjVERTMxRjgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ2RjNFOTAxQzFFQ0IyNzAwNjFEQkQ0IC8qIE1vY2tQYWdl
T3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDk3RjA0NzE5REQ0MTNDMDAxRUU5QzMg
LyogTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQUZFREU3
MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oCmluZGV4IGM3ODdmMGU4MTQxNjI2ZWZjMDliMTdkMTgxNzQxNDAyNjJhNzIwNjUuLjgwMzc0
ZjUxYjhmMGJiYWE4ZWViZjk3OTk5ZTMwOGQzZmY3YTAxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE3MSw2ICsxNzEsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oTWVkaWFRdWVyeUxpc3RFdmVudCkgXAog
ICAgIG1hY3JvKE1lZGlhUmVjb3JkZXIpIFwKICAgICBtYWNybyhNZWRpYVJlY29yZGVyRXJyb3JF
dmVudCkgXAorICAgIG1hY3JvKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKSBcCiAgICAgbWFjcm8o
TWVkaWFTb3VyY2UpIFwKICAgICBtYWNybyhNZWRpYVN0cmVhbSkgXAogICAgIG1hY3JvKE1lZGlh
U3RyZWFtVHJhY2spIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDEzOTQ0NDM5ODE0NjA5
MDllZjJhMGZlNWJjN2Q3OWE5OWI3MmU1NTUuLjJjNjgwN2RjYTY1N2Y2NTAyYjIwZjQxYzVhZGEy
ZWU2MWIzZjJlNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMTAxLDYgKzEwMSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhjb25uZWN0aW5nKSBcCiAgICAgbWFjcm8o
Y29udGV4dG1lbnUpIFwKICAgICBtYWNybyhjb250cm9sbGVyY2hhbmdlKSBcCisgICAgbWFjcm8o
Y29vcmRpbmF0b3JjaGFuZ2UpIFwKICAgICBtYWNybyhjb3B5KSBcCiAgICAgbWFjcm8oY3VlY2hh
bmdlKSBcCiAgICAgbWFjcm8oY3V0KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFj
dG9yeS5pbgppbmRleCA2OTZlYTljZWJkMjFkMTQ5YWVhNWUwYmI2NDM3YWNlZmI4Y2EyMDM0Li43
YTJjMGE4ZDhjMDc2MTlkMGU2N2IyMjdhMzA0ZTYyYWNmODllZTcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTIzLDYgKzIzLDcgQEAgTWVkaWFEZXZpY2Vz
IGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogTWVkaWFLZXlTZXNzaW9uIGNvbmRpdGlvbmFsPUVO
Q1JZUFRFRF9NRURJQQogTWVkaWFRdWVyeUxpc3QKIE1lZGlhUmVjb3JkZXIgY29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNCitNZWRpYVNlc3Npb24gY29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUgogTWVkaWFTb3VyY2UgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBNZWRpYVN0cmVh
bSBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KIE1lZGlhU3RyZWFtVHJhY2sgY29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJh
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5oCmluZGV4IGNlMWMzYTU2
ODJmZjFiN2RhMzk4ZjljM2E0NDBhNzQ5N2Q5MzJmMTkuLjY3OWZiOWM4OWRhYTc4OGJiYmY1YTc1
NzVkOWNkMjExOTA0NjI1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdD
YWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5oCkBAIC00
Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhh
bmRsZUV2ZW50KGNvbnN0IFN0cmluZyYgZGF0YSkgPSAwOwogCiAgICAgLy8gSGVscGVyIHRvIHBv
c3QgY2FsbGJhY2sgdGFzay4KLSAgICB2b2lkIHNjaGVkdWxlQ2FsbGJhY2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgZGF0YSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzY2hlZHVsZUNhbGxiYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcm
IGRhdGEpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTE3ODUxMTM5OWY0MTVmNzgxYjMyYWFl
ZTc2YzExM2ViMTdlYmNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKQEAgLTAsMCAr
MSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRl
KQoreworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0g
eworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZU5vdGhpbmciKSwKKyAgICAg
ICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVNZXRhZGF0YSIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUN1cnJlbnREYXRhIiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJIYXZlRnV0dXJlRGF0YSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiSGF2ZUVub3VnaERhdGEiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQo
IXN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZU5vdGhpbmcgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhKSA9PSAxLCAiTWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkgPT0gMiwgIk1lZGlh
U2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSBpcyBub3QgMiBhcyBleHBlY3RlZCIp
OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSkg
PT0gMywgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhIGlzIG5vdCAzIGFz
IGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVF
bm91Z2hEYXRhKSA9PSA0LCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEg
aXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90Pihz
dGF0ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3Rh
dGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSldOworfQorCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9u
VG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5vbmUi
KSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlBhdXNlZCIpLAorICAgICAgICBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGxheWluZyIpLAorICAgIH07CisgICAgc3RhdGljX2Fz
c2VydCghc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lKSwgIk1lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGU6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkKSA9PSAxLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZTo6UGF1c2VkIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpID09IDIsICJNZWRpYVNlc3Npb25QbGF5YmFj
a1N0YXRlOjpQbGF5aW5nIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRp
Y19jYXN0PHNpemVfdD4oc3RhdGUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICBy
ZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpXTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTEwZGM1
MWQyYTZmODBhYmM5N2FhNjA3ZDllOWE1MTAxNTBmMzJlZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJFeGNlcHRp
b24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCisgICAgdXNpbmcgU2Vla0NvbXBs
ZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+
JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vla1RvKGRvdWJsZSwgU2Vla0NvbXBsZXRlZENhbGxi
YWNrJiYpID0gMDsKKworICAgIHVzaW5nIFBsYXlDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47CisgICAgdmlydHVhbCB2b2lk
IHBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHVzaW5nIFBhdXNlQ29t
cGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlv
bj4mJik+OworICAgIHZpcnR1YWwgdm9pZCBwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYp
ID0gMDsKKworICAgIHVzaW5nIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+OworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2smJikgPSAwOwor
CisgICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxv
Z0lkZW50aWZpZXIpCisgICAgeworICAgICAgICBtX2xvZ2dlciA9IG1ha2VSZWZQdHIobG9nZ2Vy
KTsKKyAgICAgICAgbV9sb2dJZGVudGlmaWVyID0gbG9nSWRlbnRpZmllcjsKKyAgICB9CisKKyAg
ICBzdHJ1Y3QgTWVkaWFQb3NpdGlvblN0YXRlIHsKKyAgICAgICAgZG91YmxlIGR1cmF0aW9uID0g
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOworICAgICAgICBkb3VibGUg
cGxheWJhY2tSYXRlID0gMTsKKyAgICAgICAgZG91YmxlIHBvc2l0aW9uID0gMDsKKyAgICB9Owor
CisgICAgZW51bSBjbGFzcyBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIDogdWludDhfdCB7CisgICAg
ICAgIEhhdmVOb3RoaW5nLAorICAgICAgICBIYXZlTWV0YWRhdGEsCisgICAgICAgIEhhdmVDdXJy
ZW50RGF0YSwKKyAgICAgICAgSGF2ZUZ1dHVyZURhdGEsCisgICAgICAgIEhhdmVFbm91Z2hEYXRh
LAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgOiB1
aW50OF90IHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgUGF1c2VkLAorICAgICAgICBQbGF5aW5n
LAorICAgIH07CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9u
YWw8TWVkaWFQb3NpdGlvblN0YXRlPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRl
Q2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBs
YXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpID0gMDsKKworcHJv
dGVjdGVkOgorICAgIGV4cGxpY2l0IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9
IGRlZmF1bHQ7CisKKyAgICBjb25zdCBMb2dnZXIqIGxvZ2dlclB0cigpIGNvbnN0IHsgcmV0dXJu
IG1fbG9nZ2VyLmdldCgpOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQor
ICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCB7IHJldHVybiBMb2dNZWRpYTsg
fQorCitwcml2YXRlOgorICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNv
bnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKK307CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRp
b25Ub1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlKTsKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKTsKKworfQor
CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggOWIyZmYxM2JjY2ZkMWQyYTY0MDMxOGI0Y2Y3MDEz
MjlhZmNlMWEyOC4uMWJlODMyMWQxMzY4MGE4Mzg3ZjIzZDdlMDdhNzRmZjYwMGIyY2VkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzM3LDYgKzMzNywxMiBAQAogI2lu
Y2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaCIKKyNpbmNsdWRlICJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNs
dWRlICJOYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKElNQUdF
X0VYVFJBQ1RJT04pCiAjaW5jbHVkZSAiSW1hZ2VFeHRyYWN0aW9uUmVzdWx0LmgiCiAjZW5kaWYK
QEAgLTYxMTUsOSArNjEyMSw0MCBAQCB2b2lkIEludGVybmFsczo6bG9hZEFydHdvcmtJbWFnZShT
dHJpbmcmJiB1cmwsIEFydHdvcmtJbWFnZVByb21pc2UmJiBwcm9taXNlKQogICAgIH0pOwogICAg
IG1fYXJ0d29ya0xvYWRlci0+cmVxdWVzdEltYWdlUmVzb3VyY2UoKTsKIH0KLQogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKK0V4Y2VwdGlvbk9yPHZvaWQ+
IEludGVybmFsczo6cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmIGxpc3RlbmVy
KQoreworICAgIGlmIChtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm4g
eyB9OworCisgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZG9tV2luZG93KCkpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAgIGlmICghZG9jdW1lbnQtPnNldHRp
bmdzKCkubWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAgIGF1dG8mIHNlc3Npb24gPSBO
YXZpZ2F0b3JNZWRpYVNlc3Npb246Om1lZGlhU2Vzc2lvbihkb2N1bWVudC0+ZG9tV2luZG93KCkt
Pm5hdmlnYXRvcigpKTsKKyAgICBhdXRvIG1vY2sgPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6OmNyZWF0ZShjb250ZXh0LCBXVEZNb3ZlKGxpc3RlbmVyKSk7CisgICAgbV9tb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IgPSBtb2NrLnB0cigpOworICAgIG1fbWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IgPSBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKG1vY2suZ2V0KCkpOworICAg
IHNlc3Npb24uc2V0Q29vcmRpbmF0b3IobV9tZWRpYVNlc3Npb25Db29yZGluYXRvci5nZXQoKSk7
CisKKyAgICByZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnNl
dE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChib29sIHNob3Vs
ZEZhaWwpCit7CisgICAgaWYgKCFtX21vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcikKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBtX21vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvci0+c2V0Q29tbWFuZHNTaG91bGRGYWlsKHNob3VsZEZhaWwp
OworICAgIHJldHVybiB7IH07Cit9CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pCisK
IGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc3RyaW5nKFBhcnRpYWxPcmRlcmluZyBvcmRlcmluZykK
IHsKICAgICBpZiAoaXNfbHQob3JkZXJpbmcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
aW5kZXggNjBlY2M0ODhiNDMyMDc3ZWIyZTM2MTJjMDZmYjRlOThkYTZhZDY2Yi4uMjEzZDg3Y2Vm
NjRhZDVhZGU2YmEwMjU4MDc0ODFlNTk4OTA5Nzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCkBAIC0xMzYsNiArMTM2LDEwIEBAIGNsYXNzIFdlYlhSVGVzdDsKICNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTikKIGNsYXNzIE1lZGlhU2Vzc2lvbjsKIHN0cnVjdCBNZWRpYVNlc3Npb25B
Y3Rpb25EZXRhaWxzOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorY2xh
c3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CitjbGFzcyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I7CisjZW5kaWYKICNlbmRpZgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFz
cyBET01Qcm9taXNlRGVmZXJyZWQ7CkBAIC0xMDkzLDEwICsxMDk3LDE3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBFeGNlcHRpb25Pcjxkb3VibGU+IGN1cnJlbnRN
ZWRpYVNlc3Npb25Qb3NpdGlvbihjb25zdCBNZWRpYVNlc3Npb24mKTsKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZW5kTWVkaWFTZXNzaW9uQWN0aW9uKE1lZGlhU2Vzc2lvbiYsIGNvbnN0IE1lZGlh
U2Vzc2lvbkFjdGlvbkRldGFpbHMmKTsKLSAgICB1c2luZyBBcnR3b3JrSW1hZ2VQcm9taXNlID0g
RE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxJbWFnZURhdGE+PjsKKworICAgICAgICB1
c2luZyBBcnR3b3JrSW1hZ2VQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFj
ZTxJbWFnZURhdGE+PjsKICAgICB2b2lkIGxvYWRBcnR3b3JrSW1hZ2UoU3RyaW5nJiYsIEFydHdv
cmtJbWFnZVByb21pc2UmJik7CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiByZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsK
KyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21t
YW5kc1Nob3VsZEZhaWwoYm9vbCk7CiAjZW5kaWYKIAorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OKQorCiAgICAgZW51bSBUcmVlVHlwZSA6IHVpbnQ4X3QgeyBUcmVlLCBTaGFkb3dJbmNs
dWRpbmdUcmVlLCBDb21wb3NlZFRyZWUgfTsKICAgICBTdHJpbmcgdHJlZU9yZGVyKE5vZGUmLCBO
b2RlJiwgVHJlZVR5cGUpOwogICAgIFN0cmluZyB0cmVlT3JkZXJCb3VuZGFyeVBvaW50cyhOb2Rl
JiBjb250YWluZXJBLCB1bnNpZ25lZCBvZmZzZXRBLCBOb2RlJiBjb250YWluZXJCLCB1bnNpZ25l
ZCBvZmZzZXRCLCBUcmVlVHlwZSk7CkBAIC0xMTQwLDYgKzExNTEsMTEgQEAgcHJpdmF0ZToKICNp
ZiBFTkFCTEUoV0VCWFIpCiAgICAgUmVmUHRyPFdlYlhSVGVzdD4gbV94clRlc3Q7CiAjZW5kaWYK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIFJlZlB0cjxNZWRp
YVNlc3Npb25Db29yZGluYXRvcj4gbV9tZWRpYVNlc3Npb25Db29yZGluYXRvcjsKKyAgICBSZWZQ
dHI8TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX21vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGY2OTcyNTI5YjlkMjYwNjYwNjk4NTFjMjUwNDlmY2Yw
ZmEwMDQyNTQuLjRiMzBkM2VhOTEwYmY0MDExNTJiZTdlY2JhNGY1ZmFlZTgwZmM2ZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTk5MSw2ICs5OTEsOSBAQCBlbnVtIFRy
ZWVUeXBlIHsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTiwgTWF5VGhyb3dFeGNlcHRp
b25dIHVuZGVmaW5lZCBzZW5kTWVkaWFTZXNzaW9uQWN0aW9uKE1lZGlhU2Vzc2lvbiBzZXNzaW9u
LCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGFjdGlvbkRldGFpbHMpOwogICAgIFtDb25kaXRp
b25hbD1NRURJQV9TRVNTSU9OXSBQcm9taXNlPEltYWdlRGF0YT4gbG9hZEFydHdvcmtJbWFnZShE
T01TdHJpbmcgdXJsKTsKICAgICAKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUiwgTWF5VGhyb3dFeGNlcHRpb24sIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIHVuZGVmaW5lZCByZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTdHJpbmdD
YWxsYmFjayBjYWxsYmFjayk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IsIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKGJvb2xlYW4gc2hvdWxkRmFpbCk7CisKICAgICBE
T01TdHJpbmcgdHJlZU9yZGVyKE5vZGUgYSwgTm9kZSBiLCBvcHRpb25hbCBUcmVlVHlwZSB0cmVl
ID0gIlRyZWUiKTsKICAgICBET01TdHJpbmcgdHJlZU9yZGVyQm91bmRhcnlQb2ludHMoTm9kZSBj
b250YWluZXJBLCB1bnNpZ25lZCBsb25nIG9mZnNldEEsIE5vZGUgY29udGFpbmVyQiwgdW5zaWdu
ZWQgbG9uZyBvZmZzZXRCLCBvcHRpb25hbCBUcmVlVHlwZSB0cmVlID0gIlRyZWUiKTsKICAgICBi
b29sZWFuIHJhbmdlQ29udGFpbnNOb2RlKEFic3RyYWN0UmFuZ2UgcmFuZ2UsIE5vZGUgbm9kZSwg
b3B0aW9uYWwgVHJlZVR5cGUgdHJlZSA9ICJUcmVlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzM3NWZiNjEzMjUwZDcxZDcxMTQ1NzY3NDk0M2E1YzAxNzg1MjlmYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5oIgor
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJI
ZWxwZXIuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
VVVJRC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdWaWV3Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcj4gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYm
IGxpc3RlbmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcihjb250ZXh0LCBXVEZNb3ZlKGxpc3RlbmVyKSkpOworfQorCitNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIp
CisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lcihX
VEZNb3ZlKGxpc3RlbmVyKSkKK3sKK30KKworT3B0aW9uYWw8RXhjZXB0aW9uPiBNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnJlc3VsdCgpIGNvbnN0Cit7CisgICAgaWYgKG1fZmFpbENvbW1h
bmRzKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKwor
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxi
YWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgdGltZSk7
CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJh
Y2socmVzdWx0KCkpOworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6cGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBTFdB
WVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1fY29udGV4dC0+cG9zdFRh
c2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdCgpKTsKKyAgICB9KTsK
K30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKFBhdXNlQ29tcGxl
dGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExP
R0lERU5USUZJRVIpOworICAgIG1fY29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7Cisg
ICAgICAgIGNhbGxiYWNrKHJlc3VsdCgpKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OnNldFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tDb21wbGV0
ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9H
SURFTlRJRklFUik7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAg
ICAgICAgY2FsbGJhY2socmVzdWx0KCkpOworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8UGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFQb3NpdGlvblN0YXRlPikKK3sKKyAgICBBTFdB
WVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1fc3RhdGVDaGFuZ2VMaXN0
ZW5lci0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCksICJwb3NpdGlvblN0YXRlQ2hh
bmdlZCIpOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0
ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJ
RVIsIHN0YXRlKTsKKyAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2so
bV9jb250ZXh0LmdldCgpLCAicmVhZHlTdGF0ZUNoYW5nZWQiKTsKK30KKwordm9pZCBNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCit7Cisg
ICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisgICAgbV9z
dGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInBs
YXliYWNrU3RhdGVDaGFuZ2VkIik7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODcwYmI0Y2IwYmU5NmY4NWZk
NDU3MGU4ZTM5M2I3MjM2ZmU4ZjJiMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw2NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCisKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CitjbGFzcyBTdHJpbmdDYWxsYmFjazsKKworY2xhc3MgTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yIDogcHVibGljIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZlB0
cjxTdHJpbmdDYWxsYmFjaz4mJik7CisKKyAgICB2b2lkIHNldENvbW1hbmRzU2hvdWxkRmFpbChi
b29sIHNob3VsZEZhaWwpIHsgbV9mYWlsQ29tbWFuZHMgPSBzaG91bGRGYWlsOyB9CisKK3ByaXZh
dGU6CisgICAgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYpOworCisgICAgdm9pZCBzZWVrVG8oZG91Ymxl
LCBTZWVrQ29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBwbGF5KFBsYXlDb21w
bGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVkQ2Fs
bGJhY2smJikgZmluYWw7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNr
Q29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7CisKKyAgICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFu
Z2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIGZpbmFsOworICAgIHZvaWQgcmVhZHlT
dGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgZmluYWw7CisgICAgdm9pZCBwbGF5
YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsKKworICAg
IE9wdGlvbmFsPEV4Y2VwdGlvbj4gcmVzdWx0KCkgY29uc3Q7CisKKyAgICBSZWY8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dD4gbV9jb250ZXh0OworICAgIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4gbV9z
dGF0ZUNoYW5nZUxpc3RlbmVyOworICAgIGJvb2wgbV9mYWlsQ29tbWFuZHMgeyBmYWxzZSB9Owor
fTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNTY3YmE0ODM2MGFkNzEyMmJkZDRkODUyZGEyMmFkNWFlMDJiNGUwZS4uMjMxZjllNzMx
MGEyOGNmNzlhYmEwZWE5ZTZlZWQxZmY5MmY5NjMzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIxLTAyLTE4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFtDb2NvYV0gQWRkIEV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE1OAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzQ1MDg4NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5o
dG1sOiBBZGRlZC4KKwogMjAyMS0wMy0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlc3luYyB3ZWJhdWRpbyB3ZWItcGxhdGZvcm0tdGVzdHMgZnJvbSB1cHN0
cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTQ0MjZkYzg5MTc4ZjUwMGM4ZmRiNDljMTk1OTAy
NGJiZGUyODI0YS4uYTNiMWRjNzQ1YWJlNmJjMDE5ZTQ4NTRkMzhhZDMwYWE3YzE3ZGE4MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC00NjUyLDYgKzQ2NTIsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1hZnRlci1pbml0aWFsLWxheW91
dC93cgogIyBDb2NvYS1vbmx5CiBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtaGRyLXN3aXRjaC5o
dG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNhbnBsYXl0aHJvdWdoLXdlYm0u
aHRtbCBbIFNraXAgXQorbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwg
WyBTa2lwIF0KIAogIyBUaGVzZSB0ZXN0cyByZWx5IG9uIHdlYmtpdC10ZXN0LXJ1bm5lciBmbGFn
cyB0aGF0IGFyZW4ndCBpbXBsZW1lbnRlZCBmb3IgRHVtcFJlbmRlclRyZWUsIHNvIHRoZXkgd2ls
bCBmYWlsIHVuZGVyIGxlZ2FjeSBXZWJLaXQuCiBlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRvLmh0
bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNz
aW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBmZWM2ZDY0Mzg5ZWRlMWMy
MGQ0ZjI2MjM1N2YxMjYyYzcxMWEwMTM1Li43MWRiY2MzOGQzOTE5YmIzYzBiMzYyOGM0ZDEwZGQy
NjQ3OTE1Y2U4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYXNlc3Np
b24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xMiwxMCArMTIsMTQgQEAgUEFT
UyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29va2llczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvclBs
dWdpbnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBO
YXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0CitGQUlMIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9lcXVhbHM6IHByb3RvdHlwZSBv
ZiBzZWxmJ3MgcHJvcGVydHkgIk1lZGlhU2Vzc2lvbiIgaXMgbm90IEZ1bmN0aW9uLnByb3RvdHlw
ZSBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30i
IGJ1dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkgeworICAgIFtuYXRpdmUg
Y29kZV0KK30iCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFT
UyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lCi1QQVNTIE1lZGlhU2Vzc2lvbiBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdAorRkFJTCBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogcHJvdG90
eXBlIG9mIE1lZGlhU2Vzc2lvbi5wcm90b3R5cGUgaXMgbm90IE9iamVjdC5wcm90b3R5cGUgZXhw
ZWN0ZWQgb2JqZWN0ICJbb2JqZWN0IE9iamVjdF0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IEV2
ZW50VGFyZ2V0XSIKIFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBw
cm9wZXJ0eQogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3Bl
cnR5CiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtZXRhZGF0YQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29y
ZGluYXRvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQwNmY0ODJmNDg5YzcyNmY0NzI4ODBl
ZTY2NzZmOTI0ZDA1ZTU2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4MSBA
QAorCisqKiBUaGVyZSBzaG91bGQgYmUgbm8gbWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yIGluaXRp
YWxseS4KK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yID09ICd1
bmRlZmluZWQnKSBPSworCisqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yY2hh
bmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gaXQgY2hhbmdlcy4KK1JVTihpbnRlcm5hbHMucmVnaXN0
ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY2hhbmdlSGFuZGxlcikpCitFVkVOVChjb29y
ZGluYXRvcmNoYW5nZSkKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5h
dG9yICE9ICd1bmRlZmluZWQnKSBPSworCisqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBt
ZXRob2RzIHN1Y2NlZWQsIHByb21pc2VzIHJlc29sdmUgYW5kIG1lZGlhU2Vzc2lvbiBhY3Rpb24g
aGFuZGxlcnMgYXJlIGNhbGxlZC4KK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGlu
YXRvci5wbGF5KCkKK0FDVElPTihwbGF5KQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAncGxh
eScpIE9LCisKK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgp
CitBQ1RJT04ocGF1c2UpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdwYXVzZScpIE9LCisK
K1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrdG8oKQorQUNUSU9O
KHNlZWt0bykKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3NlZWt0bycpIE9LCisKKyoqIFRl
c3QgdGhhdCB3aGVuIGNvb3JkaW5hdG9yIG1ldGhvZHMgc3VjY2VlZCwgcHJvbWlzZXMgcmVqZWN0
IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBub3QgY2FsbGVkLgorVGVzdCBu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKQorRVhQRUNURUQgKGxhdGVz
dEFjdGlvbiA9PSAnJykgT0sKKworVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5h
dG9yLnBhdXNlKCkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisKK1Rlc3QgbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrdG8oKQorRVhQRUNURUQgKGxhdGVz
dEFjdGlvbiA9PSAnJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBj
b29yZGluYXRvciB3aGVuIHBvc2l0aW9uU3RhdGUgY2hhbmdlcy4KK1JVTihuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLnNldFBvc2l0aW9uU3RhdGUoeyBkdXJhdGlvbjogMSwgcGxheWJhY2tSYXRlOiAx
LCBwb3NpdGlvbjogMCB9KSkKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3Bvc2l0aW9uU3Rh
dGVDaGFuZ2VkJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29y
ZGluYXRvciB3aGVuIHJlYWR5U3RhdGUgY2hhbmdlcy4KK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykgT0sKK1JVTihuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZU1ldGFkYXRhJykKK0VYUEVDVEVEIChsYXRl
c3RDaGFuZ2UgPT0gJ3JlYWR5U3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0YScpIE9LCisKK0VYUEVDVEVE
IChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0YScpIE9L
CitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVDdXJyZW50RGF0
YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9LCitF
WFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlQ3VycmVu
dERhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRl
ID09ICdoYXZlQ3VycmVudERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVh
ZHlTdGF0ZSA9ICdoYXZlRnV0dXJlRGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdy
ZWFkeVN0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5y
ZWFkeVN0YXRlID09ICdoYXZlRnV0dXJlRGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVGdXR1cmVEYXRhJykgT0sKK1JVTihuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUVub3VnaERhdGEnKQorRVhQRUNU
RUQgKGxhdGVzdENoYW5nZSA9PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5h
dmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUVub3VnaERhdGEnKSBPSwor
CitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRW5v
dWdoRGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hh
dmVOb3RoaW5nJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3JlYWR5U3RhdGVDaGFuZ2Vk
JykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hh
dmVOb3RoaW5nJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29y
ZGluYXRvciB3aGVuIHBsYXliYWNrU3RhdGUgY2hhbmdlcy4KK0VYUEVDVEVEIChuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSworUlVOKG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICdwYXVzZWQnKQorRVhQRUNURUQgKGxhdGVzdENo
YW5nZSA9PSAncGxheWJhY2tTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKKworRVhQRUNURUQgKG5h
dmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKK1JVTihu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAncGxheWluZycpCitFWFBFQ1RF
RCAobGF0ZXN0Q2hhbmdlID09ICdwbGF5YmFja1N0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAo
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwbGF5aW5nJykgT0sKKwor
RVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGxheWlu
ZycpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ25vbmUn
KQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncGxheWJhY2tTdGF0ZUNoYW5nZWQnKSBPSwor
RVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAnbm9uZScp
IE9LCisKKworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRp
YS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzgxMTRhOGI1MzBm
NGRkOTljMzExOGQ5YTU3MmZlYjVlNWMxNzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKQEAgLTAsMCArMSwx
MzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bW9jay1t
ZWRpYXNlc3Npb24tY29vcmRpbmF0b3I8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRl
by10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorCisgICAgZnVuY3Rpb24gY2hhbmdl
SGFuZGxlcihjaGFuZ2UpCisgICAgeworICAgICAgICB3aW5kb3cubGF0ZXN0Q2hhbmdlID0gY2hh
bmdlOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMg
ZXZlbnQgPT4geworCisgICAgICAgIHdpbmRvdy5sYXRlc3RBY3Rpb24gPSAnJzsKKyAgICAgICAg
d2luZG93LmxhdGVzdENoYW5nZSA9ICcnOworCisgICAgICAgIGlmICghd2luZG93LmludGVybmFs
cykgeworICAgICAgICAgICAgZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1aXJlcyBJbnRlcm5hbHMn
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGNoYW5n
ZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24uYWRkRXZlbnRMaXN0ZW5lcignY29vcmRpbmF0b3JjaGFuZ2UnLCAoZXZl
bnQpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZlbnQudHlw
ZX0pYCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0
ZSgnKiogVGhlcmUgc2hvdWxkIGJlIG5vIG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciBpbml0aWFs
bHkuJykKKworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29v
cmRpbmF0b3InLCB1bmRlZmluZWQpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcmNo
YW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIGl0IGNoYW5nZXMuJykKKworICAgICAgICBydW4oJ2lu
dGVybmFscy5yZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihjaGFuZ2VIYW5kbGVy
KScpOworCisgICAgICAgIGF3YWl0IGNoYW5nZVByb21pc2U7CisgICAgICAgIAorICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3InLCB1bmRlZmlu
ZWQsICchPScpOworCisgICAgICAgIFsncGxheScsICdwYXVzZScsICdzZWVrdG8nXS5mb3JFYWNo
KGFjdGlvbiA9PiB7CisgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnNldEFjdGlv
bkhhbmRsZXIoYWN0aW9uLCBhY3Rpb25EZXRhaWxzID0+IHsKKyAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoYEFDVElPTigke2FjdGlvbkRldGFpbHMuYWN0aW9ufSlgKTsKKyAgICAgICAgICAg
ICAgICBsYXRlc3RBY3Rpb24gPSBhY3Rpb25EZXRhaWxzLmFjdGlvbjsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KTsKKworICAgICAgICBsZXQgdGVzdEFjdGlvbiA9IGFzeW5jIChhY3Rpb24s
IGZ1bmMsIGZvcmNlRmFpbHVyZSkgPT4geworICAgICAgICAgICAgbGF0ZXN0QWN0aW9uID0gJyc7
CisKKyAgICAgICAgICAgIGxldCBzdWNjZWVkZWQ7CisgICAgICAgICAgICB0cnkgeworICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZShgVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yLiR7YWN0aW9ufSgpYCk7CisgICAgICAgICAgICAgICAgYXdhaXQgZnVuYygpOworICAg
ICAgICAgICAgICAgIGlmIChmb3JjZUZhaWx1cmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZShgRkFJTDogJHtmdW5jLnRvU3RyaW5nKCl9IHJlc29sdmVkIGJ1dCBzaG91bGQgaGF2
ZSByZWplY3RlZGApOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0aW9u
JywgYWN0aW9uKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICAgICAg
aWYgKCFmb3JjZUZhaWx1cmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRkFJ
TDogJHtmdW5jLnRvU3RyaW5nKCl9IHRocmV3ICR7ZXh9YCk7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCdsYXRlc3RBY3Rpb24nLCAnJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIH07CisKKyAgICAgICAgbGV0IGFjdGlvbnMg
PSBbIAorICAgICAgICAgICAgeyBhY3Rpb246ICdwbGF5JywgZnVuYyA6ICgpID0+IHsgcmV0dXJu
IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpIH0sIH0sCisgICAgICAg
ICAgICB7IGFjdGlvbjogJ3BhdXNlJywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGF1c2UoKSB9LCB9LAorICAgICAgICAgICAgeyBhY3Rp
b246ICdzZWVrdG8nLCBmdW5jIDogKCkgPT4geyByZXR1cm4gbmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5jb29yZGluYXRvci5zZWVrVG8oMTApIH0sIH0sCisgICAgICAgIF07CisKKyAgICAgICAgY29u
c29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgd2hlbiBj
b29yZGluYXRvciBtZXRob2RzIHN1Y2NlZWQsICBwcm9taXNlcyByZXNvbHZlIGFuZCBtZWRpYVNl
c3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBjYWxsZWQuJykKKyAgICAgICAgaW50ZXJuYWxzLnNl
dE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChmYWxzZSk7Cisg
ICAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKQorICAgICAgICAgICAgYXdhaXQgdGVz
dEFjdGlvbihhY3Rpb24uYWN0aW9uLCBhY3Rpb24uZnVuYywgZmFsc2UpOworCisgICAgICAgIGNv
bnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVk
LCAgcHJvbWlzZXMgcmVqZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBu
b3QgY2FsbGVkLicpCisgICAgICAgIGludGVybmFscy5zZXRNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JDb21tYW5kc1Nob3VsZEZhaWwodHJ1ZSk7CisgICAgICAgIGZvciAobGV0IGFjdGlvbiBv
ZiBhY3Rpb25zKQorICAgICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihhY3Rpb24uYWN0aW9uLCBh
Y3Rpb24uZnVuYywgdHJ1ZSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKGAqKiBUZXN0IHRoYXQg
bWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcG9zaXRpb25TdGF0ZSBjaGFu
Z2VzLmApCisgICAgICAgIHJ1bignbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0
YXRlKHsgZHVyYXRpb246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSknKTsKKyAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3Bvc2l0
aW9uU3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycp
OworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZp
ZXMgY29vcmRpbmF0b3Igd2hlbiByZWFkeVN0YXRlIGNoYW5nZXMuJykKKyAgICAgICAgbGV0IHBy
ZXZpb3VzU3RhdGUgPSAnaGF2ZU5vdGhpbmcnOworICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBb
J2hhdmVNZXRhZGF0YScsICdoYXZlQ3VycmVudERhdGEnLCAnaGF2ZUZ1dHVyZURhdGEnLCAnaGF2
ZUVub3VnaERhdGEnLCAnaGF2ZU5vdGhpbmcnXSkgeworICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBwcmV2aW91c1N0YXRlKTsKKwor
ICAgICAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7CisgICAgICAgICAgICBydW4oYG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICcke3N0YXRlfSdgKTsKKworICAgICAgICAgICAg
YXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3JlYWR5U3RhdGVD
aGFuZ2VkJywgJz09JywgMTAwKTsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBzdGF0ZSk7CisgICAgICAgICAgICBwcmV2aW91
c1N0YXRlID0gc3RhdGU7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICB9
OworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3Rp
ZmllcyBjb29yZGluYXRvciB3aGVuIHBsYXliYWNrU3RhdGUgY2hhbmdlcy4nKQorICAgICAgICBw
cmV2aW91c1N0YXRlID0gJ25vbmUnOworICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBbJ3BhdXNl
ZCcsICdwbGF5aW5nJywgJ25vbmUnXSkgeworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25h
dmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZScsIHByZXZpb3VzU3RhdGUpOworCisg
ICAgICAgICAgICBsYXRlc3RDaGFuZ2UgPSAnJzsKKyAgICAgICAgICAgIHJ1bihgbmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJyR7c3RhdGV9J2ApOworCisgICAgICAgICAg
ICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAncGxheWJhY2tT
dGF0ZUNoYW5nZWQnLCAnPT0nLCAxMDApOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25h
dmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZScsIHN0YXRlKTsKKyAgICAgICAgICAg
IHByZXZpb3VzU3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7Cisg
ICAgICAgIH07CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgZW5kVGVzdCgp
OworICAgIH0sIHtvbmNlOiB0cnVlfSk7CisKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424077</attachid>
            <date>2021-03-23 16:56:34 -0700</date>
            <delta_ts>2021-03-23 17:14:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222158-20210323165632.patch</filename>
            <type>text/plain</type>
            <size>120950</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmYzczYWI5YzdiZWUzNDEzMjkxOGE5
NDVhYTQ3NDVkZjM2NDE1ZWUuLjY1MzUzNDNjZmY1YmY1YmU4NzIzMWYzMjJjODBhMDRjZmUyM2U5
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAzLTIzICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlcXVpcmUgVk1fRkxBR1NfUEVS
TUFORU5UIG9uIHRoZSBzaW11bGF0b3IgYnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkxZDM5NzM5ODU0
YWQ2YmY0NmQ0YzhkZGIyYmJjNjY4OGNlZTViYS4uY2E0NjcyMTFjODU3MjY4YTY2NmVmNWRmMDVm
MGYwM2IyN2UzYjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAyMS0wMi0xOCAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2Fd
IEFkZCBFeHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9y
LCBhbiBvYmplY3QgdGhhdCBwcm92aWRlcyBhbiBpbnRlcmZhY2UKKyAgICAgICAgdGhhdCBhbGxv
d3Mgc2NyaXB0IHRvIGNvb3JkaW5hdGUgY2hhbmdlcyB0byBNZWRpYVNlc3Npb24gd2l0aCB0aGUg
VXNlciBBZ2VudC4gQWxzbworICAgICAgICBhZGQgYW4gZXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lv
biBwbGF5bGlzdCBpbnRlcmZhY2UuCisKKyAgICAgICAgVGhlIGNoYW5nZXMgYXJlIGJlaGluZCBu
ZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUgZmxhZ3MsCisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yRW5hYmxlZCBhbmQgTWVkaWFTZXNzaW9uUGxheWxpc3RFbmFibGVkLgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OiBBZGQgbmV3IElETCBmaWxlcy4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDogQWRkIG5ldyBkZXJp
dmVkIHNvdXJjZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkIG5ldyBJREwu
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6IFNldCB0cmFja0lkZW50aWZp
ZXIgZnJvbSBpbml0IGRhdGEuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRU
cmFja0lkZW50aWZpZXIpOiB0cmFja0lkZW50aWZpZXIgc2V0dGVyLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oOiBBZGQgdHJhY2tJZGVudGlmaWVyLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
OjpNZWRpYVNlc3Npb24pOiBJbml0aWFsaXplIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEpOiBtZXRhZGF0YVVw
ZGF0ZWQgLT4gbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb246OnNldFJlYWR5U3RhdGUpOiBTZXNzaW9uIHJlYWR5U3RhdGUgc2V0dGVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcik6IENvb3JkaW5hdG9y
IHNldHRlci4gUG9zdCAnY29vcmRpbmF0b3JjaGFuZ2UnCisgICAgICAgIGV2ZW50IGFmdGVyIGNo
YW5nZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0UGxheWxpc3QpOiBQbGF5
bGlzdCBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldEFjdGlvbkhh
bmRsZXIpOiBDYWxsIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNlcnZlcnMuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUpOiBDYWxsIG5vdGlmeVBvc2l0aW9u
U3RhdGVPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Om1ldGFkYXRh
VXBkYXRlZCk6IENhbGwgbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcik6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbjo6Zm9yRWFjaE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycyk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5QWN0aW9uSGFuZGxl
ck9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5
UmVhZHlTdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRp
bmF0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGw6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsOgor
CisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHByb3hpZXMgY2FsbHMgdGhyb3VnaCB0
aGUgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciwKKyAgICAgICAgYW5kIHRoZW4gY2Fs
bHMgdGhlIGVxdWl2YWxlbnQgTWVkaWFTZXNzaW9uIG1ldGhvZGUgaWYgdGhlIHBsYXRmb3JtIGNv
b3JkaW5hdG9yIAorICAgICAgICBpcyBzdWNjZXNzZnVsLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOiBOZXcuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDbGFzc05hbWUpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlk
bDogTmV3LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFT
ZXNzaW9uLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW46CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TG9nZ2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlclB0ciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsIGNvbnN0KToKKworICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOiBSZWdpc3RlciB0aGUgbW9jawor
ICAgICAgICBtZWRpYSBzZXNzaW9uIGNvb3JkaW5hdG9yIGZvciB0ZXN0aW5nLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmg6IE5ldy4KKwogMjAyMS0wMy0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlYmFzZWxpbmUgYmluZGluZ3MgdGVz
dHMgYWZ0ZXIgcjI3NDkwNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZWNhYjYz
NjJlMDBhOGMwMzg1MzYxNzRhOTMzMGYxNWUyZTdlOTViOS4uM2JjMzA5NjUwZjZjYmQ5MzM5OTEy
YjE1OWE4MDEyZDYwMjhiZmQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTYz
Miw2ICs2MzIsMTkgQEAgTWVkaWFSZWNvcmRlckVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAg
IGRlZmF1bHQ6IGZhbHNlCiAKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZDoKKyAgdHlw
ZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24g
Y29vcmRpbmF0b3IgQVBJIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhw
ZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvciBBUEkiCisgIGNvbmRpdGlvbjogRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJL
aXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIE1lZGlhU2Vz
c2lvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJNZWRpYSBT
ZXNzaW9uIEFQSSIKQEAgLTY0NSw2ICs2NTgsMTkgQEAgTWVkaWFTZXNzaW9uRW5hYmxlZDoKICAg
ICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorTWVkaWFTZXNzaW9uUGxheWxpc3RF
bmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFs
IE1lZGlhU2Vzc2lvbiBwbGF5bGlzdCBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIHBsYXlsaXN0IEFQSSIKKyAgY29uZGl0
aW9uOiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgZGVmYXVsdFZhbHVlOgorICAg
IFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTW9k
ZWxFbGVtZW50RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkhU
TUwgPG1vZGVsPiBlbGVtZW50IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1F
bmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4
IGM3YWRjNGU5ZjM2ODEwY2EzYWM4NGJjNzhjMmI3OWQ4ODRjNjY5NGUuLjMwZDNmOWQzMGJiYzdh
MzFmZjYwZjUzNjBiYmM2MzMxOWI2NGE3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNv
Y29hLmgKQEAgLTMyOCw2ICszMjgsMTQgQEAKICNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUFYX0FMTE9XRUQgPj0gMTIwMDAwCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fUExB
WUxJU1QpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VE
ID49IDEyMDAwMAorI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCAxCisjZW5k
aWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAmJiAhUExBVEZPUk0oV0FU
Q0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9O
IDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMTllOWQ0Y2YxZmY2YmE0ZWFlZGNm
YTliNzE4MWY5MTc5ZWUwZmRhLi4zYjFhY2EyMzMzNTFmMTBhYjUwMTRiNDA5MjRjOTU3MDZkNTdh
ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzMxLDEyICszMzEsMTcgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdl
LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAgICAgTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25B
Y3Rpb24uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5k
bGVyLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4
aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGlu
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKIAog
ICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRlNTg4
YTI0OTQ5NzNhNzkwZTE2NWMwYWExNGE0NWFhZDJkOGM4ZGYuLjE2OWIyMWExYjAxMWRlOTM4Mzc0
Y2ZkNWU3NjkyYzJlZjAzOTJkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDEyICsxNzMsMTcgQEAgJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKyQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkFjdGlvbkhhbmRsZXIuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhp
bi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJl
YWR5U3RhdGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0
b3IrTWVkaWFTZXNzaW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNvdXJjZS9B
dWRpb1RyYWNrK01lZGlhU291cmNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNv
dXJjZS9ET01VUkwrTWVkaWFTb3VyY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGY3YTYzOGFhOTM5MDU3ZDczNDgwOTFhYjQy
ODEzOWM5OTRkMGQzMGIuLjcxNmE4YzVhNzI3ZTU5OWNjYWI2NjkxODgwMGM3NzY4NjVlZDc3ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CkBAIC0xMjk4LDYgKzEyOTgsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYU1ldGFkYXRhSW5pdC5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YUlu
aXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YU1ldGFkYXRhUGxheWxpc3RNaXhpbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVBvc2l0aW9uU3RhdGUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
UG9zaXRpb25TdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMTMxNiw4ICsxMzE4LDE2IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFj
dGlvbkhhbmRsZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvck1peGluLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4
aW4uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YVNlc3Npb25SZWFkeVN0YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU291cmNlLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW0uY3Bw
CkBAIC0xMzUyLDYgKzEzNjIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vY2tDRE1GYWN0b3J5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb2NrQ0RNRmFjdG9yeS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01vY2tQYWdlT3ZlcmxheS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTW9ja1BhZ2VPdmVybGF5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja1BheW1lbnRBZGRyZXNzLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggM2VkYTEwYThjNjdjODFmMDdjNTVjZTNhOTBjMWQ2MTNmMDkz
ZGJkMS4uNTE4ZWRmMWZkNjQ1NDM4OGY2OGU3NGU3YTIyMmIwYTcxMTEyY2I1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMDcsMTIgKzIwNywxNyBAQCBKU19CSU5ESU5HX0lE
TFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGFQbGF5bGlzdE1peGluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVBvc2l0aW9uU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNaXhpbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Eb3VibGVSYW5nZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCBlMTBkYWQwN2QzMjU0Y2ExMDkzMWRi
MDY1NzE3ZmFmYTBkZmM5OWIzLi4zNDZiMjdhYmExNzE3MzhjYjQzOWQ0ZjE5MmNlYTkzMDUwNGFm
NDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmNwcApAQCAtOTYsNiArOTYsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFN
ZXRhZGF0YT4+IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
bwogICAgICAgICBtZXRhZGF0YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRh
ZGF0YS0+c2V0QXJ0aXN0KGluaXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1
bShpbml0LT5hbGJ1bSk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAg
ICAgIG1ldGFkYXRhLT5zZXRUcmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsK
KyNlbmRpZgogICAgICAgICBhdXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFy
dHdvcmsoY29udGV4dCwgV1RGTW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3Nz
aWJsZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBwb3NzaWJsZUV4Y2VwdGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTg4LDYgKzE5MSwxNyBA
QCB2b2lkIE1lZGlhTWV0YWRhdGE6OnNldEFydHdvcmtJbWFnZShJbWFnZSogaW1hZ2UpCiAgICAg
bV9hcnR3b3JrSW1hZ2UgPSBpbWFnZTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQordm9pZCBNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIoY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyKQoreworICAgIGlmIChtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllciA9
PSBpZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21ldGFkYXRhLnRyYWNrSWRl
bnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgbWV0YWRhdGFVcGRhdGVkKCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBNZWRpYU1ldGFkYXRhOjptZXRhZGF0YVVwZGF0ZWQoKQogewogICAgIGlmIChtX3Nl
c3Npb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmgKaW5kZXggYTdiZTc4NTkwMDA5MGVkMTdiY2MzYTk5ZWIxZjFmNzg0Y2ZkNmI1
NC4uMjk2MGI0NGE4NjNiYzgyYjRmOTIzYWNiMzVhNmNlMWIwZDEzODIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaApAQCAt
OTEsNiArOTEsMTEgQEAgcHVibGljOgogCiAgICAgY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRhdGEm
IG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YTsgfQogCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllcjsgfQorICAgIHZvaWQg
c2V0VHJhY2tJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgTWVkaWFNZXRhZGF0YSgpOwogICAgIHZvaWQgc2V0QXJ0d29ya0ltYWdlKEltYWdlKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFk
YXRhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGEuaWRsCmluZGV4IGMyYjU3N2NmNWJiMjI5YzJhNmZiMzE2NzlkM2ZlNTljNzhjZDEyNmQuLmQw
NWYyYjBiNjk0YmM0OGZmYWE3MTM1YTVhZTlmNDBjYTYyZmNkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCkBAIC0z
Myw0ICszMyw4IEBACiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhcnRpc3Q7CiAgICAgYXR0cmli
dXRlIERPTVN0cmluZyBhbGJ1bTsKICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhSW1hZ2U+IGFydHdvcms7CisKKyAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1N
ZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7
CiB9OworCitNZWRpYU1ldGFkYXRhIGluY2x1ZGVzIE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGlu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGFJbml0LmgKaW5kZXggNjY5ZGVmZmEyZDY5NDA4NWYwOGYxMGRmMWI5MTZlZjQ0ZTg4
NWUwZC4uZDY5MmQyZDk0ODI3NTNmMGFjMGE4NDMyYTQ2MGY5MDE0YTBjZmJhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRh
SW5pdC5oCkBAIC0zNSw2ICszNSw5IEBAIHN0cnVjdCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAgICAg
U3RyaW5nIHRpdGxlOwogICAgIFN0cmluZyBhcnRpc3Q7CiAgICAgU3RyaW5nIGFsYnVtOworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFN0cmluZyB0cmFja0lkZW50aWZp
ZXI7CisjZW5kaWYKICAgICBWZWN0b3I8TWVkaWFJbWFnZT4gYXJ0d29yazsKIAogICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTQzLDI4
ICs0Niw1MSBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0YUluaXQgewogCiB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRpYU1ldGFkYXRhSW5pdDo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0g
PDwgYXJ0d29yazsKKyAgICBlbmNvZGVyIDw8IHRpdGxlIDw8IGFydGlzdCA8PCBhbGJ1bQorI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIDw8IHRyYWNrSWRlbnRpZmllcgor
I2VuZGlmCisgICAgPDwgYXJ0d29yazsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5s
aW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRhdGFJbml0PiBNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgU3RyaW5nIHRpdGxlOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodGl0bGUpKQorICAgIE9wdGlvbmFsPFN0cmluZz4gdGl0bGU7CisgICAgZGVjb2Rl
ciA+PiB0aXRsZTsKKyAgICBpZiAodGl0bGUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBT
dHJpbmcgYXJ0aXN0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0aXN0KSkKKyAgICBPcHRp
b25hbDxTdHJpbmc+IGFydGlzdDsKKyAgICBkZWNvZGVyID4+IGFydGlzdDsKKyAgICBpZiAoIWFy
dGlzdCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFsYnVtKSkKKyAgICBPcHRpb25hbDxTdHJpbmc+IGFsYnVtOworICAg
IGRlY29kZXIgPj4gYWxidW07CisgICAgaWYgKCFhbGJ1bSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIFZlY3RvcjxNZWRpYUltYWdlPiBhcnR3b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoYXJ0d29yaykpCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgT3B0
aW9uYWw8U3RyaW5nPiB0cmFja0lkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiB0cmFja0lkZW50
aWZpZXI7CisgICAgaWYgKCF0cmFja0lkZW50aWZpZXIpCisgICAgICAgIHJldHVybiB7IH07Cisj
ZW5kaWYKKworICAgIE9wdGlvbmFsPFZlY3RvcjxNZWRpYUltYWdlPj4gYXJ0d29yazsKKyAgICBk
ZWNvZGVyID4+IGFydHdvcms7CisgICAgaWYgKCFhcnR3b3JrKQogICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgcmV0dXJuIE1lZGlhTWV0YWRhdGFJbml0IHsgV1RGTW92ZSh0aXRsZSksIFdURk1v
dmUoYXJ0aXN0KSwgV1RGTW92ZShhbGJ1bSksIFdURk1vdmUoYXJ0d29yaykgfTsKKyAgICByZXR1
cm4geyB7CisgICAgICAgIFdURk1vdmUoKnRpdGxlKSwKKyAgICAgICAgV1RGTW92ZSgqYXJ0aXN0
KSwKKyAgICAgICAgV1RGTW92ZSgqYWxidW0pLAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQorICAgICAgICBXVEZNb3ZlKCp0cmFja0lkZW50aWZpZXIpLAorI2VuZGlmCisgICAg
ICAgIFdURk1vdmUoKmFydHdvcmspCisgICAgfSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwK
aW5kZXggOGIwZjU1Y2YxNGE1ODM4Y2I1NDg5NTY1ZDAyNzJkYWZhZDllMTIzZC4uMGRjOGVmMDA3
YjEwOTUxYjBkNTkxOWViMDMxMjQzNGYzZjY0NDYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbApAQCAt
MzAsNSArMzAsNiBAQAogICAgIERPTVN0cmluZyB0aXRsZSA9ICIiOwogICAgIERPTVN0cmluZyBh
cnRpc3QgPSAiIjsKICAgICBET01TdHJpbmcgYWxidW0gPSAiIjsKKyAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5
bGlzdF0gRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllciA9ICIiOwogICAgIHNlcXVlbmNlPE1lZGlh
SW1hZ2U+IGFydHdvcmsgPSBbXTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTBhNzY0MGIwZDM0NGJhZWMwMzY2OTc0MDYyNGFmMmQ0ZThkYjZmZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fUExBWUxJU1QsCisgICAgRW5hYmxl
ZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdCwKK10gaW50ZXJmYWNlIG1peGluIE1lZGlh
TWV0YWRhdGFQbGF5bGlzdE1peGluIHsKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRyYWNrSWRl
bnRpZmllcjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmNwcAppbmRleCAzMmIwOGUxYTcxZGU5NDMwZDEyMjBlMGJlNmEyMWNk
OGUyYjU3MGFlLi5lOGE5Y2FlZWFkNDYxY2I4OTYwN2MzNGMzMThiYTI0YTNiZDQwMTU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAKQEAgLTI5LDggKzI5LDEwIEBACiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogCkBAIC03Niw3ICs3OCwxMSBAQCBSZWY8TWVk
aWFTZXNzaW9uPiBNZWRpYVNlc3Npb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKIH0K
IAogTWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCi0gICAg
OiBtX25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIobmF2aWdhdG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAs
IG1fbmF2aWdhdG9yKG1ha2VXZWFrUHRyKG5hdmlnYXRvcikpCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2Vu
ZXJpY0V2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCisjZW5kaWYKIHsKICAgICBtX2xvZ2dlciA9
IG1ha2VSZWZQdHIoRG9jdW1lbnQ6OnNoYXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZp
ZXIgPSBuZXh0TG9nSWRlbnRpZmllcigpOwpAQCAtODksMTUgKzk1LDY3IEBAIE1lZGlhU2Vzc2lv
bjo6fk1lZGlhU2Vzc2lvbigpID0gZGVmYXVsdDsKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRNZXRh
ZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJiBtZXRhZGF0YSkKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwotCiAgICAgaWYgKG1fbWV0YWRhdGEpCiAgICAgICAgIG1fbWV0YWRh
dGEtPnJlc2V0TWVkaWFTZXNzaW9uKCk7CiAgICAgbV9tZXRhZGF0YSA9IFdURk1vdmUobWV0YWRh
dGEpOwogICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBtX21ldGFkYXRhLT5zZXRNZWRpYVNl
c3Npb24oKnRoaXMpOwotICAgIG1ldGFkYXRhVXBkYXRlZCgpOworICAgIG5vdGlmeU1ldGFkYXRh
T2JzZXJ2ZXJzKCk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
K3ZvaWQgTWVkaWFTZXNzaW9uOjpzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUg
c3RhdGUpCit7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisKKyAgICBtX3JlYWR5
U3RhdGUgPSBzdGF0ZTsKKyAgICBub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCk7CiB9CiAKK3Zv
aWQgTWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcihNZWRpYVNlc3Npb25Db29yZGluYXRvciog
Y29vcmRpbmF0b3IpCit7CisgICAgaWYgKG1fY29vcmRpbmF0b3IgPT0gY29vcmRpbmF0b3IpCisg
ICAgICAgIHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBp
ZiAobV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29yZGluYXRvci0+c2V0TWVkaWFTZXNzaW9u
KG51bGxwdHIpOworCisgICAgbV9jb29yZGluYXRvciA9IGNvb3JkaW5hdG9yOworCisgICAgaWYg
KG1fY29vcmRpbmF0b3IpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldE1lZGlhU2Vzc2lvbih0
aGlzKTsKKworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY29vcmRpbmF0b3JjaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX1BMQVlMSVNUKQorRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uOjpz
ZXRQbGF5bGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBWZWN0b3I8UmVmUHRy
PE1lZGlhTWV0YWRhdGE+PiYmIHBsYXlsaXN0KQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUik7CisKKyAgICBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiByZXNvbHZlZFBsYXlsaXN0
OworICAgIHJlc29sdmVkUGxheWxpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwbGF5bGlzdC5z
aXplKCkpOworCisgICAgZm9yIChhdXRvJiBlbnRyeSA6IHBsYXlsaXN0KSB7CisgICAgICAgIGF1
dG8gcmVzb2x2ZWRFbnRyeSA9IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShjb250ZXh0LCB7IGVudHJ5
LT5tZXRhZGF0YSgpIH0pOworICAgICAgICBpZiAocmVzb2x2ZWRFbnRyeS5oYXNFeGNlcHRpb24o
KSkKKyAgICAgICAgICAgIHJldHVybiByZXNvbHZlZEVudHJ5LnJlbGVhc2VFeGNlcHRpb24oKTsK
KyAgICAgICAgCisgICAgICAgIHJlc29sdmVkUGxheWxpc3QudW5jaGVja2VkQXBwZW5kKHJlc29s
dmVkRW50cnkucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgIH0KKworICAgIG1fcGxheWxpc3Qg
PSBXVEZNb3ZlKHJlc29sdmVkUGxheWxpc3QpOworCisgICAgcmV0dXJuIHsgfTsKK30KKyNlbmRp
ZgorCiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0UGxheWJhY2tTdGF0ZShNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlIHN0YXRlKQogewogICAgIGlmIChtX3BsYXliYWNrU3RhdGUgPT0gc3RhdGUpCkBA
IC0xMTEsNiArMTY5LDcgQEAgdm9pZCBNZWRpYVNlc3Npb246OnNldFBsYXliYWNrU3RhdGUoTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKICAgICAgICAgbV90aW1lQXRMYXN0UG9zaXRp
b25VcGRhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICB9CiAgICAgbV9wbGF5YmFja1N0
YXRlID0gc3RhdGU7CisgICAgbm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpOwogfQogCiB2
b2lkIE1lZGlhU2Vzc2lvbjo6c2V0QWN0aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rpb24gYWN0
aW9uLCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4mJiBoYW5kbGVyKQpAQCAtMTI5
LDcgKzE4OCw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vz
c2lvbkFjdGlvbiBhY3Rpb24sIFJlZlB0cjxNZWRpYVNlc3NpCiAgICAgICAgIFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZVN1cHBvcnRlZENvbW1hbmQo
cGxhdGZvcm1Db21tYW5kRm9yTWVkaWFTZXNzaW9uQWN0aW9uKGFjdGlvbikpOwogICAgIH0KIAot
ICAgIGFjdGlvbkhhbmRsZXJzVXBkYXRlZCgpOworICAgIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNl
cnZlcnMoKTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb246Omhhc0FjdGlvbkhhbmRsZXIoTWVkaWFT
ZXNzaW9uQWN0aW9uIGFjdGlvbikgY29uc3QKQEAgLTE0MiwxMiArMjAxLDE5IEBAIFJlZlB0cjxN
ZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPiBNZWRpYVNlc3Npb246OmhhbmRsZXJGb3JBY3Rpb24o
TWVkaWFTZXNzaW9uQWN0CiAgICAgcmV0dXJuIG1fYWN0aW9uSGFuZGxlcnMuZ2V0KGFjdGlvbik7
CiB9CiAKK3ZvaWQgTWVkaWFTZXNzaW9uOjpjYWxsQWN0aW9uSGFuZGxlcihjb25zdCBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzJiBhY3Rpb25EZXRhaWxzKQoreworICAgIGlmIChhdXRvIGhhbmRs
ZXIgPSBtX2FjdGlvbkhhbmRsZXJzLmdldChhY3Rpb25EZXRhaWxzLmFjdGlvbikpCisgICAgICAg
IGhhbmRsZXItPmhhbmRsZUV2ZW50KGFjdGlvbkRldGFpbHMpOworfQorCiBFeGNlcHRpb25Pcjx2
b2lkPiBNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVkaWFQb3NpdGlv
blN0YXRlPiYmIHN0YXRlKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKICAg
ICBpZiAoIXN0YXRlKSB7CiAgICAgICAgIG1fcG9zaXRpb25TdGF0ZSA9IFdURjo6bnVsbG9wdDsK
KyAgICAgICAgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIApAQCAtMTYxLDYgKzIyNyw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlh
U2Vzc2lvbjo6c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYK
ICAgICBtX3Bvc2l0aW9uU3RhdGUgPSBXVEZNb3ZlKHN0YXRlKTsKICAgICBtX2xhc3RSZXBvcnRl
ZFBvc2l0aW9uID0gbV9wb3NpdGlvblN0YXRlLT5wb3NpdGlvbjsKICAgICBtX3RpbWVBdExhc3RQ
b3NpdGlvblVwZGF0ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIG5vdGlmeVBvc2l0aW9u
U3RhdGVPYnNlcnZlcnMoKTsKKwogICAgIHJldHVybiB7IH07CiB9CiAKQEAgLTE4NSwxMSArMjUz
LDY0IEBAIERvY3VtZW50KiBNZWRpYVNlc3Npb246OmRvY3VtZW50KCkgY29uc3QKIAogdm9pZCBN
ZWRpYVNlc3Npb246Om1ldGFkYXRhVXBkYXRlZCgpCiB7CisgICAgbm90aWZ5TWV0YWRhdGFPYnNl
cnZlcnMoKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKE9ic2VydmVyJiBv
YnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fb2JzZXJ2ZXJz
LmFkZChvYnNlcnZlcik7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcihP
YnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBt
X29ic2VydmVycy5yZW1vdmUob2JzZXJ2ZXIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6Zm9y
RWFjaE9ic2VydmVyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyk7CisgICAgbV9vYnNlcnZlcnMuZm9yRWFjaChhcHBseSk7Cit9CisKK3ZvaWQg
TWVkaWFTZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9i
c2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5tZXRhZGF0
YUNoYW5nZWQobV9tZXRhZGF0YSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3Ro
aXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnBvc2l0aW9uU3RhdGVDaGFu
Z2VkKG1fcG9zaXRpb25TdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3Ro
aXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnBsYXliYWNrU3RhdGVDaGFu
Z2VkKG1fcGxheWJhY2tTdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlBY3Rpb25IYW5kbGVyT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW10o
YXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIuYWN0aW9uSGFuZGxlcnNDaGFuZ2Vk
KCk7CisgICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFTZXNzaW9uOjphY3Rpb25IYW5kbGVyc1VwZGF0
ZWQoKQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQordm9pZCBNZWRpYVNl
c3Npb246Om5vdGlmeVJlYWR5U3RhdGVPYnNlcnZlcnMoKQogeworICAgIGZvckVhY2hPYnNlcnZl
cihbdGhpc10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIucmVhZHlTdGF0ZUNo
YW5nZWQobV9yZWFkeVN0YXRlKTsKKyAgICB9KTsKIH0KKyNlbmRpZgogCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXgg
NzY3MmUzMmZjNzA2ZTM3ODExNmQ1ZWY3MzU0MmIxZGNmM2ZhYjc2Zi4uNDk2MWY0ZGZkNzIyNTk0
ZGQ1ZDQxZTQwNWUwMGQ4ODdiNDVlNTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVu
dFF1ZXVlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJK
U01lZGlhU2Vzc2lvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5oIgpAQCAtMzQsNiArMzcsNyBAQAogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbi5o
IgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCIKICNpbmNsdWRlICJNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNDQsMzggKzQ4LDEwMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFNZXRhZGF0YTsK
K2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgTmF2aWdhdG9yOwogCi1jbGFz
cyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb24+LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPiB7CitjbGFzcyBNZWRpYVNlc3Npb24KKyAgICA6
IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4KKyAgICAsIHB1YmxpYyBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcgorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQor
ICAgICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEKKyNlbHNlCisgICAgLCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPgorI2VuZGlmCit7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVNlc3Npb24+IGNy
ZWF0ZShOYXZpZ2F0b3ImKTsKICAgICB+TWVkaWFTZXNzaW9uKCk7CiAKICAgICBNZWRpYU1ldGFk
YXRhKiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEuZ2V0KCk7IH07CiAgICAg
dm9pZCBzZXRNZXRhZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJik7CisgICAgdm9pZCBtZXRh
ZGF0YVVwZGF0ZWQoKTsKIAogICAgIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgcGxheWJhY2tT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWJhY2tTdGF0ZTsgfTsKICAgICB2b2lkIHNldFBs
YXliYWNrU3RhdGUoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CiAKICAgICB2b2lkIHNldEFj
dGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0aW9uLCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9u
SGFuZGxlcj4mJik7CisKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQb3NpdGlvblN0YXRlKE9w
dGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mJik7CisgICAgT3B0aW9uYWw8TWVkaWFQb3NpdGlv
blN0YXRlPiBwb3NpdGlvblN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvblN0YXRlOyB9
CisKICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxkb3VibGU+IGN1cnJlbnRQb3NpdGlvbigp
IGNvbnN0OwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAgICAgCi0gICAgdm9p
ZCBtZXRhZGF0YVVwZGF0ZWQoKTsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKKyAgICBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3JlYWR5U3RhdGU7IH07CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUpOworCisgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRvci5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0Q29vcmRpbmF0b3IoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqKTsKKyNlbmRpZgor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgVmVjdG9yPFJl
ZjxNZWRpYU1ldGFkYXRhPj4mIHBsYXlsaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wbGF5bGlzdDsg
fQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFBsYXlsaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBWZWN0b3I8UmVmUHRyPE1lZGlhTWV0YWRhdGE+PiYmKTsKKyNlbmRpZgogCi0gICAgdm9p
ZCBhY3Rpb25IYW5kbGVyc1VwZGF0ZWQoKTsKICAgICBib29sIGhhc0FjdGlvbkhhbmRsZXIoTWVk
aWFTZXNzaW9uQWN0aW9uKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVkaWFT
ZXNzaW9uQWN0aW9uSGFuZGxlcj4gaGFuZGxlckZvckFjdGlvbihNZWRpYVNlc3Npb25BY3Rpb24p
IGNvbnN0OwogICAgIGJvb2wgaGFzQWN0aXZlQWN0aW9uSGFuZGxlcnMoKSBjb25zdCB7IHJldHVy
biAhbV9hY3Rpb25IYW5kbGVycy5pc0VtcHR5KCk7IH0KIAorICAgIHZvaWQgY2FsbEFjdGlvbkhh
bmRsZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYpOworCisgICAgY29uc3QgTG9n
Z2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAqbV9sb2dnZXIuZ2V0KCk7IH0KKworI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIC8vIEV2ZW50VGFyZ2V0CisgICAg
dXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOworI2Vu
ZGlmCisKKyAgICBjbGFzcyBPYnNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxPYnNlcnZl
cj4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7
CisKKyAgICAgICAgdmlydHVhbCB2b2lkIG1ldGFkYXRhQ2hhbmdlZChSZWZQdHI8TWVkaWFNZXRh
ZGF0YT4pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0
aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBwbGF5
YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSB7IH0KKyAgICAgICAg
dmlydHVhbCB2b2lkIGFjdGlvbkhhbmRsZXJzQ2hhbmdlZCgpIHsgfQorCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRl
Q2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSB7IH0KKyNlbmRpZgorICAgIH07CisgICAg
dm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOworICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2Jz
ZXJ2ZXImKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRpYVNlc3Npb24oTmF2aWdhdG9y
Jik7CiAKLSAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IHsgcmV0dXJuICptX2xvZ2dl
ci5nZXQoKTsgfQogICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2xvZ0lkZW50aWZpZXI7IH0KIAorICAgIHZvaWQgZm9yRWFjaE9ic2VydmVyKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mKTsKKyAgICB2b2lkIG5vdGlmeU1ldGFkYXRhT2JzZXJ2
ZXJzKCk7CisgICAgdm9pZCBub3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCk7CisgICAgdm9p
ZCBub3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2ZXJzKCk7CisgICAgdm9pZCBub3RpZnlBY3Rpb25I
YW5kbGVyT2JzZXJ2ZXJzKCk7CisgICAgdm9pZCBub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCk7
CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBFdmVudFRhcmdl
dEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1l
ZGlhU2Vzc2lvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisK
KyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVy
ZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorI2VuZGlmCisKICAgICBXZWFrUHRy
PE5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAgICAgUmVmUHRyPE1lZGlhTWV0YWRhdGE+IG1fbWV0
YWRhdGE7CiAgICAgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBtX3BsYXliYWNrU3RhdGUgeyBN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIH07CkBAIC04NSw2ICsxNTMsMTggQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPE1lZGlhU2Vzc2lvbkFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXI+LCBXVEY6OkludEhhc2g8TWVkaWFTZXNzaW9uQWN0aW9uPiwgV1RGOjpT
dHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVNlc3Npb25BY3Rpb24+PiBtX2FjdGlvbkhhbmRsZXJz
OwogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1f
bG9nSWRlbnRpZmllcjsKKworICAgIFdlYWtIYXNoU2V0PE9ic2VydmVyPiBtX29ic2VydmVyczsK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIE1lZGlhU2Vzc2lv
blJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5v
dGhpbmcgfTsKKyAgICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fY29vcmRpbmF0
b3I7CisgICAgVW5pcXVlUmVmPE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2
ZW50UXVldWU7CisjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQor
ICAgIFZlY3RvcjxSZWY8TWVkaWFNZXRhZGF0YT4+IG1fcGxheWxpc3Q7CisjZW5kaWYKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uaWRsCmluZGV4IGRlZDRhNzczOGEyM2Q5MzFlYjNiMGE2ODJiZTU3M2YwODMyNGQ0Mzcu
LjYxYTg3NDQyNzRiMjIzOGE2Y2VlZTkwMjhlZmM5MjI5YzNiYWVkNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw5
ICsyNiwxMCBAQAogWwogICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT04sCiAgICAgRXhwb3Nl
ZD1XaW5kb3csCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBFeHBvcnRNYWNy
bz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbiB7CisgICAgSlNHZW5l
cmF0ZVRvSlNPYmplY3QsCitdIGludGVyZmFjZSBNZWRpYVNlc3Npb24gOiBFdmVudFRhcmdldAor
ewogICAgIGF0dHJpYnV0ZSBNZWRpYU1ldGFkYXRhPyBtZXRhZGF0YTsKIAogICAgIGF0dHJpYnV0
ZSBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBsYXliYWNrU3RhdGU7CkBAIC0zNywzICszOCw2
IEBACiAKICAgICB1bmRlZmluZWQgc2V0UG9zaXRpb25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0
aW9uU3RhdGU/IHN0YXRlID0gbnVsbCk7CiB9OworCitNZWRpYVNlc3Npb24gaW5jbHVkZXMgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbjsKK01lZGlhU2Vzc2lvbiBpbmNsdWRlcyBNZWRpYVNl
c3Npb25QbGF5bGlzdE1peGluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaAppbmRleCA1Y2I2NDRmZjM2MmRlZDcz
NzAyYjEzM2YzZjIwYWQ4NjcwYjdmZjYxLi45YmM0ZjAwMTNiNDZiNTJhODFjMDAwNzk3MjJhMzYw
MTJmN2NjMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw2ICszOSw3IEBAIGVudW0gY2xhc3MgTWVk
aWFTZXNzaW9uQWN0aW9uIHsKICAgICBTa2lwYWQsCiAgICAgU3RvcCwKICAgICBTZWVrdG8sCisg
ICAgU2V0dHJhY2ssCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkBAIC01Niw3ICs1Nyw4
IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0
aW9uPiB7CiAgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6TmV4dHRyYWNrLAog
ICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNraXBhZCwKICAgICAgICAgV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTdG9wLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVNl
c3Npb25BY3Rpb246OlNlZWt0bworICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246
OlNlZWt0bywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTZXR0cmFjawog
ICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbAppbmRleCA0NjM1ZTY5NzM0ZWRhMTlkYzJh
N2NhZWQ5YTVmYzcxMDc0NTk4Y2Q0Li44Zjc2NWY2NGUzZGFjYmU3MTcxM2E0Zjg2YmI5YmEyYWI4
MmY0M2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25BY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNCArMzUsNyBAQAogICAgICJza2lwYWQi
LAogICAgICJzdG9wIiwKICAgICAic2Vla3RvIgorI2lmIGRlZmluZWQoRU5BQkxFX01FRElBX1NF
U1NJT05fUExBWUxJU1QpICYmIEVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNUCisgICAgLCAi
c2V0dHJhY2siCisjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmgKaW5kZXgg
NjQxZWE3MjRhY2E2NzA1ZDczNTA3ZTI4NzFjNTE3NDE3OTY5NmQ3Yy4uZjU5MDlkNDZmOGVhYzY2
ZDBmM2M5ZGQ3ZTc1MzJlMzYwNDY4ZDZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNyw2ICszNyw5IEBAIHN0cnVjdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIHsKICAgICBP
cHRpb25hbDxkb3VibGU+IHNlZWtPZmZzZXQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBzZWVrVGlt
ZTsKICAgICBPcHRpb25hbDxib29sPiBmYXN0U2VlazsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9QTEFZTElTVCkKKyAgICBTdHJpbmcgdHJhY2tJZGVudGlmaWVyOworI2VuZGlmCiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCmluZGV4IDFhMWVmN2FlNzY1YWUwMmYy
MWUzMjMyYTEzNjRhOTZhMWFkZjE1NDcuLjJkOGM2MDczN2M2ZDY3ZmQxMjVlMTNlOTE2OThlY2Zh
ODAyNmMwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDQgKzMyLDYg
QEAKICAgICBkb3VibGU/IHNlZWtPZmZzZXQ7CiAgICAgZG91YmxlPyBzZWVrVGltZTsKICAgICBi
b29sZWFuPyBmYXN0U2VlazsKKworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX1BMQVlM
SVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0XSBET01TdHJpbmc/IHRy
YWNrSWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWRmNGU5MjE1NWYxYWMwMTVlNmM1MTc0ZDRiZWY2NDgxZTU5MzU2NwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDI0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlv
bi5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29u
c3Qgdm9pZCogbmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVp
bnQ2NF90IGxvZ0lkZW50aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOwor
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIp
OworfQorCitSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpjcmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZv
cm1Db29yZGluYXRvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25D
b29yZGluYXRvcihXVEZNb3ZlKHBsYXRmb3JtQ29vcmRpbmF0b3IpKSk7Cit9CisKK01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQorICAgIDogbV9wbGF0
Zm9ybUNvb3JkaW5hdG9yKFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRvcikpCisgICAgLCBtX2xv
Z2dlcihtYWtlUmVmKERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCisgICAgLCBtX2xvZ0lkZW50
aWZpZXIobmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcigpKQoreworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUik7CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNldExvZ2dlciht
X2xvZ2dlci5jb3B5UmVmKCksIG1fbG9nSWRlbnRpZmllcik7Cit9CisKK01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjp+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ZvaWQg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVO
VElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgdGltZSk7CisKKyAgICBpZiAoIW1f
c2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBp
cyBOVUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29y
ZGluYXRvci0+c2Vla1RvKHRpbWUsIFt0aW1lLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigq
dGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8
RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghcHJvdGVjdGVk
VGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdU
Rk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2VyKCku
ZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBpZGVudGlmaWVyLCAiY29vcmRpbmF0
b3Iuc2Vla1RvIGZhaWxlZCEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAu
YWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpTZWVrdG8sCisgICAgICAgICAgICAuc2Vla1Rp
bWUgPSB0aW1lLAorICAgICAgICB9OworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24t
PmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOworCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQg
dGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAnc2Vla1RvJyBh
Y3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisK
K3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOwor
ICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAg
ICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAg
ICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cGxheShb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFi
bGUgeworICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgeworICAgICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Cisg
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPmxvZ2dlcigpLmVycm9yKHByb3RlY3RlZFRoaXMtPmxvZ0NoYW5u
ZWwoKSwgaWRlbnRpZmllciwgImNvb3JkaW5hdG9yLnBsYXkgZmFpbGVkISIpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWls
cyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBs
YXksCisgICAgICAgIH07CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbi0+Y2FsbEFj
dGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJv
bWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdwbGF5JyBhY3Rpb24gaGFu
ZGxlcj8KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHBy
b21pc2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKKyAgICBBTFdB
WVNfTE9HKGlkZW50aWZpZXIpOworCisgICAgaWYgKCFtX3Nlc3Npb24pIHsKKyAgICAgICAgRVJS
T1JfTE9HKGlkZW50aWZpZXIsICJNZWRpYVNlc3Npb24gaXMgTlVMTCEiKTsKKyAgICAgICAgcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBhdXNlKFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Cisg
ICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAg
ICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBp
ZGVudGlmaWVyLCAiY29vcmRpbmF0b3IucGF1c2UgZmFpbGVkISIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRh
aWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBhdXNlLAor
ICAgICAgICB9OworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25I
YW5kbGVyKGRldGFpbHMpOworCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2Ug
cmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAncGF1c2UnIGFjdGlvbiBoYW5kbGVy
PworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJ
REVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vz
c2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBO
VUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGlu
YXRvci0+c2V0VHJhY2sodHJhY2ssIFt0cmFjaywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
KnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFs
PEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXByb3RlY3Rl
ZFRoaXMtPm1fc2Vzc2lvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChX
VEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmxvZ2dlcigp
LmVycm9yKHByb3RlY3RlZFRoaXMtPmxvZ0NoYW5uZWwoKSwgaWRlbnRpZmllciwgImNvb3JkaW5h
dG9yLnNldFRyYWNrIGZhaWxlZCEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAg
ICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpTZXR0cmFjaywKKyAgICAgICAgICAgIC50
cmFja0lkZW50aWZpZXIgPSB0cmFjaywKKyAgICAgICAgfTsKKyAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgICAgICAvLyBG
SVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVy
ZWQgJ3NldFRyYWNrJyBhY3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7
CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vz
c2lvbihNZWRpYVNlc3Npb24qIHNlc3Npb24pCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKKyAgICBtX3Nlc3Npb24gPSBtYWtlV2Vha1B0cihzZXNzaW9uKTsKKworICAgIGlmICht
X3Nlc3Npb24pCisgICAgICAgIG1fc2Vzc2lvbi0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2
b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25h
bDxNZWRpYVBvc2l0aW9uU3RhdGU+IHN0YXRlKQoreworICAgIGlmICghc3RhdGUpIHsKKyAgICAg
ICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZCh7IH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3NpdGlv
blN0YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVBvc2l0
aW9uU3RhdGUgeyBzdGF0ZS0+ZHVyYXRpb24sIHN0YXRlLT5wbGF5YmFja1JhdGUsIHN0YXRlLT5w
b3NpdGlvbiB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tT
dGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6
Ok5vbmUpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUpLCAiTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZTo6Tm9uZSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6
UGF1c2VkKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQpLCAiTWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZTo6UGF1c2VkIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGU6OlBsYXlpbmcpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpLCAiTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBhcyBleHBl
Y3RlZCIpOworCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdl
ZChzdGF0aWNfY2FzdDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlPihzdGF0ZSkpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQorewor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZTo6SGF2ZU5vdGhpbmcpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nKSwg
Ik1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIGlzIG5vdCBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyBh
cyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlTWV0YWRhdGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGlz
IG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0
YXRlOjpIYXZlTWV0YWRhdGEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkg
PT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKSwgIk1lZGlhU2Vzc2lvblJl
YWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhIGFzIGV4cGVj
dGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2
ZUZ1dHVyZURhdGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgaXMg
bm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU6OkhhdmVGdXR1cmVEYXRhIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSkg
PT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEpLCAiTWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhIGFzIGV4cGVjdGVk
Iik7CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRp
Y19jYXN0PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU+KHN0YXRlKSk7Cit9CisKK1dURkxvZ0NoYW5uZWwmIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpsb2dDaGFubmVsKCkKK3sKKyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ3Y2VjODgwYjM1M2Y0NmJjYmQ4NzBmZjVkYmMxOTJjOTk5
N2M5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisKKyNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Cisj
aW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBs
YXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2NsYXNzIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CitjbGFzcyBNZWRpYVNlc3Npb247CisKK2NsYXNzIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I+LCBwdWJsaWMgTWVkaWFTZXNzaW9uOjpPYnNlcnZlciB7CitwdWJsaWM6CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRl
KFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKKworICAgIHZvaWQgc2Vla1RvKGRvdWJs
ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgcGxheShET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJik7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcmLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJik7CisKKyAgICB2b2lkIHNldE1lZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24qKTsK
KworICAgIC8vIE1lZGlhU2Vzc2lvbjo6T2JzZXJ2ZXIKKyAgICB2b2lkIHBvc2l0aW9uU3RhdGVD
aGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIGZpbmFsOworICAgIHZvaWQgcGxh
eWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CisgICAg
dm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7CisKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dl
cigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nZ2VyOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIHN0YXRpYyBXVEZM
b2dDaGFubmVsJiBsb2dDaGFubmVsKCk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNz
TmFtZSgpIHsgcmV0dXJuICJNZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KKworICAgIFdlYWtQ
dHI8TWVkaWFTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I+IG1fcGxhdGZvcm1Db29yZGluYXRvcjsKKyAgICBSZWY8Y29uc3QgTG9nZ2Vy
PiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3NlZWtUb1Byb21pc2U7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPERPTVByb21pc2VEZWZlcnJlZDx2b2lkPj4gbV9wbGF5UHJvbWlz
ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3BhdXNl
UHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBt
X3NldFRyYWNrUHJvbWlzZTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVjMDVhYjg5MGVhMTgyNmQwZmU3MTMwYjVkMzJiNDJkN2I0NjIzZDkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRp
b25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLAorICAgIEVuYWJsZWRCeVNldHRpbmc9TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgRXhwb3J0TWFj
cm89V0VCQ09SRV9FWFBPUlQsCitdIGludGVyZmFjZSBNZWRpYVNlc3Npb25Db29yZGluYXRvciB7
CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNlZWtUbyh1bnJlc3RyaWN0ZWQgZG91YmxlIHRpbWUp
OworICAgIFByb21pc2U8dW5kZWZpbmVkPiBwbGF5KCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+
IHBhdXNlKCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNldFRyYWNrKERPTVN0cmluZyB0cmFj
a0lkZW50aWZpZXIpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzc4Y2MzMmZkMDMxOTRkMTZkNjllNjhkZTllNmQ1YTA4MDcwOWQyOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTiwKKyAgICBFbmFibGVkQnlTZXR0aW5n
PU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLAorXSBpbnRlcmZhY2UgbWl4aW4gTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNaXhpbiB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yPyBjb29yZGluYXRvcjsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uY29v
cmRpbmF0b3JjaGFuZ2U7CisgICAgYXR0cmlidXRlIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgcmVh
ZHlTdGF0ZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgKaW5kZXggZDRhZGJkNTQx
Nzk0ZTVhMTA5NWJlNTRhMjNiYjNlYjllYmU3NDc1Ni4uNzA2M2M3OGUzZDc4YmZhZDM4OGRmMzA5
NDU0YTljZjdhMzU0ZDJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaApAQCAtMjks
NyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZSB7CitlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUg
OiB1aW50OF90IHsKICAgICBOb25lLAogICAgIFBhdXNlZCwKICAgICBQbGF5aW5nLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxh
eWxpc3RNaXhpbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25QbGF5bGlzdE1peGluLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzYyMjA3MTI0M2E2OTMwNjQ3
NzQ4MjY3MjBiOTk2MzZlOTI2MDFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwKQEAgLTAs
MCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9O
X1BMQVlMSVNULAorICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxheWxpc3QsCitd
IGludGVyZmFjZSBtaXhpbiBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGluIHsKKyAgICBbU2V0dGVy
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1l
ZGlhTWV0YWRhdGE+IHBsYXlsaXN0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NDUyM2RkNTRhNzFlNjY1NGExN2JiMGM3NzRmNzg4MTYzMzdmNDY1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZS5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2VudW0gY2xhc3MgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSA6IHVpbnQ4X3Qgewor
ICAgIEhhdmVOb3RoaW5nLAorICAgIEhhdmVNZXRhZGF0YSwKKyAgICBIYXZlQ3VycmVudERhdGEs
CisgICAgSGF2ZUZ1dHVyZURhdGEsCisgICAgSGF2ZUVub3VnaERhdGEsCit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk3M2YyYWE1NGM4
NjhmM2I0NjVmOWI1NWU2MTkwNWQ1ZWM0Yjk0OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsCkBA
IC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUiwKK10gZW51bSBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHsKKyAgICAi
aGF2ZU5vdGhpbmciLAorICAgICJoYXZlTWV0YWRhdGEiLAorICAgICJoYXZlQ3VycmVudERhdGEi
LAorICAgICJoYXZlRnV0dXJlRGF0YSIsCisgICAgImhhdmVFbm91Z2hEYXRhIgorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlh
U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9y
TWVkaWFTZXNzaW9uLmgKaW5kZXggMDQyMTk2MTdjMjM4NjkzMDEwOGE2ODYwYjIxMDEyNjljZTUz
Njg5ZS4uN2QyYmYzMDY4YmY1NjdjMWM2ZjhhM2MyZTg5NTRmYWFiNGQyMzNkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9y
TWVkaWFTZXNzaW9uLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IE5h
dmlnYXRvck1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsKICAgICB+TmF2aWdhdG9yTWVkaWFTZXNz
aW9uKCk7CiAKLSAgICBzdGF0aWMgTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oTmF2aWdhdG9y
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE1lZGlhU2Vzc2lvbiYgbWVkaWFTZXNzaW9u
KE5hdmlnYXRvciYpOwogICAgIE1lZGlhU2Vzc2lvbiYgbWVkaWFTZXNzaW9uKCk7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IDRiNDE1ZTlmY2JkNGI4ZDg2N2RmNWRhN2U3YzYxMzNmOWIx
OTQwZWMuLmE3NWEyZjMzNWRkYTU1NzMyODQzZGFiMDBhNjMxODk4NGI4NDRhNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0xMzEsNiArMTMxLDcgQEAgTW9kdWxlcy9tZWRpYWNhcGFiaWxpdGllcy9NZWRp
YUNhcGFiaWxpdGllcy5jcHAKIE1vZHVsZXMvbWVkaWFjYXBhYmlsaXRpZXMvTmF2aWdhdG9yTWVk
aWFDYXBhYmlsaXRpZXMuY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNw
cAogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAorTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9O
YXZpZ2F0b3JNZWRpYVNlc3Npb24uY3BwCiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250
cm9sc0hvc3QuY3BwCiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvQmxvYkV2ZW50LmNwcApAQCAtMTk5
OCw2ICsxOTk5LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGhVdGlsaXRp
ZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtVGltZVJhbmdlcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcApAQCAtMzIy
Niw2ICszMjI4LDcgQEAgSlNNZWRpYUtleXMuY3BwCiBKU01lZGlhS2V5c1JlcXVpcmVtZW50LmNw
cAogSlNNZWRpYUxpc3QuY3BwCiBKU01lZGlhTWV0YWRhdGEuY3BwCitKU01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcAogSlNNZWRpYU1ldGFkYXRhSW5pdC5jcHAKIEpTTWVkaWFQb3NpdGlvblN0
YXRlLmNwcAogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAKQEAgLTMyMzYsNiArMzIzOSw3IEBAIEpTTWVk
aWFTZXNzaW9uQWN0aW9uRGV0YWlscy5jcHAKIEpTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5j
cHAKIEpTTWVkaWFTZXNzaW9uQWN0aW9uLmNwcAogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
LmNwcAorSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmNwcAogSlNNZWRpYVNlc3Npb24uY3BwCiBK
U01lZGlhU291cmNlLmNwcAogSlNNZWRpYVN0cmVhbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlY2FlNTAwMzRlYWEyYzY2
Y2FiNmNmMjcyYmI3MDFmZDk4Yjg0NDI1Li42NTg0OTgxNThhZmJlODI3NGZlMWU0MjIzMDM0Nzhj
NDA4MjViYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC05MCw2ICs5MCw3IEBACiAJCTA3MDc1NkQ0MTQyMzlBNEYwMDQxNDE2
MSAvKiBKU0hUTUxUcmFja0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MDc1NkQyMTQyMzlBNEUwMDQxNDE2MSAvKiBKU0hUTUxUcmFja0Vs
ZW1lbnQuaCAqLzsgfTsKIAkJMDcwNzU2REUxNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNr
Q3VlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3
NTZEODE0MjM5QjRCMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUuaCAqLzsgfTsKIAkJMDcwNzU2
RTAxNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwNzU2REExNDIzOUI0RTAwNDE0MTYx
IC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oICovOyB9OworCQkwNzA4RjJCNjI1RERFNDVEMDA0Rjkw
ODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8q
IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLzsgfTsKIAkJMDcwOUQ3OEYxQUU1
NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlENzhEMUFFNTU1NTQwMDRFNDJGOCAv
KiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcwOUQ3OTIxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlh
U2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcwOUQ3OTAxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMuY3BwICovOyB9OwogCQkwNzA5RDc5MzFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVk
aWFTZXNzaW9uTWFuYWdlck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcwOUQ3OTExQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTIzLDYgKzEyNCw3IEBACiAJCTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1v
dGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3Njcx
RTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVD
IC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3M0I4NzY5MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzQw
QjE0NDI1REUzMUY4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NDBCMTQzMjVE
RTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovOyB9Owog
CQkwNzRFODJCQjE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzRFODJCOTE4QTY5RjBF
MDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1MDMzQTgyNTJCRDM2ODAwRjcwQ0UzIC8qIFZp
ZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDc1MDMzQTYyNTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJh
Y2tRdWFsaXR5TWV0cmljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3NTM4NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAx
MTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsKQEAgLTU2OTIsNiAr
NTY5NCw3IEBACiAJCTA3MDc1NkQ4MTQyMzlCNEIwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFja0N1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA3NTZEOTE0MjM5QjRDMDA0MTQxNjEgLyogSlNU
ZXh0VHJhY2tDdWVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTVGV4dFRyYWNrQ3VlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
MDc1NkRBMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcwOUQ3OEMxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzhEMUFF
NTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OTAxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01NzgzLDYgKzU3ODYsMTQgQEAKIAkJMDcyQUUxRTMxODNDMDc0MTAwMEE1OTg4IC8qIFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBRdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3MkFFMUU0MTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFF1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzJDQTg2MDE2
Q0I0REMzMDA4QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJCRkIyNURCMzhCQzAwQTEzNTBFIC8qIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvci5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzAzMjVEQzZCRDMwMEExMzUw
RSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkMwNTI1
REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwNzJEQkMwNjI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA3MjVEQzZFREEwMEExMzUwRSAvKiBK
U01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM2
QjczMDI2MDk0QTM3MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTA3MzZCNzMyMjYwOTU1NTQwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25QbGF5
bGlzdE1peGluLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3MzMyNjBBN0I2NDAwRTA2OTk0IC8qIE1lZGlh
TWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhp
bi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NERDMTlFRTJDNTIwMEU1
QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3Mzc5NEUzMTlFRTJGRjIwMEU1QTA0NSAvKiBKU1JUQ0NvbmZpZ3VyYXRpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSVENDb25maWd1cmF0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0RTQxOUVFMkZGMjAwRTVB
MDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1JUQ0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU4MDQsNiArNTgxNSwxMCBAQAogCQkwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9T
YW1wbGVCdWZmZXJMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNCODc2
NDFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyog
QXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzQwQjE0MTI1REUzMUE4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNzQwQjE0MzI1REUzMUE5MDBFMzhEQkEgLyogTW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDQ3MUZE
MjVFMTgwMDUwMDU0QjIzMSAvKiBNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDc0NDcxRkYyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzQ0RUNFQjFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrQXVkaW9TaGFyZWRVbml0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VDMUUwQzRBRTUwMDBEMDk0NCAv
KiBNb2NrQXVkaW9TaGFyZWRVbml0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc0NkQzMEEyMTQ2RUEzNzAwM0RERjg0IC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbWFnZVRyYW5zZmVy
U2Vzc2lvblZULm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTkyMCw2ICs1OTM1
LDcgQEAKIAkJMDdFMTE2QjAxNDg5QzlBMTAwRUM1QUNFIC8qIEpTVGV4dFRyYWNrQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFMTE3MDYxNDg5RUJFQjAwRUM1
QUNFIC8qIEpTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDdFM0RGRDAxQTlFNzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJn
ZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5YmFja1Rhcmdl
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0U1RjM5MjI1RUFBOTFGMDBBODUz
QUQgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDdFOUUxMkQxOEY1RTI3NjAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDdFOUUxMkYxOEY2MkIzNzAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0VFNzZFOTFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTc5Nywx
MCArOTgxMywxMCBAQAogCQk2RTBFNTY5QTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVk
UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdFJvdW5kZWRSZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkJGMTEyNjMzODUwMEE3QkUw
MiAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRl
eHRHTENHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNz
Q29udGV4dEdMQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RTI0MkIyNjIz
MzU5M0Q3MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5jcHA7IHBhdGggPSAuLi8u
Li8uLi8uLi8uLi8uLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTZFMjQyQjI4MjMzNTkzRDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVF
VEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmg7IHBhdGgg
PSAuLi8uLi8uLi8uLi8uLi8uLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk2RTI0MkIyOTIzMzU5M0Q3MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlRVRDMS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVF
VEMxLmNwcDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFMjQyQjJBMjMzNTkzRDgwMDJDQURENCAvKiBKU1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUVUQzEuaDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0Rl
YnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RTI0MkIyNjIzMzU5M0Q3MDAyQ0FERDQg
LyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTZFMjQyQjI4MjMzNTkzRDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVF
VEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMjQyQjI5MjMzNTkzRDcwMDJDQURENCAvKiBKU1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2
RTI0MkIyQTIzMzU5M0Q4MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjdGMjQyMjI5OENFNEIwMEYxRjYzMiAvKiBHcmFwaGlj
c0NvbnRleHRHTEFOR0xFLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RTI3RjI0MzIyOUM5Rjg0MDBGMUY2MzIgLyogRXh0ZW5zaW9uc0dMQU5HTEUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5zaW9uc0dMQU5HTEUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTI3RjI0NDIyOUM5RjhEMDBGMUY2MzIgLyog
RXh0ZW5zaW9uc0dMQU5HTEUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0
ZW5zaW9uc0dMQU5HTEUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NjAzLDYg
KzE5NjE5LDggQEAKIAkJCQk1MTA1OEFEQTFENjc5MjU3MDA5QTUzOEMgLyogTW9ja0dhbWVwYWRQ
cm92aWRlci5oICovLAogCQkJCTQxNTdFQkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb24uY3BwICovLAogCQkJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAv
KiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCAqLywKKwkJCQkwNzQwQjE0MzI1REUzMUE5
MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJCQkwNzQw
QjE0MTI1REUzMUE4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8s
CiAJCQkJMkQ2RjNFOEExQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5jcHAgKi8s
CiAJCQkJMkQ2RjNFOEIxQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5oICovLAog
CQkJCTJENkYzRThDMUMxRUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXkuaWRsICovLApA
QCAtMjY5MTIsNiArMjY5MzAsOCBAQAogCQkJCTU1MDY0MEFEMjQwNzU2REEwMEFBRTA0NSAvKiBQ
bGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oICovLAogCQkJCTA1NjJGOTYwMTU3M0Y4OEYwMDMx
Q0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi8sCiAJCQkJQ0VFRkNEN0IxOURCMzNEQzAwMzg3NkQ3
IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAorCQkJCTA3RTVGMzkyMjVFQUE5
MUYwMEE4NTNBRCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJ
CQkwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oICovLAogCQkJCTA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9ybVRleHRU
cmFjay5oICovLAogCQkJCTA3NEU4MkI4MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVS
YW5nZXMuY3BwICovLAogCQkJCTA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRp
bWVSYW5nZXMuaCAqLywKQEAgLTI4MzU1LDYgKzI4Mzc1LDcgQEAKIAkJCQlDRERERUEyQzI1MzhD
RTA0MDBBMTMwMEMgLyogTWVkaWFNZXRhZGF0YS5pZGwgKi8sCiAJCQkJQ0REREVBMzAyNTM4Q0Ux
RTAwQTEzMDBDIC8qIE1lZGlhTWV0YWRhdGFJbml0LmggKi8sCiAJCQkJQ0REREVBMkYyNTM4Q0Ux
RTAwQTEzMDBDIC8qIE1lZGlhTWV0YWRhdGFJbml0LmlkbCAqLywKKwkJCQkwNzM2QjczMzI2MEE3
QjY0MDBFMDY5OTQgLyogTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsICovLAogCQkJCUNE
RERFQTM0MjUzOENFNjIwMEExMzAwQyAvKiBNZWRpYVBvc2l0aW9uU3RhdGUuaCAqLywKIAkJCQlD
RERERUEzMzI1MzhDRTYyMDBBMTMwMEMgLyogTWVkaWFQb3NpdGlvblN0YXRlLmlkbCAqLywKIAkJ
CQlDRERERUEyNDI1MzhDRDgwMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uLmNwcCAqLywKQEAgLTI4
MzY2LDggKzI4Mzg3LDE1IEBACiAJCQkJQ0REREVBMzUyNTM4Q0U3MDAwQTEzMDBDIC8qIE1lZGlh
U2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsICovLAogCQkJCUNERERFQTNBMjUzOEU5QzIwMEExMzAw
QyAvKiBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmggKi8sCiAJCQkJQ0REREVBMzkyNTM4RTlD
MjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaWRsICovLAorCQkJCTA3MkRC
QzA1MjVEQzZCRDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJ
CQkJMDcyREJDMDMyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgg
Ki8sCisJCQkJMDcyREJCRkIyNURCMzhCQzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmlkbCAqLywKKwkJCQkwNzM2QjczMDI2MDk0QTM3MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNaXhpbi5pZGwgKi8sCiAJCQkJQ0REREVBMjkyNTM4Q0RDQjAwQTEzMDBDIC8q
IE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCAqLywKIAkJCQlDRERERUEyODI1MzhDRENCMDBB
MTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgKi8sCisJCQkJMDczNkI3MzIy
NjA5NTU1NDAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsICovLAorCQkJ
CTA3NDQ3MUZEMjVFMTgwMDUwMDU0QjIzMSAvKiBNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggKi8s
CisJCQkJMDc0NDcxRkYyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUu
aWRsICovLAogCQkJCUNERERFQTI1MjUzOENEQUIwMEExMzAwQyAvKiBOYXZpZ2F0b3IrTWVkaWFT
ZXNzaW9uLmlkbCAqLywKIAkJCQlDRERERUEyNzI1MzhDREFCMDBBMTMwMEMgLyogTmF2aWdhdG9y
TWVkaWFTZXNzaW9uLmNwcCAqLywKIAkJCQlDRERERUEyNjI1MzhDREFCMDBBMTMwMEMgLyogTmF2
aWdhdG9yTWVkaWFTZXNzaW9uLmggKi8sCkBAIC0yODM5NCw2ICsyODQyMiw4IEBACiAJCQkJQ0RE
REVBNDAyNTM5MTFEQjAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oICov
LAogCQkJCUNERERFQTREMjUzOTEzQkIwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhh
bmRsZXIuY3BwICovLAogCQkJCUNERERFQTRFMjUzOTEzQkMwMEExMzAwQyAvKiBKU01lZGlhU2Vz
c2lvbkFjdGlvbkhhbmRsZXIuaCAqLywKKwkJCQkwNzJEQkMwNzI1REM2RURBMDBBMTM1MEUgLyog
SlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDcyREJDMDYyNURDNkVEQTAw
QTEzNTBFIC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQlDRERERUE0NjI1
MzkxMUREMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmNwcCAqLywKIAkJ
CQlDRERERUE0MjI1MzkxMURDMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
LmggKi8sCiAJCQkpOwpAQCAtMzQyOTEsNiArMzQzMjEsNyBAQAogCQkJCUY1NDRGNzg5MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VFRkNE
N0MxOURCMzNEQzAwMzg3NkQ3IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDcwRTA5MTkxODc1RUVGQzAwM0ExRDNDIC8qIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzA4RjJCNjI1RERFNDVEMDA0RjkwODYgLyog
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdG
OTQ0MTYxODY0RDA0NjAwNUQzMUNCIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM1QzQ3NjkwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91
c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU5ODkwNTgxNEU5QzI5OTAwRThEMThCIC8q
IFBsYXRmb3JtUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjE5Miw2ICszNjIyMyw3
IEBACiAJCQkJNTEwNThBREIxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxMDU4QUREMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFBy
b3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNTdFQkZBMUUzQUI2NzkwMEFDOUZFOSAv
KiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc0
MEIxNDQyNURFMzFGODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRDZGM0U5MDFDMUVDQjI3MDA2MURCRDQgLyogTW9ja1BhZ2VP
dmVybGF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTdGMDQ3MTlERDQxM0MwMDFFRTlDMyAv
KiBNb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFBRkVERTcx
RjhCRkY2RDAwODcwMTNGIC8qIE1vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKaW5kZXggNjA4OGU2MjJiZGE1ZWQzNGIxYTJmMGMzY2YyMmQ1YzQ2NGMwNmYwZC4uODZlYWFh
MDBmMTZiYmI2ZjViZmZhNGI4OThhYWYxNzkxYWUzNzgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTcxLDYgKzE3MSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhNZWRpYVF1ZXJ5TGlzdEV2ZW50KSBcCiAg
ICAgbWFjcm8oTWVkaWFSZWNvcmRlcikgXAogICAgIG1hY3JvKE1lZGlhUmVjb3JkZXJFcnJvckV2
ZW50KSBcCisgICAgbWFjcm8oTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpIFwKICAgICBtYWNybyhN
ZWRpYVNvdXJjZSkgXAogICAgIG1hY3JvKE1lZGlhU3RyZWFtKSBcCiAgICAgbWFjcm8oTWVkaWFT
dHJlYW1UcmFjaykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggMTM5NDQ0Mzk4MTQ2MDkw
OWVmMmEwZmU1YmM3ZDc5YTk5YjcyZTU1NS4uMmM2ODA3ZGNhNjU3ZjY1MDJiMjBmNDFjNWFkYTJl
ZTYxYjNmMmU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xMDEsNiArMTAxLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGNvbm5lY3RpbmcpIFwKICAgICBtYWNybyhj
b250ZXh0bWVudSkgXAogICAgIG1hY3JvKGNvbnRyb2xsZXJjaGFuZ2UpIFwKKyAgICBtYWNybyhj
b29yZGluYXRvcmNoYW5nZSkgXAogICAgIG1hY3JvKGNvcHkpIFwKICAgICBtYWNybyhjdWVjaGFu
Z2UpIFwKICAgICBtYWNybyhjdXQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluCmluZGV4IDY5NmVhOWNlYmQyMWQxNDlhZWE1ZTBiYjY0MzdhY2VmYjhjYTIwMzQuLjdh
MmMwYThkOGMwNzYxOWQwZTY3YjIyN2EzMDRlNjJhY2Y4OWVlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtMjMsNiArMjMsNyBAQCBNZWRpYURldmljZXMg
Y29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBNZWRpYUtleVNlc3Npb24gY29uZGl0aW9uYWw9RU5D
UllQVEVEX01FRElBCiBNZWRpYVF1ZXJ5TGlzdAogTWVkaWFSZWNvcmRlciBjb25kaXRpb25hbD1N
RURJQV9TVFJFQU0KK01lZGlhU2Vzc2lvbiBjb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SCiBNZWRpYVNvdXJjZSBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKIE1lZGlhU3RyZWFt
IGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogTWVkaWFTdHJlYW1UcmFjayBjb25kaXRpb25hbD1N
RURJQV9TVFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgKaW5kZXggY2UxYzNhNTY4
MmZmMWI3ZGEzOThmOWMzYTQ0MGE3NDk3ZDkzMmYxOS4uNjc5ZmI5Yzg5ZGFhNzg4YmJiZjVhNzU3
NWQ5Y2QyMTE5MDQ2MjU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0Nh
bGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFu
ZGxlRXZlbnQoY29uc3QgU3RyaW5nJiBkYXRhKSA9IDA7CiAKICAgICAvLyBIZWxwZXIgdG8gcG9z
dCBjYWxsYmFjayB0YXNrLgotICAgIHZvaWQgc2NoZWR1bGVDYWxsYmFjayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBkYXRhKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNjaGVkdWxlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYg
ZGF0YSk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMTc4NTExMzk5ZjQxNWY3ODFiMzJhYWVl
NzZjMTEzZWIxN2ViY2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsx
LDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUp
Cit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlTm90aGluZyIpLAorICAgICAg
ICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZU1ldGFkYXRhIiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJIYXZlQ3VycmVudERhdGEiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIkhhdmVGdXR1cmVEYXRhIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NU
UklOR19JTVBMKCJIYXZlRW5vdWdoRGF0YSIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydCgh
c3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRp
YVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlTm90aGluZyBpcyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRp
YVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEpID09IDEsICJNZWRpYVNlc3Npb25SZWFk
eVN0YXRlOjpIYXZlTWV0YWRhdGEgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKSA9PSAyLCAiTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7
CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhKSA9
PSAzLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgaXMgbm90IDMgYXMg
ZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVu
b3VnaERhdGEpID09IDQsICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSBp
cyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KHN0
YXRlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0
aWNfY2FzdDxzaXplX3Q+KHN0YXRlKV07Cit9CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25U
b1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlIHN0YXRlKQoreworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9uZSIp
LAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGF1c2VkIiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJQbGF5aW5nIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZTo6Tm9uZSBpcyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQpID09IDEsICJNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlOjpQYXVzZWQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZykgPT0gMiwgIk1lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGU6OlBsYXlpbmcgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihzdGF0ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJl
dHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSldOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTBkYzUx
ZDJhNmY4MGFiYzk3YWE2MDdkOWU5YTUxMDE1MGYzMmVkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgIkV4Y2VwdGlv
bi5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CisjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvcj4geworcHVibGljOgorICAgIHZpcnR1YWwgflBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKKyAgICB1c2luZyBTZWVrQ29tcGxl
dGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
Jik+OworICAgIHZpcnR1YWwgdm9pZCBzZWVrVG8oZG91YmxlLCBTZWVrQ29tcGxldGVkQ2FsbGJh
Y2smJikgPSAwOworCisgICAgdXNpbmcgUGxheUNvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQg
cGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJikgPSAwOworCisgICAgdXNpbmcgUGF1c2VDb21w
bGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9u
PiYmKT47CisgICAgdmlydHVhbCB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVkQ2FsbGJhY2smJikg
PSAwOworCisgICAgdXNpbmcgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47CisgICAgdmlydHVhbCB2b2lkIHNl
dFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisK
KyAgICB2b2lkIHNldExvZ2dlcihjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9n
SWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIG1fbG9nZ2VyID0gbWFrZVJlZlB0cihsb2dnZXIp
OworICAgICAgICBtX2xvZ0lkZW50aWZpZXIgPSBsb2dJZGVudGlmaWVyOworICAgIH0KKworICAg
IHN0cnVjdCBNZWRpYVBvc2l0aW9uU3RhdGUgeworICAgICAgICBkb3VibGUgZHVyYXRpb24gPSBz
dGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CisgICAgICAgIGRvdWJsZSBw
bGF5YmFja1JhdGUgPSAxOworICAgICAgICBkb3VibGUgcG9zaXRpb24gPSAwOworICAgIH07CisK
KyAgICBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgOiB1aW50OF90IHsKKyAgICAg
ICAgSGF2ZU5vdGhpbmcsCisgICAgICAgIEhhdmVNZXRhZGF0YSwKKyAgICAgICAgSGF2ZUN1cnJl
bnREYXRhLAorICAgICAgICBIYXZlRnV0dXJlRGF0YSwKKyAgICAgICAgSGF2ZUVub3VnaERhdGEs
CisgICAgfTsKKworICAgIGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSA6IHVp
bnQ4X3QgeworICAgICAgICBOb25lLAorICAgICAgICBQYXVzZWQsCisgICAgICAgIFBsYXlpbmcs
CisgICAgfTsKKworICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25h
bDxNZWRpYVBvc2l0aW9uU3RhdGU+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVD
aGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxh
eWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgPSAwOworCitwcm90
ZWN0ZWQ6CisgICAgZXhwbGljaXQgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0g
ZGVmYXVsdDsKKworICAgIGNvbnN0IExvZ2dlciogbG9nZ2VyUHRyKCkgY29uc3QgeyByZXR1cm4g
bV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1l
KCkgY29uc3QgeyByZXR1cm4gIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9Cisg
ICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IHsgcmV0dXJuIExvZ01lZGlhOyB9
CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29u
c3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworfTsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUpOworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOworCit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3NjM0MDlmNjYxYTI3MTlkYWJmMDkzM2UwZjg5ZDJl
MDJjZWM2NGY3Li43NDJlZTdkZjdiMjkwNzAwZTA3OGQ0ZmMwNDY5YmEzZTE4YTExNzhlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMzcsNiArMzM3LDEyIEBACiAjaW5j
bHVkZSA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oIgorI2luY2x1ZGUgIk1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1
ZGUgIk5hdmlnYXRvck1lZGlhU2Vzc2lvbi5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKICNpbmNsdWRlICJJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCIKICNlbmRpZgpA
QCAtNjExMiw5ICs2MTE4LDQwIEBAIHZvaWQgSW50ZXJuYWxzOjpsb2FkQXJ0d29ya0ltYWdlKFN0
cmluZyYmIHVybCwgQXJ0d29ya0ltYWdlUHJvbWlzZSYmIHByb21pc2UpCiAgICAgfSk7CiAgICAg
bV9hcnR3b3JrTG9hZGVyLT5yZXF1ZXN0SW1hZ2VSZXNvdXJjZSgpOwogfQotCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorRXhjZXB0aW9uT3I8dm9pZD4g
SW50ZXJuYWxzOjpyZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIp
Cit7CisgICAgaWYgKG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpCisgICAgICAgIHJldHVybiB7
IH07CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOworICAgIGlmICgh
ZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5kb21XaW5kb3coKSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgaWYgKCFkb2N1bWVudC0+c2V0dGlu
Z3MoKS5tZWRpYVNlc3Npb25Db29yZGluYXRvckVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgYXV0byYgc2Vzc2lvbiA9IE5h
dmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uKGRvY3VtZW50LT5kb21XaW5kb3coKS0+
bmF2aWdhdG9yKCkpOworICAgIGF1dG8gbW9jayA9IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6Y3JlYXRlKGNvbnRleHQsIFdURk1vdmUobGlzdGVuZXIpKTsKKyAgICBtX21vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvciA9IG1vY2sucHRyKCk7CisgICAgbV9tZWRpYVNlc3Npb25Db29yZGlu
YXRvciA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUobW9jay5nZXQoKSk7CisgICAg
c2Vzc2lvbi5zZXRDb29yZGluYXRvcihtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmdldCgpKTsK
KworICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsczo6c2V0
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKGJvb2wgc2hvdWxk
RmFpbCkKK3sKKyAgICBpZiAoIW1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKQorICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIG1fbW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLT5zZXRDb21tYW5kc1Nob3VsZEZhaWwoc2hvdWxkRmFpbCk7
CisgICAgcmV0dXJuIHsgfTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikKKwog
Y29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzdHJpbmcoUGFydGlhbE9yZGVyaW5nIG9yZGVyaW5nKQog
ewogICAgIGlmIChpc19sdChvcmRlcmluZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCA2MGVjYzQ4OGI0MzIwNzdlYjJlMzYxMmMwNmZiNGU5OGRhNmFkNjZiLi4yMTNkODdjZWY2
NGFkNWFkZTZiYTAyNTgwNzQ4MWU1OTg5MDk3ODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTEzNiw2ICsxMzYsMTAgQEAgY2xhc3MgV2ViWFJUZXN0OwogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQogY2xhc3MgTWVkaWFTZXNzaW9uOwogc3RydWN0IE1lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHM7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCitjbGFz
cyBNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKK2NsYXNzIE1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjsKKyNlbmRpZgogI2VuZGlmCiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNz
IERPTVByb21pc2VEZWZlcnJlZDsKQEAgLTEwOTMsMTAgKzEwOTcsMTcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIEV4Y2VwdGlvbk9yPGRvdWJsZT4gY3VycmVudE1l
ZGlhU2Vzc2lvblBvc2l0aW9uKGNvbnN0IE1lZGlhU2Vzc2lvbiYpOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNlbmRNZWRpYVNlc3Npb25BY3Rpb24oTWVkaWFTZXNzaW9uJiwgY29uc3QgTWVkaWFT
ZXNzaW9uQWN0aW9uRGV0YWlscyYpOwotICAgIHVzaW5nIEFydHdvcmtJbWFnZVByb21pc2UgPSBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEltYWdlRGF0YT4+OworCisgICAgICAgIHVz
aW5nIEFydHdvcmtJbWFnZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEltYWdlRGF0YT4+OwogICAgIHZvaWQgbG9hZEFydHdvcmtJbWFnZShTdHJpbmcmJiwgQXJ0d29y
a0ltYWdlUHJvbWlzZSYmKTsKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYpOwor
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1h
bmRzU2hvdWxkRmFpbChib29sKTsKICNlbmRpZgogCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NF
U1NJT04pCisKICAgICBlbnVtIFRyZWVUeXBlIDogdWludDhfdCB7IFRyZWUsIFNoYWRvd0luY2x1
ZGluZ1RyZWUsIENvbXBvc2VkVHJlZSB9OwogICAgIFN0cmluZyB0cmVlT3JkZXIoTm9kZSYsIE5v
ZGUmLCBUcmVlVHlwZSk7CiAgICAgU3RyaW5nIHRyZWVPcmRlckJvdW5kYXJ5UG9pbnRzKE5vZGUm
IGNvbnRhaW5lckEsIHVuc2lnbmVkIG9mZnNldEEsIE5vZGUmIGNvbnRhaW5lckIsIHVuc2lnbmVk
IG9mZnNldEIsIFRyZWVUeXBlKTsKQEAgLTExNDAsNiArMTE1MSwxMSBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShXRUJYUikKICAgICBSZWZQdHI8V2ViWFJUZXN0PiBtX3hyVGVzdDsKICNlbmRpZgor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgUmVmUHRyPE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yPiBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworICAgIFJlZlB0
cjxNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggZTg1ZTA4ZGY4OGNkOTU4MDE5ZGJlNDYxM2UzNmQ0OWRi
ODYxMTY4My4uNTY1NTgzZTUxMzc4NWYzN2IwMWEyNGE3Y2IyYjc3Yjk0OWRlZGM4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtOTkxLDYgKzk5MSw5IEBAIGVudW0gVHJl
ZVR5cGUgewogICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OXSB1bmRlZmluZWQgc2VuZE1l
ZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNlc3Npb24gc2Vzc2lvbiwgTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscyBhY3Rpb25EZXRhaWxzKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl0g
UHJvbWlzZTxJbWFnZURhdGE+IGxvYWRBcnR3b3JrSW1hZ2UoRE9NU3RyaW5nIHVybCk7CiAgICAg
CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsIE1heVRocm93RXhj
ZXB0aW9uLCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB1bmRlZmluZWQgcmVnaXN0
ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU3RyaW5nQ2FsbGJhY2sgY2FsbGJhY2spOwor
ICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLCBNYXlUaHJvd0V4Y2Vw
dGlvbl0gdW5kZWZpbmVkIHNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hv
dWxkRmFpbChib29sZWFuIHNob3VsZEZhaWwpOworCiAgICAgRE9NU3RyaW5nIHRyZWVPcmRlcihO
b2RlIGEsIE5vZGUgYiwgb3B0aW9uYWwgVHJlZVR5cGUgdHJlZSA9ICJUcmVlIik7CiAgICAgRE9N
U3RyaW5nIHRyZWVPcmRlckJvdW5kYXJ5UG9pbnRzKE5vZGUgY29udGFpbmVyQSwgdW5zaWduZWQg
bG9uZyBvZmZzZXRBLCBOb2RlIGNvbnRhaW5lckIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0Qiwgb3B0
aW9uYWwgVHJlZVR5cGUgdHJlZSA9ICJUcmVlIik7CiAgICAgYm9vbGVhbiByYW5nZUNvbnRhaW5z
Tm9kZShBYnN0cmFjdFJhbmdlIHJhbmdlLCBOb2RlIG5vZGUsIG9wdGlvbmFsIFRyZWVUeXBlIHRy
ZWUgPSAiVHJlZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNzVmYjYxMzI1MGQ3MWQ3MTE0
NTc2NzQ5NDNhNWMwMTc4NTI5ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKQEAgLTAsMCArMSwxMTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCisjaW5jbHVkZSAiU3RyaW5nQ2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1VVSUQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY29udGV4dCwg
V1RGTW92ZShsaXN0ZW5lcikpKTsKK30KKworTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmIGxpc3RlbmVyKQorICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCisgICAgLCBtX3N0YXRlQ2hhbmdlTGlzdGVuZXIoV1RGTW92ZShsaXN0ZW5lcikpCit7
Cit9CisKK09wdGlvbmFsPEV4Y2VwdGlvbj4gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpy
ZXN1bHQoKSBjb25zdAoreworICAgIGlmIChtX2ZhaWxDb21tYW5kcykKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJs
ZSB0aW1lLCBTZWVrQ29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNf
TE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHRpbWUpOworICAgIG1fY29udGV4dC0+cG9z
dFRhc2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdCgpKTsKKyAgICB9
KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoUGxheUNvbXBs
ZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShM
T0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewor
ICAgICAgICBjYWxsYmFjayhyZXN1bHQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJh
Y2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBt
X2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjayhyZXN1
bHQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpz
ZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFj
aykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1f
Y29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNrKHJlc3Vs
dCgpKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBv
c2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6Ok1lZGlhUG9zaXRpb25TdGF0ZT4pCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShM
T0dJREVOVElGSUVSKTsKKyAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJh
Y2sobV9jb250ZXh0LmdldCgpLCAicG9zaXRpb25TdGF0ZUNoYW5nZWQiKTsKK30KKwordm9pZCBN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCit7Cisg
ICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisgICAgbV9z
dGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInJl
YWR5U3RhdGVDaGFuZ2VkIik7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpwbGF5YmFja1N0YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9T
U0lCTEUoTE9HSURFTlRJRklFUiwgc3RhdGUpOworICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lci0+
c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCksICJwbGF5YmFja1N0YXRlQ2hhbmdlZCIp
OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg3MGJiNGNiMGJlOTZmODVmZDQ1NzBlOGUzOTNiNzIzNmZlOGYy
YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVk
ZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU3RyaW5nQ2Fs
bGJhY2s7CisKK2NsYXNzIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciA6IHB1YmxpYyBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYp
OworCisgICAgdm9pZCBzZXRDb21tYW5kc1Nob3VsZEZhaWwoYm9vbCBzaG91bGRGYWlsKSB7IG1f
ZmFpbENvbW1hbmRzID0gc2hvdWxkRmFpbDsgfQorCitwcml2YXRlOgorICAgIE1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPFN0cmluZ0Nh
bGxiYWNrPiYmKTsKKworICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgU2Vla0NvbXBsZXRlZENhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgcGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJikgZmlu
YWw7CisgICAgdm9pZCBwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAg
IHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYp
IGZpbmFsOworCisgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBv
c2l0aW9uU3RhdGU+KSBmaW5hbDsKKyAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vz
c2lvblJlYWR5U3RhdGUpIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CisKKyAgICBPcHRpb25hbDxFeGNlcHRpb24+
IHJlc3VsdCgpIGNvbnN0OworCisgICAgUmVmPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29u
dGV4dDsKKyAgICBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IG1fc3RhdGVDaGFuZ2VMaXN0ZW5lcjsK
KyAgICBib29sIG1fZmFpbENvbW1hbmRzIHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRkNjBmNzI0ODQ3YWE1
MTZiNmZmY2EzNjY1OTgzNDk3YjY2OWNkOTAuLjkxN2QyMDQ0ZTdmYmY4MmFiZjg1Y2RiNTg5ODU4
ZmUwNmNlZGY2ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0xOCAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBFeHBl
cmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcGxhdGZvcm0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1z
ZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBt
ZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbDogQWRkZWQuCisKIDIwMjEt
MDMtMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBd
IDIgd2ViIGF1ZGlvIFdQVCB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3MgaXMg
ZW5hYmxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDEwY2YzNmFiYzkzMTA5MmZhYjA3Mzk5MTU2
N2Q5ZTYyMWY4YWM4NS4uNjM4OTAwZWVlZGM5YWYxYTJjMjQ0MTMzZTdhZGUzYjkzNDVjZjEzNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NjM3LDYgKzQ2MzcsNyBAQCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1hZnRlci1pbml0aWFsLWxh
eW91dC93cgogIyBDb2NvYS1vbmx5CiBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtaGRyLXN3aXRj
aC5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNhbnBsYXl0aHJvdWdoLXdl
Ym0uaHRtbCBbIFNraXAgXQorbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0
bWwgWyBTa2lwIF0KIAogIyBUaGVzZSB0ZXN0cyByZWx5IG9uIHdlYmtpdC10ZXN0LXJ1bm5lciBm
bGFncyB0aGF0IGFyZW4ndCBpbXBsZW1lbnRlZCBmb3IgRHVtcFJlbmRlclRyZWUsIHNvIHRoZXkg
d2lsbCBmYWlsIHVuZGVyIGxlZ2FjeSBXZWJLaXQuCiBlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRv
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFz
ZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBmZWM2ZDY0Mzg5ZWRl
MWMyMGQ0ZjI2MjM1N2YxMjYyYzcxMWEwMTM1Li43MWRiY2MzOGQzOTE5YmIzYzBiMzYyOGM0ZDEw
ZGQyNjQ3OTE1Y2U4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYXNl
c3Npb24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xMiwxMCArMTIsMTQgQEAg
UEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29va2llczog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRv
clBsdWdpbnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRl
cyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1Q
QVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0CitGQUlMIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9lcXVhbHM6IHByb3RvdHlw
ZSBvZiBzZWxmJ3MgcHJvcGVydHkgIk1lZGlhU2Vzc2lvbiIgaXMgbm90IEZ1bmN0aW9uLnByb3Rv
dHlwZSBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUgY29kZV0K
K30iIGJ1dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkgeworICAgIFtuYXRp
dmUgY29kZV0KK30iCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAog
UEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lCi1QQVNTIE1lZGlhU2Vzc2lv
biBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdAorRkFJTCBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogcHJv
dG90eXBlIG9mIE1lZGlhU2Vzc2lvbi5wcm90b3R5cGUgaXMgbm90IE9iamVjdC5wcm90b3R5cGUg
ZXhwZWN0ZWQgb2JqZWN0ICJbb2JqZWN0IE9iamVjdF0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0
IEV2ZW50VGFyZ2V0XSIKIFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eQogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHBy
b3BlcnR5CiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtZXRhZGF0YQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5h
dG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1j
b29yZGluYXRvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQwNmY0ODJmNDg5YzcyNmY0NzI4
ODBlZTY2NzZmOTI0ZDA1ZTU2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
MSBAQAorCisqKiBUaGVyZSBzaG91bGQgYmUgbm8gbWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yIGlu
aXRpYWxseS4KK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yID09
ICd1bmRlZmluZWQnKSBPSworCisqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9y
Y2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gaXQgY2hhbmdlcy4KK1JVTihpbnRlcm5hbHMucmVn
aXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY2hhbmdlSGFuZGxlcikpCitFVkVOVChj
b29yZGluYXRvcmNoYW5nZSkKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yICE9ICd1bmRlZmluZWQnKSBPSworCisqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRv
ciBtZXRob2RzIHN1Y2NlZWQsIHByb21pc2VzIHJlc29sdmUgYW5kIG1lZGlhU2Vzc2lvbiBhY3Rp
b24gaGFuZGxlcnMgYXJlIGNhbGxlZC4KK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29y
ZGluYXRvci5wbGF5KCkKK0FDVElPTihwbGF5KQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAn
cGxheScpIE9LCisKK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVz
ZSgpCitBQ1RJT04ocGF1c2UpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdwYXVzZScpIE9L
CisKK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrdG8oKQorQUNU
SU9OKHNlZWt0bykKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3NlZWt0bycpIE9LCisKKyoq
IFRlc3QgdGhhdCB3aGVuIGNvb3JkaW5hdG9yIG1ldGhvZHMgc3VjY2VlZCwgcHJvbWlzZXMgcmVq
ZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBub3QgY2FsbGVkLgorVGVz
dCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKQorRVhQRUNURUQgKGxh
dGVzdEFjdGlvbiA9PSAnJykgT0sKKworVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yLnBhdXNlKCkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisKK1Rlc3Qg
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrdG8oKQorRVhQRUNURUQgKGxh
dGVzdEFjdGlvbiA9PSAnJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmll
cyBjb29yZGluYXRvciB3aGVuIHBvc2l0aW9uU3RhdGUgY2hhbmdlcy4KK1JVTihuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnNldFBvc2l0aW9uU3RhdGUoeyBkdXJhdGlvbjogMSwgcGxheWJhY2tSYXRl
OiAxLCBwb3NpdGlvbjogMCB9KSkKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3Bvc2l0aW9u
U3RhdGVDaGFuZ2VkJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBj
b29yZGluYXRvciB3aGVuIHJlYWR5U3RhdGUgY2hhbmdlcy4KK0VYUEVDVEVEIChuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykgT0sKK1JVTihuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZU1ldGFkYXRhJykKK0VYUEVDVEVEIChs
YXRlc3RDaGFuZ2UgPT0gJ3JlYWR5U3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0YScpIE9LCisKK0VYUEVD
VEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0YScp
IE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVDdXJyZW50
RGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9L
CitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlQ3Vy
cmVudERhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0
YXRlID09ICdoYXZlQ3VycmVudERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
cmVhZHlTdGF0ZSA9ICdoYXZlRnV0dXJlRGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09
ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5yZWFkeVN0YXRlID09ICdoYXZlRnV0dXJlRGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVGdXR1cmVEYXRhJykgT0sKK1JVTihu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUVub3VnaERhdGEnKQorRVhQ
RUNURUQgKGxhdGVzdENoYW5nZSA9PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQg
KG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUVub3VnaERhdGEnKSBP
SworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZl
RW5vdWdoRGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0g
J2hhdmVOb3RoaW5nJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3JlYWR5U3RhdGVDaGFu
Z2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0g
J2hhdmVOb3RoaW5nJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBj
b29yZGluYXRvciB3aGVuIHBsYXliYWNrU3RhdGUgY2hhbmdlcy4KK0VYUEVDVEVEIChuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSworUlVOKG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICdwYXVzZWQnKQorRVhQRUNURUQgKGxhdGVz
dENoYW5nZSA9PSAncGxheWJhY2tTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKKworRVhQRUNURUQg
KG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKK1JV
TihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAncGxheWluZycpCitFWFBF
Q1RFRCAobGF0ZXN0Q2hhbmdlID09ICdwbGF5YmFja1N0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RF
RCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwbGF5aW5nJykgT0sK
KworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGxh
eWluZycpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ25v
bmUnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncGxheWJhY2tTdGF0ZUNoYW5nZWQnKSBP
SworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAnbm9u
ZScpIE9LCisKKworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzgxMTRhOGI1
MzBmNGRkOTljMzExOGQ5YTU3MmZlYjVlNWMxNzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKQEAgLTAsMCAr
MSwxMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bW9j
ay1tZWRpYXNlc3Npb24tY29vcmRpbmF0b3I8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi92
aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorCisgICAgZnVuY3Rpb24gY2hh
bmdlSGFuZGxlcihjaGFuZ2UpCisgICAgeworICAgICAgICB3aW5kb3cubGF0ZXN0Q2hhbmdlID0g
Y2hhbmdlOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5
bmMgZXZlbnQgPT4geworCisgICAgICAgIHdpbmRvdy5sYXRlc3RBY3Rpb24gPSAnJzsKKyAgICAg
ICAgd2luZG93LmxhdGVzdENoYW5nZSA9ICcnOworCisgICAgICAgIGlmICghd2luZG93LmludGVy
bmFscykgeworICAgICAgICAgICAgZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1aXJlcyBJbnRlcm5h
bHMnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGNo
YW5nZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIG5hdmln
YXRvci5tZWRpYVNlc3Npb24uYWRkRXZlbnRMaXN0ZW5lcignY29vcmRpbmF0b3JjaGFuZ2UnLCAo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZlbnQu
dHlwZX0pYCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVX
cml0ZSgnKiogVGhlcmUgc2hvdWxkIGJlIG5vIG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciBpbml0
aWFsbHkuJykKKworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24u
Y29vcmRpbmF0b3InLCB1bmRlZmluZWQpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7Cisg
ICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbi5jb29yZGluYXRv
cmNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIGl0IGNoYW5nZXMuJykKKworICAgICAgICBydW4o
J2ludGVybmFscy5yZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihjaGFuZ2VIYW5k
bGVyKScpOworCisgICAgICAgIGF3YWl0IGNoYW5nZVByb21pc2U7CisgICAgICAgIAorICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3InLCB1bmRl
ZmluZWQsICchPScpOworCisgICAgICAgIFsncGxheScsICdwYXVzZScsICdzZWVrdG8nXS5mb3JF
YWNoKGFjdGlvbiA9PiB7CisgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnNldEFj
dGlvbkhhbmRsZXIoYWN0aW9uLCBhY3Rpb25EZXRhaWxzID0+IHsKKyAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoYEFDVElPTigke2FjdGlvbkRldGFpbHMuYWN0aW9ufSlgKTsKKyAgICAgICAg
ICAgICAgICBsYXRlc3RBY3Rpb24gPSBhY3Rpb25EZXRhaWxzLmFjdGlvbjsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKworICAgICAgICBsZXQgdGVzdEFjdGlvbiA9IGFzeW5jIChhY3Rp
b24sIGZ1bmMsIGZvcmNlRmFpbHVyZSkgPT4geworICAgICAgICAgICAgbGF0ZXN0QWN0aW9uID0g
Jyc7CisKKyAgICAgICAgICAgIGxldCBzdWNjZWVkZWQ7CisgICAgICAgICAgICB0cnkgeworICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNv
b3JkaW5hdG9yLiR7YWN0aW9ufSgpYCk7CisgICAgICAgICAgICAgICAgYXdhaXQgZnVuYygpOwor
ICAgICAgICAgICAgICAgIGlmIChmb3JjZUZhaWx1cmUpCisgICAgICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZShgRkFJTDogJHtmdW5jLnRvU3RyaW5nKCl9IHJlc29sdmVkIGJ1dCBzaG91bGQg
aGF2ZSByZWplY3RlZGApOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0
aW9uJywgYWN0aW9uKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICAg
ICAgaWYgKCFmb3JjZUZhaWx1cmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShg
RkFJTDogJHtmdW5jLnRvU3RyaW5nKCl9IHRocmV3ICR7ZXh9YCk7CisgICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCdsYXRlc3RBY3Rpb24nLCAnJyk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIH07CisKKyAgICAgICAgbGV0IGFjdGlv
bnMgPSBbIAorICAgICAgICAgICAgeyBhY3Rpb246ICdwbGF5JywgZnVuYyA6ICgpID0+IHsgcmV0
dXJuIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpIH0sIH0sCisgICAg
ICAgICAgICB7IGFjdGlvbjogJ3BhdXNlJywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGF1c2UoKSB9LCB9LAorICAgICAgICAgICAgeyBh
Y3Rpb246ICdzZWVrdG8nLCBmdW5jIDogKCkgPT4geyByZXR1cm4gbmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5jb29yZGluYXRvci5zZWVrVG8oMTApIH0sIH0sCisgICAgICAgIF07CisKKyAgICAgICAg
Y29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgd2hl
biBjb29yZGluYXRvciBtZXRob2RzIHN1Y2NlZWQsICBwcm9taXNlcyByZXNvbHZlIGFuZCBtZWRp
YVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBjYWxsZWQuJykKKyAgICAgICAgaW50ZXJuYWxz
LnNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChmYWxzZSk7
CisgICAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKQorICAgICAgICAgICAgYXdhaXQg
dGVzdEFjdGlvbihhY3Rpb24uYWN0aW9uLCBhY3Rpb24uZnVuYywgZmFsc2UpOworCisgICAgICAg
IGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNj
ZWVkLCAgcHJvbWlzZXMgcmVqZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFy
ZSBub3QgY2FsbGVkLicpCisgICAgICAgIGludGVybmFscy5zZXRNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JDb21tYW5kc1Nob3VsZEZhaWwodHJ1ZSk7CisgICAgICAgIGZvciAobGV0IGFjdGlv
biBvZiBhY3Rpb25zKQorICAgICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihhY3Rpb24uYWN0aW9u
LCBhY3Rpb24uZnVuYywgdHJ1ZSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKGAqKiBUZXN0IHRo
YXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcG9zaXRpb25TdGF0ZSBj
aGFuZ2VzLmApCisgICAgICAgIHJ1bignbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlv
blN0YXRlKHsgZHVyYXRpb246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSknKTsK
KyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3Bv
c2l0aW9uU3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsKKworICAgICAgICBjb25zb2xlV3JpdGUo
JycpOworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90
aWZpZXMgY29vcmRpbmF0b3Igd2hlbiByZWFkeVN0YXRlIGNoYW5nZXMuJykKKyAgICAgICAgbGV0
IHByZXZpb3VzU3RhdGUgPSAnaGF2ZU5vdGhpbmcnOworICAgICAgICBmb3IgKGxldCBzdGF0ZSBv
ZiBbJ2hhdmVNZXRhZGF0YScsICdoYXZlQ3VycmVudERhdGEnLCAnaGF2ZUZ1dHVyZURhdGEnLCAn
aGF2ZUVub3VnaERhdGEnLCAnaGF2ZU5vdGhpbmcnXSkgeworICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBwcmV2aW91c1N0YXRlKTsK
KworICAgICAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7CisgICAgICAgICAgICBydW4oYG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICcke3N0YXRlfSdgKTsKKworICAgICAgICAg
ICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3JlYWR5U3Rh
dGVDaGFuZ2VkJywgJz09JywgMTAwKTsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBzdGF0ZSk7CisgICAgICAgICAgICBwcmV2
aW91c1N0YXRlID0gc3RhdGU7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAg
ICB9OworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBu
b3RpZmllcyBjb29yZGluYXRvciB3aGVuIHBsYXliYWNrU3RhdGUgY2hhbmdlcy4nKQorICAgICAg
ICBwcmV2aW91c1N0YXRlID0gJ25vbmUnOworICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBbJ3Bh
dXNlZCcsICdwbGF5aW5nJywgJ25vbmUnXSkgeworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
J25hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZScsIHByZXZpb3VzU3RhdGUpOwor
CisgICAgICAgICAgICBsYXRlc3RDaGFuZ2UgPSAnJzsKKyAgICAgICAgICAgIHJ1bihgbmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJyR7c3RhdGV9J2ApOworCisgICAgICAg
ICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAncGxheWJh
Y2tTdGF0ZUNoYW5nZWQnLCAnPT0nLCAxMDApOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
J25hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZScsIHN0YXRlKTsKKyAgICAgICAg
ICAgIHByZXZpb3VzU3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7
CisgICAgICAgIH07CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgZW5kVGVz
dCgpOworICAgIH0sIHtvbmNlOiB0cnVlfSk7CisKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="443645"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424079</attachid>
            <date>2021-03-23 17:13:26 -0700</date>
            <delta_ts>2021-03-23 18:33:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222158-20210323171324.patch</filename>
            <type>text/plain</type>
            <size>120912</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmYzczYWI5YzdiZWUzNDEzMjkxOGE5
NDVhYTQ3NDVkZjM2NDE1ZWUuLjY1MzUzNDNjZmY1YmY1YmU4NzIzMWYzMjJjODBhMDRjZmUyM2U5
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAzLTIzICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlcXVpcmUgVk1fRkxBR1NfUEVS
TUFORU5UIG9uIHRoZSBzaW11bGF0b3IgYnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkxZDM5NzM5ODU0
YWQ2YmY0NmQ0YzhkZGIyYmJjNjY4OGNlZTViYS4uY2E0NjcyMTFjODU3MjY4YTY2NmVmNWRmMDVm
MGYwM2IyN2UzYjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAyMS0wMi0xOCAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2Fd
IEFkZCBFeHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9y
LCBhbiBvYmplY3QgdGhhdCBwcm92aWRlcyBhbiBpbnRlcmZhY2UKKyAgICAgICAgdGhhdCBhbGxv
d3Mgc2NyaXB0IHRvIGNvb3JkaW5hdGUgY2hhbmdlcyB0byBNZWRpYVNlc3Npb24gd2l0aCB0aGUg
VXNlciBBZ2VudC4gQWxzbworICAgICAgICBhZGQgYW4gZXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lv
biBwbGF5bGlzdCBpbnRlcmZhY2UuCisKKyAgICAgICAgVGhlIGNoYW5nZXMgYXJlIGJlaGluZCBu
ZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUgZmxhZ3MsCisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yRW5hYmxlZCBhbmQgTWVkaWFTZXNzaW9uUGxheWxpc3RFbmFibGVkLgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OiBBZGQgbmV3IElETCBmaWxlcy4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDogQWRkIG5ldyBkZXJp
dmVkIHNvdXJjZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkIG5ldyBJREwu
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6IFNldCB0cmFja0lkZW50aWZp
ZXIgZnJvbSBpbml0IGRhdGEuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRU
cmFja0lkZW50aWZpZXIpOiB0cmFja0lkZW50aWZpZXIgc2V0dGVyLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oOiBBZGQgdHJhY2tJZGVudGlmaWVyLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
OjpNZWRpYVNlc3Npb24pOiBJbml0aWFsaXplIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEpOiBtZXRhZGF0YVVw
ZGF0ZWQgLT4gbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb246OnNldFJlYWR5U3RhdGUpOiBTZXNzaW9uIHJlYWR5U3RhdGUgc2V0dGVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcik6IENvb3JkaW5hdG9y
IHNldHRlci4gUG9zdCAnY29vcmRpbmF0b3JjaGFuZ2UnCisgICAgICAgIGV2ZW50IGFmdGVyIGNo
YW5nZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0UGxheWxpc3QpOiBQbGF5
bGlzdCBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldEFjdGlvbkhh
bmRsZXIpOiBDYWxsIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNlcnZlcnMuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUpOiBDYWxsIG5vdGlmeVBvc2l0aW9u
U3RhdGVPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Om1ldGFkYXRh
VXBkYXRlZCk6IENhbGwgbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcik6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbjo6Zm9yRWFjaE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycyk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5QWN0aW9uSGFuZGxl
ck9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5
UmVhZHlTdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRp
bmF0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGw6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsOgor
CisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHByb3hpZXMgY2FsbHMgdGhyb3VnaCB0
aGUgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciwKKyAgICAgICAgYW5kIHRoZW4gY2Fs
bHMgdGhlIGVxdWl2YWxlbnQgTWVkaWFTZXNzaW9uIG1ldGhvZGUgaWYgdGhlIHBsYXRmb3JtIGNv
b3JkaW5hdG9yIAorICAgICAgICBpcyBzdWNjZXNzZnVsLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOiBOZXcuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDbGFzc05hbWUpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlk
bDogTmV3LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFT
ZXNzaW9uLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW46CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TG9nZ2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlclB0ciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsIGNvbnN0KToKKworICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOiBSZWdpc3RlciB0aGUgbW9jawor
ICAgICAgICBtZWRpYSBzZXNzaW9uIGNvb3JkaW5hdG9yIGZvciB0ZXN0aW5nLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmg6IE5ldy4KKwogMjAyMS0wMy0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlYmFzZWxpbmUgYmluZGluZ3MgdGVz
dHMgYWZ0ZXIgcjI3NDkwNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZWNhYjYz
NjJlMDBhOGMwMzg1MzYxNzRhOTMzMGYxNWUyZTdlOTViOS4uM2JjMzA5NjUwZjZjYmQ5MzM5OTEy
YjE1OWE4MDEyZDYwMjhiZmQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTYz
Miw2ICs2MzIsMTkgQEAgTWVkaWFSZWNvcmRlckVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAg
IGRlZmF1bHQ6IGZhbHNlCiAKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZDoKKyAgdHlw
ZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24g
Y29vcmRpbmF0b3IgQVBJIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhw
ZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvciBBUEkiCisgIGNvbmRpdGlvbjogRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJL
aXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIE1lZGlhU2Vz
c2lvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJNZWRpYSBT
ZXNzaW9uIEFQSSIKQEAgLTY0NSw2ICs2NTgsMTkgQEAgTWVkaWFTZXNzaW9uRW5hYmxlZDoKICAg
ICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorTWVkaWFTZXNzaW9uUGxheWxpc3RF
bmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFs
IE1lZGlhU2Vzc2lvbiBwbGF5bGlzdCBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIHBsYXlsaXN0IEFQSSIKKyAgY29uZGl0
aW9uOiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgZGVmYXVsdFZhbHVlOgorICAg
IFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTW9k
ZWxFbGVtZW50RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkhU
TUwgPG1vZGVsPiBlbGVtZW50IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1F
bmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4
IGM3YWRjNGU5ZjM2ODEwY2EzYWM4NGJjNzhjMmI3OWQ4ODRjNjY5NGUuLjMwZDNmOWQzMGJiYzdh
MzFmZjYwZjUzNjBiYmM2MzMxOWI2NGE3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNv
Y29hLmgKQEAgLTMyOCw2ICszMjgsMTQgQEAKICNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUFYX0FMTE9XRUQgPj0gMTIwMDAwCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fUExB
WUxJU1QpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VE
ID49IDEyMDAwMAorI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCAxCisjZW5k
aWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAmJiAhUExBVEZPUk0oV0FU
Q0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9O
IDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMTllOWQ0Y2YxZmY2YmE0ZWFlZGNm
YTliNzE4MWY5MTc5ZWUwZmRhLi4zYjFhY2EyMzMzNTFmMTBhYjUwMTRiNDA5MjRjOTU3MDZkNTdh
ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzMxLDEyICszMzEsMTcgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdl
LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAgICAgTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25B
Y3Rpb24uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5k
bGVyLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4
aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGlu
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKIAog
ICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRlNTg4
YTI0OTQ5NzNhNzkwZTE2NWMwYWExNGE0NWFhZDJkOGM4ZGYuLjE2OWIyMWExYjAxMWRlOTM4Mzc0
Y2ZkNWU3NjkyYzJlZjAzOTJkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDEyICsxNzMsMTcgQEAgJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKyQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkFjdGlvbkhhbmRsZXIuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhp
bi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJl
YWR5U3RhdGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0
b3IrTWVkaWFTZXNzaW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNvdXJjZS9B
dWRpb1RyYWNrK01lZGlhU291cmNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNv
dXJjZS9ET01VUkwrTWVkaWFTb3VyY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGY3YTYzOGFhOTM5MDU3ZDczNDgwOTFhYjQy
ODEzOWM5OTRkMGQzMGIuLjcxNmE4YzVhNzI3ZTU5OWNjYWI2NjkxODgwMGM3NzY4NjVlZDc3ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CkBAIC0xMjk4LDYgKzEyOTgsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYU1ldGFkYXRhSW5pdC5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YUlu
aXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YU1ldGFkYXRhUGxheWxpc3RNaXhpbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVBvc2l0aW9uU3RhdGUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
UG9zaXRpb25TdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMTMxNiw4ICsxMzE4LDE2IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFj
dGlvbkhhbmRsZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvck1peGluLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4
aW4uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YVNlc3Npb25SZWFkeVN0YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU291cmNlLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW0uY3Bw
CkBAIC0xMzUyLDYgKzEzNjIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vY2tDRE1GYWN0b3J5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb2NrQ0RNRmFjdG9yeS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01vY2tQYWdlT3ZlcmxheS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTW9ja1BhZ2VPdmVybGF5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja1BheW1lbnRBZGRyZXNzLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggM2VkYTEwYThjNjdjODFmMDdjNTVjZTNhOTBjMWQ2MTNmMDkz
ZGJkMS4uNTE4ZWRmMWZkNjQ1NDM4OGY2OGU3NGU3YTIyMmIwYTcxMTEyY2I1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMDcsMTIgKzIwNywxNyBAQCBKU19CSU5ESU5HX0lE
TFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGFQbGF5bGlzdE1peGluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVBvc2l0aW9uU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNaXhpbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Eb3VibGVSYW5nZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCBlMTBkYWQwN2QzMjU0Y2ExMDkzMWRi
MDY1NzE3ZmFmYTBkZmM5OWIzLi4zNDZiMjdhYmExNzE3MzhjYjQzOWQ0ZjE5MmNlYTkzMDUwNGFm
NDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmNwcApAQCAtOTYsNiArOTYsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFN
ZXRhZGF0YT4+IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
bwogICAgICAgICBtZXRhZGF0YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRh
ZGF0YS0+c2V0QXJ0aXN0KGluaXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1
bShpbml0LT5hbGJ1bSk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAg
ICAgIG1ldGFkYXRhLT5zZXRUcmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsK
KyNlbmRpZgogICAgICAgICBhdXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFy
dHdvcmsoY29udGV4dCwgV1RGTW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3Nz
aWJsZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBwb3NzaWJsZUV4Y2VwdGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTg4LDYgKzE5MSwxNyBA
QCB2b2lkIE1lZGlhTWV0YWRhdGE6OnNldEFydHdvcmtJbWFnZShJbWFnZSogaW1hZ2UpCiAgICAg
bV9hcnR3b3JrSW1hZ2UgPSBpbWFnZTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQordm9pZCBNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIoY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyKQoreworICAgIGlmIChtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllciA9
PSBpZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21ldGFkYXRhLnRyYWNrSWRl
bnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgbWV0YWRhdGFVcGRhdGVkKCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBNZWRpYU1ldGFkYXRhOjptZXRhZGF0YVVwZGF0ZWQoKQogewogICAgIGlmIChtX3Nl
c3Npb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmgKaW5kZXggYTdiZTc4NTkwMDA5MGVkMTdiY2MzYTk5ZWIxZjFmNzg0Y2ZkNmI1
NC4uMjk2MGI0NGE4NjNiYzgyYjRmOTIzYWNiMzVhNmNlMWIwZDEzODIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaApAQCAt
OTEsNiArOTEsMTEgQEAgcHVibGljOgogCiAgICAgY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRhdGEm
IG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YTsgfQogCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllcjsgfQorICAgIHZvaWQg
c2V0VHJhY2tJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgTWVkaWFNZXRhZGF0YSgpOwogICAgIHZvaWQgc2V0QXJ0d29ya0ltYWdlKEltYWdlKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFk
YXRhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGEuaWRsCmluZGV4IGMyYjU3N2NmNWJiMjI5YzJhNmZiMzE2NzlkM2ZlNTljNzhjZDEyNmQuLmQw
NWYyYjBiNjk0YmM0OGZmYWE3MTM1YTVhZTlmNDBjYTYyZmNkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCkBAIC0z
Myw0ICszMyw4IEBACiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhcnRpc3Q7CiAgICAgYXR0cmli
dXRlIERPTVN0cmluZyBhbGJ1bTsKICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhSW1hZ2U+IGFydHdvcms7CisKKyAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1N
ZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7
CiB9OworCitNZWRpYU1ldGFkYXRhIGluY2x1ZGVzIE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGlu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGFJbml0LmgKaW5kZXggNjY5ZGVmZmEyZDY5NDA4NWYwOGYxMGRmMWI5MTZlZjQ0ZTg4
NWUwZC4uZDY5MmQyZDk0ODI3NTNmMGFjMGE4NDMyYTQ2MGY5MDE0YTBjZmJhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRh
SW5pdC5oCkBAIC0zNSw2ICszNSw5IEBAIHN0cnVjdCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAgICAg
U3RyaW5nIHRpdGxlOwogICAgIFN0cmluZyBhcnRpc3Q7CiAgICAgU3RyaW5nIGFsYnVtOworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFN0cmluZyB0cmFja0lkZW50aWZp
ZXI7CisjZW5kaWYKICAgICBWZWN0b3I8TWVkaWFJbWFnZT4gYXJ0d29yazsKIAogICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTQzLDI4
ICs0Niw1MSBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0YUluaXQgewogCiB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRpYU1ldGFkYXRhSW5pdDo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0g
PDwgYXJ0d29yazsKKyAgICBlbmNvZGVyIDw8IHRpdGxlIDw8IGFydGlzdCA8PCBhbGJ1bQorI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIDw8IHRyYWNrSWRlbnRpZmllcgor
I2VuZGlmCisgICAgPDwgYXJ0d29yazsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5s
aW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRhdGFJbml0PiBNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgU3RyaW5nIHRpdGxlOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodGl0bGUpKQorICAgIE9wdGlvbmFsPFN0cmluZz4gdGl0bGU7CisgICAgZGVjb2Rl
ciA+PiB0aXRsZTsKKyAgICBpZiAodGl0bGUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBT
dHJpbmcgYXJ0aXN0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0aXN0KSkKKyAgICBPcHRp
b25hbDxTdHJpbmc+IGFydGlzdDsKKyAgICBkZWNvZGVyID4+IGFydGlzdDsKKyAgICBpZiAoIWFy
dGlzdCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFsYnVtKSkKKyAgICBPcHRpb25hbDxTdHJpbmc+IGFsYnVtOworICAg
IGRlY29kZXIgPj4gYWxidW07CisgICAgaWYgKCFhbGJ1bSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIFZlY3RvcjxNZWRpYUltYWdlPiBhcnR3b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoYXJ0d29yaykpCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgT3B0
aW9uYWw8U3RyaW5nPiB0cmFja0lkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiB0cmFja0lkZW50
aWZpZXI7CisgICAgaWYgKCF0cmFja0lkZW50aWZpZXIpCisgICAgICAgIHJldHVybiB7IH07Cisj
ZW5kaWYKKworICAgIE9wdGlvbmFsPFZlY3RvcjxNZWRpYUltYWdlPj4gYXJ0d29yazsKKyAgICBk
ZWNvZGVyID4+IGFydHdvcms7CisgICAgaWYgKCFhcnR3b3JrKQogICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgcmV0dXJuIE1lZGlhTWV0YWRhdGFJbml0IHsgV1RGTW92ZSh0aXRsZSksIFdURk1v
dmUoYXJ0aXN0KSwgV1RGTW92ZShhbGJ1bSksIFdURk1vdmUoYXJ0d29yaykgfTsKKyAgICByZXR1
cm4geyB7CisgICAgICAgIFdURk1vdmUoKnRpdGxlKSwKKyAgICAgICAgV1RGTW92ZSgqYXJ0aXN0
KSwKKyAgICAgICAgV1RGTW92ZSgqYWxidW0pLAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQorICAgICAgICBXVEZNb3ZlKCp0cmFja0lkZW50aWZpZXIpLAorI2VuZGlmCisgICAg
ICAgIFdURk1vdmUoKmFydHdvcmspCisgICAgfSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwK
aW5kZXggOGIwZjU1Y2YxNGE1ODM4Y2I1NDg5NTY1ZDAyNzJkYWZhZDllMTIzZC4uMGRjOGVmMDA3
YjEwOTUxYjBkNTkxOWViMDMxMjQzNGYzZjY0NDYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbApAQCAt
MzAsNSArMzAsNiBAQAogICAgIERPTVN0cmluZyB0aXRsZSA9ICIiOwogICAgIERPTVN0cmluZyBh
cnRpc3QgPSAiIjsKICAgICBET01TdHJpbmcgYWxidW0gPSAiIjsKKyAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5
bGlzdF0gRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllciA9ICIiOwogICAgIHNlcXVlbmNlPE1lZGlh
SW1hZ2U+IGFydHdvcmsgPSBbXTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTBhNzY0MGIwZDM0NGJhZWMwMzY2OTc0MDYyNGFmMmQ0ZThkYjZmZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fUExBWUxJU1QsCisgICAgRW5hYmxl
ZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdCwKK10gaW50ZXJmYWNlIG1peGluIE1lZGlh
TWV0YWRhdGFQbGF5bGlzdE1peGluIHsKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRyYWNrSWRl
bnRpZmllcjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmNwcAppbmRleCAzMmIwOGUxYTcxZGU5NDMwZDEyMjBlMGJlNmEyMWNk
OGUyYjU3MGFlLi5lOGE5Y2FlZWFkNDYxY2I4OTYwN2MzNGMzMThiYTI0YTNiZDQwMTU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAKQEAgLTI5LDggKzI5LDEwIEBACiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogCkBAIC03Niw3ICs3OCwxMSBAQCBSZWY8TWVk
aWFTZXNzaW9uPiBNZWRpYVNlc3Npb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKIH0K
IAogTWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCi0gICAg
OiBtX25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIobmF2aWdhdG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAs
IG1fbmF2aWdhdG9yKG1ha2VXZWFrUHRyKG5hdmlnYXRvcikpCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2Vu
ZXJpY0V2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCisjZW5kaWYKIHsKICAgICBtX2xvZ2dlciA9
IG1ha2VSZWZQdHIoRG9jdW1lbnQ6OnNoYXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZp
ZXIgPSBuZXh0TG9nSWRlbnRpZmllcigpOwpAQCAtODksMTUgKzk1LDY3IEBAIE1lZGlhU2Vzc2lv
bjo6fk1lZGlhU2Vzc2lvbigpID0gZGVmYXVsdDsKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRNZXRh
ZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJiBtZXRhZGF0YSkKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwotCiAgICAgaWYgKG1fbWV0YWRhdGEpCiAgICAgICAgIG1fbWV0YWRh
dGEtPnJlc2V0TWVkaWFTZXNzaW9uKCk7CiAgICAgbV9tZXRhZGF0YSA9IFdURk1vdmUobWV0YWRh
dGEpOwogICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBtX21ldGFkYXRhLT5zZXRNZWRpYVNl
c3Npb24oKnRoaXMpOwotICAgIG1ldGFkYXRhVXBkYXRlZCgpOworICAgIG5vdGlmeU1ldGFkYXRh
T2JzZXJ2ZXJzKCk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
K3ZvaWQgTWVkaWFTZXNzaW9uOjpzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUg
c3RhdGUpCit7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisKKyAgICBtX3JlYWR5
U3RhdGUgPSBzdGF0ZTsKKyAgICBub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCk7CiB9CiAKK3Zv
aWQgTWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcihNZWRpYVNlc3Npb25Db29yZGluYXRvciog
Y29vcmRpbmF0b3IpCit7CisgICAgaWYgKG1fY29vcmRpbmF0b3IgPT0gY29vcmRpbmF0b3IpCisg
ICAgICAgIHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBp
ZiAobV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29yZGluYXRvci0+c2V0TWVkaWFTZXNzaW9u
KG51bGxwdHIpOworCisgICAgbV9jb29yZGluYXRvciA9IGNvb3JkaW5hdG9yOworCisgICAgaWYg
KG1fY29vcmRpbmF0b3IpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldE1lZGlhU2Vzc2lvbih0
aGlzKTsKKworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY29vcmRpbmF0b3JjaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX1BMQVlMSVNUKQorRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uOjpz
ZXRQbGF5bGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBWZWN0b3I8UmVmUHRy
PE1lZGlhTWV0YWRhdGE+PiYmIHBsYXlsaXN0KQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUik7CisKKyAgICBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiByZXNvbHZlZFBsYXlsaXN0
OworICAgIHJlc29sdmVkUGxheWxpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwbGF5bGlzdC5z
aXplKCkpOworCisgICAgZm9yIChhdXRvJiBlbnRyeSA6IHBsYXlsaXN0KSB7CisgICAgICAgIGF1
dG8gcmVzb2x2ZWRFbnRyeSA9IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShjb250ZXh0LCB7IGVudHJ5
LT5tZXRhZGF0YSgpIH0pOworICAgICAgICBpZiAocmVzb2x2ZWRFbnRyeS5oYXNFeGNlcHRpb24o
KSkKKyAgICAgICAgICAgIHJldHVybiByZXNvbHZlZEVudHJ5LnJlbGVhc2VFeGNlcHRpb24oKTsK
KyAgICAgICAgCisgICAgICAgIHJlc29sdmVkUGxheWxpc3QudW5jaGVja2VkQXBwZW5kKHJlc29s
dmVkRW50cnkucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgIH0KKworICAgIG1fcGxheWxpc3Qg
PSBXVEZNb3ZlKHJlc29sdmVkUGxheWxpc3QpOworCisgICAgcmV0dXJuIHsgfTsKK30KKyNlbmRp
ZgorCiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0UGxheWJhY2tTdGF0ZShNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlIHN0YXRlKQogewogICAgIGlmIChtX3BsYXliYWNrU3RhdGUgPT0gc3RhdGUpCkBA
IC0xMTEsNiArMTY5LDcgQEAgdm9pZCBNZWRpYVNlc3Npb246OnNldFBsYXliYWNrU3RhdGUoTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKICAgICAgICAgbV90aW1lQXRMYXN0UG9zaXRp
b25VcGRhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICB9CiAgICAgbV9wbGF5YmFja1N0
YXRlID0gc3RhdGU7CisgICAgbm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpOwogfQogCiB2
b2lkIE1lZGlhU2Vzc2lvbjo6c2V0QWN0aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rpb24gYWN0
aW9uLCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4mJiBoYW5kbGVyKQpAQCAtMTI5
LDcgKzE4OCw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vz
c2lvbkFjdGlvbiBhY3Rpb24sIFJlZlB0cjxNZWRpYVNlc3NpCiAgICAgICAgIFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZVN1cHBvcnRlZENvbW1hbmQo
cGxhdGZvcm1Db21tYW5kRm9yTWVkaWFTZXNzaW9uQWN0aW9uKGFjdGlvbikpOwogICAgIH0KIAot
ICAgIGFjdGlvbkhhbmRsZXJzVXBkYXRlZCgpOworICAgIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNl
cnZlcnMoKTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb246Omhhc0FjdGlvbkhhbmRsZXIoTWVkaWFT
ZXNzaW9uQWN0aW9uIGFjdGlvbikgY29uc3QKQEAgLTE0MiwxMiArMjAxLDE5IEBAIFJlZlB0cjxN
ZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPiBNZWRpYVNlc3Npb246OmhhbmRsZXJGb3JBY3Rpb24o
TWVkaWFTZXNzaW9uQWN0CiAgICAgcmV0dXJuIG1fYWN0aW9uSGFuZGxlcnMuZ2V0KGFjdGlvbik7
CiB9CiAKK3ZvaWQgTWVkaWFTZXNzaW9uOjpjYWxsQWN0aW9uSGFuZGxlcihjb25zdCBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzJiBhY3Rpb25EZXRhaWxzKQoreworICAgIGlmIChhdXRvIGhhbmRs
ZXIgPSBtX2FjdGlvbkhhbmRsZXJzLmdldChhY3Rpb25EZXRhaWxzLmFjdGlvbikpCisgICAgICAg
IGhhbmRsZXItPmhhbmRsZUV2ZW50KGFjdGlvbkRldGFpbHMpOworfQorCiBFeGNlcHRpb25Pcjx2
b2lkPiBNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVkaWFQb3NpdGlv
blN0YXRlPiYmIHN0YXRlKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKICAg
ICBpZiAoIXN0YXRlKSB7CiAgICAgICAgIG1fcG9zaXRpb25TdGF0ZSA9IFdURjo6bnVsbG9wdDsK
KyAgICAgICAgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIApAQCAtMTYxLDYgKzIyNyw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlh
U2Vzc2lvbjo6c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYK
ICAgICBtX3Bvc2l0aW9uU3RhdGUgPSBXVEZNb3ZlKHN0YXRlKTsKICAgICBtX2xhc3RSZXBvcnRl
ZFBvc2l0aW9uID0gbV9wb3NpdGlvblN0YXRlLT5wb3NpdGlvbjsKICAgICBtX3RpbWVBdExhc3RQ
b3NpdGlvblVwZGF0ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIG5vdGlmeVBvc2l0aW9u
U3RhdGVPYnNlcnZlcnMoKTsKKwogICAgIHJldHVybiB7IH07CiB9CiAKQEAgLTE4NSwxMSArMjUz
LDY0IEBAIERvY3VtZW50KiBNZWRpYVNlc3Npb246OmRvY3VtZW50KCkgY29uc3QKIAogdm9pZCBN
ZWRpYVNlc3Npb246Om1ldGFkYXRhVXBkYXRlZCgpCiB7CisgICAgbm90aWZ5TWV0YWRhdGFPYnNl
cnZlcnMoKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKE9ic2VydmVyJiBv
YnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fb2JzZXJ2ZXJz
LmFkZChvYnNlcnZlcik7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcihP
YnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBt
X29ic2VydmVycy5yZW1vdmUob2JzZXJ2ZXIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6Zm9y
RWFjaE9ic2VydmVyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyk7CisgICAgbV9vYnNlcnZlcnMuZm9yRWFjaChhcHBseSk7Cit9CisKK3ZvaWQg
TWVkaWFTZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9i
c2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5tZXRhZGF0
YUNoYW5nZWQobV9tZXRhZGF0YSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3Ro
aXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnBvc2l0aW9uU3RhdGVDaGFu
Z2VkKG1fcG9zaXRpb25TdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3Ro
aXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnBsYXliYWNrU3RhdGVDaGFu
Z2VkKG1fcGxheWJhY2tTdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlBY3Rpb25IYW5kbGVyT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW10o
YXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIuYWN0aW9uSGFuZGxlcnNDaGFuZ2Vk
KCk7CisgICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFTZXNzaW9uOjphY3Rpb25IYW5kbGVyc1VwZGF0
ZWQoKQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQordm9pZCBNZWRpYVNl
c3Npb246Om5vdGlmeVJlYWR5U3RhdGVPYnNlcnZlcnMoKQogeworICAgIGZvckVhY2hPYnNlcnZl
cihbdGhpc10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIucmVhZHlTdGF0ZUNo
YW5nZWQobV9yZWFkeVN0YXRlKTsKKyAgICB9KTsKIH0KKyNlbmRpZgogCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXgg
NzY3MmUzMmZjNzA2ZTM3ODExNmQ1ZWY3MzU0MmIxZGNmM2ZhYjc2Zi4uNDk2MWY0ZGZkNzIyNTk0
ZGQ1ZDQxZTQwNWUwMGQ4ODdiNDVlNTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVu
dFF1ZXVlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJK
U01lZGlhU2Vzc2lvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5oIgpAQCAtMzQsNiArMzcsNyBAQAogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbi5o
IgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCIKICNpbmNsdWRlICJNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNDQsMzggKzQ4LDEwMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFNZXRhZGF0YTsK
K2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgTmF2aWdhdG9yOwogCi1jbGFz
cyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb24+LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPiB7CitjbGFzcyBNZWRpYVNlc3Npb24KKyAgICA6
IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4KKyAgICAsIHB1YmxpYyBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcgorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQor
ICAgICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEKKyNlbHNlCisgICAgLCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPgorI2VuZGlmCit7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVNlc3Npb24+IGNy
ZWF0ZShOYXZpZ2F0b3ImKTsKICAgICB+TWVkaWFTZXNzaW9uKCk7CiAKICAgICBNZWRpYU1ldGFk
YXRhKiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEuZ2V0KCk7IH07CiAgICAg
dm9pZCBzZXRNZXRhZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJik7CisgICAgdm9pZCBtZXRh
ZGF0YVVwZGF0ZWQoKTsKIAogICAgIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgcGxheWJhY2tT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWJhY2tTdGF0ZTsgfTsKICAgICB2b2lkIHNldFBs
YXliYWNrU3RhdGUoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CiAKICAgICB2b2lkIHNldEFj
dGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0aW9uLCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9u
SGFuZGxlcj4mJik7CisKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQb3NpdGlvblN0YXRlKE9w
dGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mJik7CisgICAgT3B0aW9uYWw8TWVkaWFQb3NpdGlv
blN0YXRlPiBwb3NpdGlvblN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvblN0YXRlOyB9
CisKICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxkb3VibGU+IGN1cnJlbnRQb3NpdGlvbigp
IGNvbnN0OwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAgICAgCi0gICAgdm9p
ZCBtZXRhZGF0YVVwZGF0ZWQoKTsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKKyAgICBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3JlYWR5U3RhdGU7IH07CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUpOworCisgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRvci5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0Q29vcmRpbmF0b3IoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqKTsKKyNlbmRpZgor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgVmVjdG9yPFJl
ZjxNZWRpYU1ldGFkYXRhPj4mIHBsYXlsaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wbGF5bGlzdDsg
fQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFBsYXlsaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBWZWN0b3I8UmVmUHRyPE1lZGlhTWV0YWRhdGE+PiYmKTsKKyNlbmRpZgogCi0gICAgdm9p
ZCBhY3Rpb25IYW5kbGVyc1VwZGF0ZWQoKTsKICAgICBib29sIGhhc0FjdGlvbkhhbmRsZXIoTWVk
aWFTZXNzaW9uQWN0aW9uKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVkaWFT
ZXNzaW9uQWN0aW9uSGFuZGxlcj4gaGFuZGxlckZvckFjdGlvbihNZWRpYVNlc3Npb25BY3Rpb24p
IGNvbnN0OwogICAgIGJvb2wgaGFzQWN0aXZlQWN0aW9uSGFuZGxlcnMoKSBjb25zdCB7IHJldHVy
biAhbV9hY3Rpb25IYW5kbGVycy5pc0VtcHR5KCk7IH0KIAorICAgIHZvaWQgY2FsbEFjdGlvbkhh
bmRsZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYpOworCisgICAgY29uc3QgTG9n
Z2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAqbV9sb2dnZXIuZ2V0KCk7IH0KKworI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIC8vIEV2ZW50VGFyZ2V0CisgICAg
dXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOworI2Vu
ZGlmCisKKyAgICBjbGFzcyBPYnNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxPYnNlcnZl
cj4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7
CisKKyAgICAgICAgdmlydHVhbCB2b2lkIG1ldGFkYXRhQ2hhbmdlZChSZWZQdHI8TWVkaWFNZXRh
ZGF0YT4pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0
aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBwbGF5
YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSB7IH0KKyAgICAgICAg
dmlydHVhbCB2b2lkIGFjdGlvbkhhbmRsZXJzQ2hhbmdlZCgpIHsgfQorCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRl
Q2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSB7IH0KKyNlbmRpZgorICAgIH07CisgICAg
dm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOworICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2Jz
ZXJ2ZXImKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRpYVNlc3Npb24oTmF2aWdhdG9y
Jik7CiAKLSAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IHsgcmV0dXJuICptX2xvZ2dl
ci5nZXQoKTsgfQogICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2xvZ0lkZW50aWZpZXI7IH0KIAorICAgIHZvaWQgZm9yRWFjaE9ic2VydmVyKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mKTsKKyAgICB2b2lkIG5vdGlmeU1ldGFkYXRhT2JzZXJ2
ZXJzKCk7CisgICAgdm9pZCBub3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCk7CisgICAgdm9p
ZCBub3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2ZXJzKCk7CisgICAgdm9pZCBub3RpZnlBY3Rpb25I
YW5kbGVyT2JzZXJ2ZXJzKCk7CisgICAgdm9pZCBub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCk7
CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBFdmVudFRhcmdl
dEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1l
ZGlhU2Vzc2lvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisK
KyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVy
ZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorI2VuZGlmCisKICAgICBXZWFrUHRy
PE5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAgICAgUmVmUHRyPE1lZGlhTWV0YWRhdGE+IG1fbWV0
YWRhdGE7CiAgICAgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBtX3BsYXliYWNrU3RhdGUgeyBN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIH07CkBAIC04NSw2ICsxNTMsMTggQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPE1lZGlhU2Vzc2lvbkFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXI+LCBXVEY6OkludEhhc2g8TWVkaWFTZXNzaW9uQWN0aW9uPiwgV1RGOjpT
dHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVNlc3Npb25BY3Rpb24+PiBtX2FjdGlvbkhhbmRsZXJz
OwogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1f
bG9nSWRlbnRpZmllcjsKKworICAgIFdlYWtIYXNoU2V0PE9ic2VydmVyPiBtX29ic2VydmVyczsK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIE1lZGlhU2Vzc2lv
blJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5v
dGhpbmcgfTsKKyAgICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fY29vcmRpbmF0
b3I7CisgICAgVW5pcXVlUmVmPE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2
ZW50UXVldWU7CisjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQor
ICAgIFZlY3RvcjxSZWY8TWVkaWFNZXRhZGF0YT4+IG1fcGxheWxpc3Q7CisjZW5kaWYKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uaWRsCmluZGV4IGRlZDRhNzczOGEyM2Q5MzFlYjNiMGE2ODJiZTU3M2YwODMyNGQ0Mzcu
LjYxYTg3NDQyNzRiMjIzOGE2Y2VlZTkwMjhlZmM5MjI5YzNiYWVkNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw5
ICsyNiwxMCBAQAogWwogICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT04sCiAgICAgRXhwb3Nl
ZD1XaW5kb3csCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBFeHBvcnRNYWNy
bz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbiB7CisgICAgSlNHZW5l
cmF0ZVRvSlNPYmplY3QsCitdIGludGVyZmFjZSBNZWRpYVNlc3Npb24gOiBFdmVudFRhcmdldAor
ewogICAgIGF0dHJpYnV0ZSBNZWRpYU1ldGFkYXRhPyBtZXRhZGF0YTsKIAogICAgIGF0dHJpYnV0
ZSBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBsYXliYWNrU3RhdGU7CkBAIC0zNywzICszOCw2
IEBACiAKICAgICB1bmRlZmluZWQgc2V0UG9zaXRpb25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0
aW9uU3RhdGU/IHN0YXRlID0gbnVsbCk7CiB9OworCitNZWRpYVNlc3Npb24gaW5jbHVkZXMgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbjsKK01lZGlhU2Vzc2lvbiBpbmNsdWRlcyBNZWRpYVNl
c3Npb25QbGF5bGlzdE1peGluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaAppbmRleCA1Y2I2NDRmZjM2MmRlZDcz
NzAyYjEzM2YzZjIwYWQ4NjcwYjdmZjYxLi45YmM0ZjAwMTNiNDZiNTJhODFjMDAwNzk3MjJhMzYw
MTJmN2NjMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw2ICszOSw3IEBAIGVudW0gY2xhc3MgTWVk
aWFTZXNzaW9uQWN0aW9uIHsKICAgICBTa2lwYWQsCiAgICAgU3RvcCwKICAgICBTZWVrdG8sCisg
ICAgU2V0dHJhY2ssCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkBAIC01Niw3ICs1Nyw4
IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0
aW9uPiB7CiAgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6TmV4dHRyYWNrLAog
ICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNraXBhZCwKICAgICAgICAgV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTdG9wLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVNl
c3Npb25BY3Rpb246OlNlZWt0bworICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246
OlNlZWt0bywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTZXR0cmFjawog
ICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbAppbmRleCA0NjM1ZTY5NzM0ZWRhMTlkYzJh
N2NhZWQ5YTVmYzcxMDc0NTk4Y2Q0Li44Zjc2NWY2NGUzZGFjYmU3MTcxM2E0Zjg2YmI5YmEyYWI4
MmY0M2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25BY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNCArMzUsNyBAQAogICAgICJza2lwYWQi
LAogICAgICJzdG9wIiwKICAgICAic2Vla3RvIgorI2lmIGRlZmluZWQoRU5BQkxFX01FRElBX1NF
U1NJT05fUExBWUxJU1QpICYmIEVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNUCisgICAgLCAi
c2V0dHJhY2siCisjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmgKaW5kZXgg
NjQxZWE3MjRhY2E2NzA1ZDczNTA3ZTI4NzFjNTE3NDE3OTY5NmQ3Yy4uZjU5MDlkNDZmOGVhYzY2
ZDBmM2M5ZGQ3ZTc1MzJlMzYwNDY4ZDZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNyw2ICszNyw5IEBAIHN0cnVjdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIHsKICAgICBP
cHRpb25hbDxkb3VibGU+IHNlZWtPZmZzZXQ7CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBzZWVrVGlt
ZTsKICAgICBPcHRpb25hbDxib29sPiBmYXN0U2VlazsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9QTEFZTElTVCkKKyAgICBTdHJpbmcgdHJhY2tJZGVudGlmaWVyOworI2VuZGlmCiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCmluZGV4IDFhMWVmN2FlNzY1YWUwMmYy
MWUzMjMyYTEzNjRhOTZhMWFkZjE1NDcuLjJkOGM2MDczN2M2ZDY3ZmQxMjVlMTNlOTE2OThlY2Zh
ODAyNmMwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDQgKzMyLDYg
QEAKICAgICBkb3VibGU/IHNlZWtPZmZzZXQ7CiAgICAgZG91YmxlPyBzZWVrVGltZTsKICAgICBi
b29sZWFuPyBmYXN0U2VlazsKKworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX1BMQVlM
SVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0XSBET01TdHJpbmc/IHRy
YWNrSWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWRmNGU5MjE1NWYxYWMwMTVlNmM1MTc0ZDRiZWY2NDgxZTU5MzU2NwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDI0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlv
bi5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29u
c3Qgdm9pZCogbmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVp
bnQ2NF90IGxvZ0lkZW50aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOwor
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIp
OworfQorCitSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpjcmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZv
cm1Db29yZGluYXRvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25D
b29yZGluYXRvcihXVEZNb3ZlKHBsYXRmb3JtQ29vcmRpbmF0b3IpKSk7Cit9CisKK01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQorICAgIDogbV9wbGF0
Zm9ybUNvb3JkaW5hdG9yKFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRvcikpCisgICAgLCBtX2xv
Z2dlcihtYWtlUmVmKERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSkpCisgICAgLCBtX2xvZ0lkZW50
aWZpZXIobmV4dENvb3JkaW5hdG9yTG9nSWRlbnRpZmllcigpKQoreworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUik7CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnNldExvZ2dlciht
X2xvZ2dlci5jb3B5UmVmKCksIG1fbG9nSWRlbnRpZmllcik7Cit9CisKK01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjp+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ZvaWQg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVO
VElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgdGltZSk7CisKKyAgICBpZiAoIW1f
c2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBp
cyBOVUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29y
ZGluYXRvci0+c2Vla1RvKHRpbWUsIFt0aW1lLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigq
dGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8
RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghcHJvdGVjdGVk
VGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdU
Rk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2VyKCku
ZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBpZGVudGlmaWVyLCAiY29vcmRpbmF0
b3Iuc2Vla1RvIGZhaWxlZCEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAu
YWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpTZWVrdG8sCisgICAgICAgICAgICAuc2Vla1Rp
bWUgPSB0aW1lLAorICAgICAgICB9OworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24t
PmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOworCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQg
dGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAnc2Vla1RvJyBh
Y3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisK
K3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOwor
ICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAg
ICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAg
ICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cGxheShb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFi
bGUgeworICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgeworICAgICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Cisg
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPmxvZ2dlcigpLmVycm9yKHByb3RlY3RlZFRoaXMtPmxvZ0NoYW5u
ZWwoKSwgaWRlbnRpZmllciwgImNvb3JkaW5hdG9yLnBsYXkgZmFpbGVkISIpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWls
cyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBs
YXksCisgICAgICAgIH07CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbi0+Y2FsbEFj
dGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJv
bWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdwbGF5JyBhY3Rpb24gaGFu
ZGxlcj8KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHBy
b21pc2UpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKKyAgICBBTFdB
WVNfTE9HKGlkZW50aWZpZXIpOworCisgICAgaWYgKCFtX3Nlc3Npb24pIHsKKyAgICAgICAgRVJS
T1JfTE9HKGlkZW50aWZpZXIsICJNZWRpYVNlc3Npb24gaXMgTlVMTCEiKTsKKyAgICAgICAgcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBhdXNlKFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Cisg
ICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAg
ICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBp
ZGVudGlmaWVyLCAiY29vcmRpbmF0b3IucGF1c2UgZmFpbGVkISIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRh
aWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBhdXNlLAor
ICAgICAgICB9OworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25I
YW5kbGVyKGRldGFpbHMpOworCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2Ug
cmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAncGF1c2UnIGFjdGlvbiBoYW5kbGVy
PworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJ
REVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vz
c2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBO
VUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGlu
YXRvci0+c2V0VHJhY2sodHJhY2ssIFt0cmFjaywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
KnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFs
PEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXByb3RlY3Rl
ZFRoaXMtPm1fc2Vzc2lvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChX
VEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmxvZ2dlcigp
LmVycm9yKHByb3RlY3RlZFRoaXMtPmxvZ0NoYW5uZWwoKSwgaWRlbnRpZmllciwgImNvb3JkaW5h
dG9yLnNldFRyYWNrIGZhaWxlZCEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyB7CisgICAgICAgICAg
ICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpTZXR0cmFjaywKKyAgICAgICAgICAgIC50
cmFja0lkZW50aWZpZXIgPSB0cmFjaywKKyAgICAgICAgfTsKKyAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgICAgICAvLyBG
SVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVy
ZWQgJ3NldFRyYWNrJyBhY3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7
CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vz
c2lvbihNZWRpYVNlc3Npb24qIHNlc3Npb24pCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKKyAgICBtX3Nlc3Npb24gPSBtYWtlV2Vha1B0cihzZXNzaW9uKTsKKworICAgIGlmICht
X3Nlc3Npb24pCisgICAgICAgIG1fc2Vzc2lvbi0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2
b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25h
bDxNZWRpYVBvc2l0aW9uU3RhdGU+IHN0YXRlKQoreworICAgIGlmICghc3RhdGUpIHsKKyAgICAg
ICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZCh7IH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3NpdGlv
blN0YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVBvc2l0
aW9uU3RhdGUgeyBzdGF0ZS0+ZHVyYXRpb24sIHN0YXRlLT5wbGF5YmFja1JhdGUsIHN0YXRlLT5w
b3NpdGlvbiB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tT
dGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6
Ok5vbmUpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUpLCAiTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZTo6Tm9uZSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6
UGF1c2VkKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQpLCAiTWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZTo6UGF1c2VkIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGU6OlBsYXlpbmcpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpLCAiTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBhcyBleHBl
Y3RlZCIpOworCisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdl
ZChzdGF0aWNfY2FzdDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlPihzdGF0ZSkpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQorewor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZTo6SGF2ZU5vdGhpbmcpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nKSwg
Ik1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIGlzIG5vdCBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyBh
cyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlTWV0YWRhdGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGlz
IG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0
YXRlOjpIYXZlTWV0YWRhdGEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkg
PT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKSwgIk1lZGlhU2Vzc2lvblJl
YWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhIGFzIGV4cGVj
dGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2
ZUZ1dHVyZURhdGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgaXMg
bm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU6OkhhdmVGdXR1cmVEYXRhIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSkg
PT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEpLCAiTWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhIGFzIGV4cGVjdGVk
Iik7CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRp
Y19jYXN0PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU+KHN0YXRlKSk7Cit9CisKK1dURkxvZ0NoYW5uZWwmIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpsb2dDaGFubmVsKCkKK3sKKyAgICByZXR1cm4gTG9nTWVkaWE7Cit9CisKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ3Y2VjODgwYjM1M2Y0NmJjYmQ4NzBmZjVkYmMxOTJjOTk5
N2M5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisKKyNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Cisj
aW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBs
YXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2NsYXNzIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CitjbGFzcyBNZWRpYVNlc3Npb247CisKK2NsYXNzIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I+LCBwdWJsaWMgTWVkaWFTZXNzaW9uOjpPYnNlcnZlciB7CitwdWJsaWM6CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRl
KFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKKworICAgIHZvaWQgc2Vla1RvKGRvdWJs
ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgcGxheShET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJik7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcmLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJik7CisKKyAgICB2b2lkIHNldE1lZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24qKTsK
KworICAgIC8vIE1lZGlhU2Vzc2lvbjo6T2JzZXJ2ZXIKKyAgICB2b2lkIHBvc2l0aW9uU3RhdGVD
aGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIGZpbmFsOworICAgIHZvaWQgcGxh
eWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CisgICAg
dm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7CisKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dl
cigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nZ2VyOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIHN0YXRpYyBXVEZM
b2dDaGFubmVsJiBsb2dDaGFubmVsKCk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNz
TmFtZSgpIHsgcmV0dXJuICJNZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KKworICAgIFdlYWtQ
dHI8TWVkaWFTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I+IG1fcGxhdGZvcm1Db29yZGluYXRvcjsKKyAgICBSZWY8Y29uc3QgTG9nZ2Vy
PiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3NlZWtUb1Byb21pc2U7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPERPTVByb21pc2VEZWZlcnJlZDx2b2lkPj4gbV9wbGF5UHJvbWlz
ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3BhdXNl
UHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBt
X3NldFRyYWNrUHJvbWlzZTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVjMDVhYjg5MGVhMTgyNmQwZmU3MTMwYjVkMzJiNDJkN2I0NjIzZDkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRp
b25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLAorICAgIEVuYWJsZWRCeVNldHRpbmc9TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAgRXhwb3J0TWFj
cm89V0VCQ09SRV9FWFBPUlQsCitdIGludGVyZmFjZSBNZWRpYVNlc3Npb25Db29yZGluYXRvciB7
CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNlZWtUbyh1bnJlc3RyaWN0ZWQgZG91YmxlIHRpbWUp
OworICAgIFByb21pc2U8dW5kZWZpbmVkPiBwbGF5KCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+
IHBhdXNlKCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNldFRyYWNrKERPTVN0cmluZyB0cmFj
a0lkZW50aWZpZXIpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzc4Y2MzMmZkMDMxOTRkMTZkNjllNjhkZTllNmQ1YTA4MDcwOWQyOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTiwKKyAgICBFbmFibGVkQnlTZXR0aW5n
PU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLAorXSBpbnRlcmZhY2UgbWl4aW4gTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNaXhpbiB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yPyBjb29yZGluYXRvcjsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uY29v
cmRpbmF0b3JjaGFuZ2U7CisgICAgYXR0cmlidXRlIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgcmVh
ZHlTdGF0ZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgKaW5kZXggZDRhZGJkNTQx
Nzk0ZTVhMTA5NWJlNTRhMjNiYjNlYjllYmU3NDc1Ni4uNzA2M2M3OGUzZDc4YmZhZDM4OGRmMzA5
NDU0YTljZjdhMzU0ZDJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaApAQCAtMjks
NyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZSB7CitlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUg
OiB1aW50OF90IHsKICAgICBOb25lLAogICAgIFBhdXNlZCwKICAgICBQbGF5aW5nLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxh
eWxpc3RNaXhpbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25QbGF5bGlzdE1peGluLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzYyMjA3MTI0M2E2OTMwNjQ3
NzQ4MjY3MjBiOTk2MzZlOTI2MDFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwKQEAgLTAs
MCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9O
X1BMQVlMSVNULAorICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxheWxpc3QsCitd
IGludGVyZmFjZSBtaXhpbiBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGluIHsKKyAgICBbU2V0dGVy
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1l
ZGlhTWV0YWRhdGE+IHBsYXlsaXN0OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NDUyM2RkNTRhNzFlNjY1NGExN2JiMGM3NzRmNzg4MTYzMzdmNDY1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZS5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2VudW0gY2xhc3MgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSA6IHVpbnQ4X3Qgewor
ICAgIEhhdmVOb3RoaW5nLAorICAgIEhhdmVNZXRhZGF0YSwKKyAgICBIYXZlQ3VycmVudERhdGEs
CisgICAgSGF2ZUZ1dHVyZURhdGEsCisgICAgSGF2ZUVub3VnaERhdGEsCit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk3M2YyYWE1NGM4
NjhmM2I0NjVmOWI1NWU2MTkwNWQ1ZWM0Yjk0OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsCkBA
IC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUiwKK10gZW51bSBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHsKKyAgICAi
aGF2ZU5vdGhpbmciLAorICAgICJoYXZlTWV0YWRhdGEiLAorICAgICJoYXZlQ3VycmVudERhdGEi
LAorICAgICJoYXZlRnV0dXJlRGF0YSIsCisgICAgImhhdmVFbm91Z2hEYXRhIgorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlh
U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9y
TWVkaWFTZXNzaW9uLmgKaW5kZXggMDQyMTk2MTdjMjM4NjkzMDEwOGE2ODYwYjIxMDEyNjljZTUz
Njg5ZS4uN2QyYmYzMDY4YmY1NjdjMWM2ZjhhM2MyZTg5NTRmYWFiNGQyMzNkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9y
TWVkaWFTZXNzaW9uLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IE5h
dmlnYXRvck1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsKICAgICB+TmF2aWdhdG9yTWVkaWFTZXNz
aW9uKCk7CiAKLSAgICBzdGF0aWMgTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oTmF2aWdhdG9y
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE1lZGlhU2Vzc2lvbiYgbWVkaWFTZXNzaW9u
KE5hdmlnYXRvciYpOwogICAgIE1lZGlhU2Vzc2lvbiYgbWVkaWFTZXNzaW9uKCk7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IDRiNDE1ZTlmY2JkNGI4ZDg2N2RmNWRhN2U3YzYxMzNmOWIx
OTQwZWMuLmE3NWEyZjMzNWRkYTU1NzMyODQzZGFiMDBhNjMxODk4NGI4NDRhNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0xMzEsNiArMTMxLDcgQEAgTW9kdWxlcy9tZWRpYWNhcGFiaWxpdGllcy9NZWRp
YUNhcGFiaWxpdGllcy5jcHAKIE1vZHVsZXMvbWVkaWFjYXBhYmlsaXRpZXMvTmF2aWdhdG9yTWVk
aWFDYXBhYmlsaXRpZXMuY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNw
cAogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAorTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9O
YXZpZ2F0b3JNZWRpYVNlc3Npb24uY3BwCiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250
cm9sc0hvc3QuY3BwCiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvQmxvYkV2ZW50LmNwcApAQCAtMTk5
OCw2ICsxOTk5LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGhVdGlsaXRp
ZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtVGltZVJhbmdlcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcApAQCAtMzIy
Niw2ICszMjI4LDcgQEAgSlNNZWRpYUtleXMuY3BwCiBKU01lZGlhS2V5c1JlcXVpcmVtZW50LmNw
cAogSlNNZWRpYUxpc3QuY3BwCiBKU01lZGlhTWV0YWRhdGEuY3BwCitKU01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcAogSlNNZWRpYU1ldGFkYXRhSW5pdC5jcHAKIEpTTWVkaWFQb3NpdGlvblN0
YXRlLmNwcAogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAKQEAgLTMyMzYsNiArMzIzOSw3IEBAIEpTTWVk
aWFTZXNzaW9uQWN0aW9uRGV0YWlscy5jcHAKIEpTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5j
cHAKIEpTTWVkaWFTZXNzaW9uQWN0aW9uLmNwcAogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
LmNwcAorSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmNwcAogSlNNZWRpYVNlc3Npb24uY3BwCiBK
U01lZGlhU291cmNlLmNwcAogSlNNZWRpYVN0cmVhbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlY2FlNTAwMzRlYWEyYzY2
Y2FiNmNmMjcyYmI3MDFmZDk4Yjg0NDI1Li42NTg0OTgxNThhZmJlODI3NGZlMWU0MjIzMDM0Nzhj
NDA4MjViYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC05MCw2ICs5MCw3IEBACiAJCTA3MDc1NkQ0MTQyMzlBNEYwMDQxNDE2
MSAvKiBKU0hUTUxUcmFja0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MDc1NkQyMTQyMzlBNEUwMDQxNDE2MSAvKiBKU0hUTUxUcmFja0Vs
ZW1lbnQuaCAqLzsgfTsKIAkJMDcwNzU2REUxNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNr
Q3VlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3
NTZEODE0MjM5QjRCMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUuaCAqLzsgfTsKIAkJMDcwNzU2
RTAxNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwNzU2REExNDIzOUI0RTAwNDE0MTYx
IC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oICovOyB9OworCQkwNzA4RjJCNjI1RERFNDVEMDA0Rjkw
ODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8q
IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLzsgfTsKIAkJMDcwOUQ3OEYxQUU1
NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlENzhEMUFFNTU1NTQwMDRFNDJGOCAv
KiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcwOUQ3OTIxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlh
U2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcwOUQ3OTAxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMuY3BwICovOyB9OwogCQkwNzA5RDc5MzFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVk
aWFTZXNzaW9uTWFuYWdlck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcwOUQ3OTExQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXJNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTIzLDYgKzEyNCw3IEBACiAJCTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1v
dGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3Njcx
RTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVD
IC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3M0I4NzY5MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzQw
QjE0NDI1REUzMUY4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NDBCMTQzMjVE
RTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovOyB9Owog
CQkwNzRFODJCQjE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzRFODJCOTE4QTY5RjBF
MDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1MDMzQTgyNTJCRDM2ODAwRjcwQ0UzIC8qIFZp
ZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDc1MDMzQTYyNTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJh
Y2tRdWFsaXR5TWV0cmljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3NTM4NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAx
MTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsKQEAgLTU2OTIsNiAr
NTY5NCw3IEBACiAJCTA3MDc1NkQ4MTQyMzlCNEIwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFja0N1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA3NTZEOTE0MjM5QjRDMDA0MTQxNjEgLyogSlNU
ZXh0VHJhY2tDdWVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTVGV4dFRyYWNrQ3VlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
MDc1NkRBMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcwOUQ3OEMxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlENzhEMUFF
NTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OTAxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vz
c2lvbk1hbmFnZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01NzgzLDYgKzU3ODYsMTQgQEAKIAkJMDcyQUUxRTMxODNDMDc0MTAwMEE1OTg4IC8qIFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBRdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3MkFFMUU0MTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFF1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzJDQTg2MDE2
Q0I0REMzMDA4QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJCRkIyNURCMzhCQzAwQTEzNTBFIC8qIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvci5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzAzMjVEQzZCRDMwMEExMzUw
RSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkMwNTI1
REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwNzJEQkMwNjI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA3MjVEQzZFREEwMEExMzUwRSAvKiBK
U01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM2
QjczMDI2MDk0QTM3MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTA3MzZCNzMyMjYwOTU1NTQwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25QbGF5
bGlzdE1peGluLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3MzMyNjBBN0I2NDAwRTA2OTk0IC8qIE1lZGlh
TWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhp
bi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NERDMTlFRTJDNTIwMEU1
QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3Mzc5NEUzMTlFRTJGRjIwMEU1QTA0NSAvKiBKU1JUQ0NvbmZpZ3VyYXRpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSVENDb25maWd1cmF0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0RTQxOUVFMkZGMjAwRTVB
MDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1JUQ0NvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU4MDQsNiArNTgxNSwxMCBAQAogCQkwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9T
YW1wbGVCdWZmZXJMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNCODc2
NDFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyog
QXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzQwQjE0MTI1REUzMUE4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNzQwQjE0MzI1REUzMUE5MDBFMzhEQkEgLyogTW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDQ3MUZE
MjVFMTgwMDUwMDU0QjIzMSAvKiBNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDc0NDcxRkYyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzQ0RUNFQjFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hhcmVkVW5pdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrQXVkaW9TaGFyZWRVbml0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VDMUUwQzRBRTUwMDBEMDk0NCAv
KiBNb2NrQXVkaW9TaGFyZWRVbml0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTW9ja0F1ZGlvU2hhcmVkVW5pdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc0NkQzMEEyMTQ2RUEzNzAwM0RERjg0IC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbWFnZVRyYW5zZmVy
U2Vzc2lvblZULm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTkyMCw2ICs1OTM1
LDcgQEAKIAkJMDdFMTE2QjAxNDg5QzlBMTAwRUM1QUNFIC8qIEpTVGV4dFRyYWNrQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFMTE3MDYxNDg5RUJFQjAwRUM1
QUNFIC8qIEpTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDdFM0RGRDAxQTlFNzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJn
ZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5YmFja1Rhcmdl
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0U1RjM5MjI1RUFBOTFGMDBBODUz
QUQgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDdFOUUxMkQxOEY1RTI3NjAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDdFOUUxMkYxOEY2MkIzNzAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0VFNzZFOTFCRTk2REIwMDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTc5Nywx
MCArOTgxMywxMCBAQAogCQk2RTBFNTY5QTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVk
UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdFJvdW5kZWRSZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkJGMTEyNjMzODUwMEE3QkUw
MiAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRl
eHRHTENHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNz
Q29udGV4dEdMQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RTI0MkIyNjIz
MzU5M0Q3MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5jcHA7IHBhdGggPSAuLi8u
Li8uLi8uLi8uLi8uLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTZFMjQyQjI4MjMzNTkzRDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVF
VEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmg7IHBhdGgg
PSAuLi8uLi8uLi8uLi8uLi8uLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk2RTI0MkIyOTIzMzU5M0Q3MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlRVRDMS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVF
VEMxLmNwcDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFMjQyQjJBMjMzNTkzRDgwMDJDQURENCAvKiBKU1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUVUQzEuaDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0Rl
YnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RTI0MkIyNjIzMzU5M0Q3MDAyQ0FERDQg
LyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTZFMjQyQjI4MjMzNTkzRDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVF
VEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMjQyQjI5MjMzNTkzRDcwMDJDQURENCAvKiBKU1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2
RTI0MkIyQTIzMzU5M0Q4MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjdGMjQyMjI5OENFNEIwMEYxRjYzMiAvKiBHcmFwaGlj
c0NvbnRleHRHTEFOR0xFLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RTI3RjI0MzIyOUM5Rjg0MDBGMUY2MzIgLyogRXh0ZW5zaW9uc0dMQU5HTEUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5zaW9uc0dMQU5HTEUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTI3RjI0NDIyOUM5RjhEMDBGMUY2MzIgLyog
RXh0ZW5zaW9uc0dMQU5HTEUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0
ZW5zaW9uc0dMQU5HTEUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NjAzLDYg
KzE5NjE5LDggQEAKIAkJCQk1MTA1OEFEQTFENjc5MjU3MDA5QTUzOEMgLyogTW9ja0dhbWVwYWRQ
cm92aWRlci5oICovLAogCQkJCTQxNTdFQkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb24uY3BwICovLAogCQkJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAv
KiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCAqLywKKwkJCQkwNzQwQjE0MzI1REUzMUE5
MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJCQkwNzQw
QjE0MTI1REUzMUE4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8s
CiAJCQkJMkQ2RjNFOEExQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5jcHAgKi8s
CiAJCQkJMkQ2RjNFOEIxQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5oICovLAog
CQkJCTJENkYzRThDMUMxRUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXkuaWRsICovLApA
QCAtMjY5MTIsNiArMjY5MzAsOCBAQAogCQkJCTU1MDY0MEFEMjQwNzU2REEwMEFBRTA0NSAvKiBQ
bGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oICovLAogCQkJCTA1NjJGOTYwMTU3M0Y4OEYwMDMx
Q0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi8sCiAJCQkJQ0VFRkNEN0IxOURCMzNEQzAwMzg3NkQ3
IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAorCQkJCTA3RTVGMzkyMjVFQUE5
MUYwMEE4NTNBRCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJ
CQkwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oICovLAogCQkJCTA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9ybVRleHRU
cmFjay5oICovLAogCQkJCTA3NEU4MkI4MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVS
YW5nZXMuY3BwICovLAogCQkJCTA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRp
bWVSYW5nZXMuaCAqLywKQEAgLTI4MzU1LDYgKzI4Mzc1LDcgQEAKIAkJCQlDRERERUEyQzI1MzhD
RTA0MDBBMTMwMEMgLyogTWVkaWFNZXRhZGF0YS5pZGwgKi8sCiAJCQkJQ0REREVBMzAyNTM4Q0Ux
RTAwQTEzMDBDIC8qIE1lZGlhTWV0YWRhdGFJbml0LmggKi8sCiAJCQkJQ0REREVBMkYyNTM4Q0Ux
RTAwQTEzMDBDIC8qIE1lZGlhTWV0YWRhdGFJbml0LmlkbCAqLywKKwkJCQkwNzM2QjczMzI2MEE3
QjY0MDBFMDY5OTQgLyogTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsICovLAogCQkJCUNE
RERFQTM0MjUzOENFNjIwMEExMzAwQyAvKiBNZWRpYVBvc2l0aW9uU3RhdGUuaCAqLywKIAkJCQlD
RERERUEzMzI1MzhDRTYyMDBBMTMwMEMgLyogTWVkaWFQb3NpdGlvblN0YXRlLmlkbCAqLywKIAkJ
CQlDRERERUEyNDI1MzhDRDgwMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uLmNwcCAqLywKQEAgLTI4
MzY2LDggKzI4Mzg3LDE1IEBACiAJCQkJQ0REREVBMzUyNTM4Q0U3MDAwQTEzMDBDIC8qIE1lZGlh
U2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsICovLAogCQkJCUNERERFQTNBMjUzOEU5QzIwMEExMzAw
QyAvKiBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmggKi8sCiAJCQkJQ0REREVBMzkyNTM4RTlD
MjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaWRsICovLAorCQkJCTA3MkRC
QzA1MjVEQzZCRDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJ
CQkJMDcyREJDMDMyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgg
Ki8sCisJCQkJMDcyREJCRkIyNURCMzhCQzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmlkbCAqLywKKwkJCQkwNzM2QjczMDI2MDk0QTM3MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNaXhpbi5pZGwgKi8sCiAJCQkJQ0REREVBMjkyNTM4Q0RDQjAwQTEzMDBDIC8q
IE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCAqLywKIAkJCQlDRERERUEyODI1MzhDRENCMDBB
MTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgKi8sCisJCQkJMDczNkI3MzIy
NjA5NTU1NDAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsICovLAorCQkJ
CTA3NDQ3MUZEMjVFMTgwMDUwMDU0QjIzMSAvKiBNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggKi8s
CisJCQkJMDc0NDcxRkYyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUu
aWRsICovLAogCQkJCUNERERFQTI1MjUzOENEQUIwMEExMzAwQyAvKiBOYXZpZ2F0b3IrTWVkaWFT
ZXNzaW9uLmlkbCAqLywKIAkJCQlDRERERUEyNzI1MzhDREFCMDBBMTMwMEMgLyogTmF2aWdhdG9y
TWVkaWFTZXNzaW9uLmNwcCAqLywKIAkJCQlDRERERUEyNjI1MzhDREFCMDBBMTMwMEMgLyogTmF2
aWdhdG9yTWVkaWFTZXNzaW9uLmggKi8sCkBAIC0yODM5NCw2ICsyODQyMiw4IEBACiAJCQkJQ0RE
REVBNDAyNTM5MTFEQjAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oICov
LAogCQkJCUNERERFQTREMjUzOTEzQkIwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhh
bmRsZXIuY3BwICovLAogCQkJCUNERERFQTRFMjUzOTEzQkMwMEExMzAwQyAvKiBKU01lZGlhU2Vz
c2lvbkFjdGlvbkhhbmRsZXIuaCAqLywKKwkJCQkwNzJEQkMwNzI1REM2RURBMDBBMTM1MEUgLyog
SlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDcyREJDMDYyNURDNkVEQTAw
QTEzNTBFIC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQlDRERERUE0NjI1
MzkxMUREMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmNwcCAqLywKIAkJ
CQlDRERERUE0MjI1MzkxMURDMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
LmggKi8sCiAJCQkpOwpAQCAtMzQyOTEsNiArMzQzMjEsNyBAQAogCQkJCUY1NDRGNzg5MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VFRkNE
N0MxOURCMzNEQzAwMzg3NkQ3IC8qIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDcwRTA5MTkxODc1RUVGQzAwM0ExRDNDIC8qIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzA4RjJCNjI1RERFNDVEMDA0RjkwODYgLyog
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdG
OTQ0MTYxODY0RDA0NjAwNUQzMUNCIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM1QzQ3NjkwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91
c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU5ODkwNTgxNEU5QzI5OTAwRThEMThCIC8q
IFBsYXRmb3JtUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjE5Miw2ICszNjIyMyw3
IEBACiAJCQkJNTEwNThBREIxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxMDU4QUREMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFBy
b3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNTdFQkZBMUUzQUI2NzkwMEFDOUZFOSAv
KiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc0
MEIxNDQyNURFMzFGODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRDZGM0U5MDFDMUVDQjI3MDA2MURCRDQgLyogTW9ja1BhZ2VP
dmVybGF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTdGMDQ3MTlERDQxM0MwMDFFRTlDMyAv
KiBNb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFBRkVERTcx
RjhCRkY2RDAwODcwMTNGIC8qIE1vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKaW5kZXggNjA4OGU2MjJiZGE1ZWQzNGIxYTJmMGMzY2YyMmQ1YzQ2NGMwNmYwZC4uODZlYWFh
MDBmMTZiYmI2ZjViZmZhNGI4OThhYWYxNzkxYWUzNzgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTcxLDYgKzE3MSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhNZWRpYVF1ZXJ5TGlzdEV2ZW50KSBcCiAg
ICAgbWFjcm8oTWVkaWFSZWNvcmRlcikgXAogICAgIG1hY3JvKE1lZGlhUmVjb3JkZXJFcnJvckV2
ZW50KSBcCisgICAgbWFjcm8oTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpIFwKICAgICBtYWNybyhN
ZWRpYVNvdXJjZSkgXAogICAgIG1hY3JvKE1lZGlhU3RyZWFtKSBcCiAgICAgbWFjcm8oTWVkaWFT
dHJlYW1UcmFjaykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggMTM5NDQ0Mzk4MTQ2MDkw
OWVmMmEwZmU1YmM3ZDc5YTk5YjcyZTU1NS4uMmM2ODA3ZGNhNjU3ZjY1MDJiMjBmNDFjNWFkYTJl
ZTYxYjNmMmU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xMDEsNiArMTAxLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKGNvbm5lY3RpbmcpIFwKICAgICBtYWNybyhj
b250ZXh0bWVudSkgXAogICAgIG1hY3JvKGNvbnRyb2xsZXJjaGFuZ2UpIFwKKyAgICBtYWNybyhj
b29yZGluYXRvcmNoYW5nZSkgXAogICAgIG1hY3JvKGNvcHkpIFwKICAgICBtYWNybyhjdWVjaGFu
Z2UpIFwKICAgICBtYWNybyhjdXQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluCmluZGV4IDY5NmVhOWNlYmQyMWQxNDlhZWE1ZTBiYjY0MzdhY2VmYjhjYTIwMzQuLjdh
MmMwYThkOGMwNzYxOWQwZTY3YjIyN2EzMDRlNjJhY2Y4OWVlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtMjMsNiArMjMsNyBAQCBNZWRpYURldmljZXMg
Y29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBNZWRpYUtleVNlc3Npb24gY29uZGl0aW9uYWw9RU5D
UllQVEVEX01FRElBCiBNZWRpYVF1ZXJ5TGlzdAogTWVkaWFSZWNvcmRlciBjb25kaXRpb25hbD1N
RURJQV9TVFJFQU0KK01lZGlhU2Vzc2lvbiBjb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SCiBNZWRpYVNvdXJjZSBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKIE1lZGlhU3RyZWFt
IGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogTWVkaWFTdHJlYW1UcmFjayBjb25kaXRpb25hbD1N
RURJQV9TVFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgKaW5kZXggY2UxYzNhNTY4
MmZmMWI3ZGEzOThmOWMzYTQ0MGE3NDk3ZDkzMmYxOS4uNjc5ZmI5Yzg5ZGFhNzg4YmJiZjVhNzU3
NWQ5Y2QyMTE5MDQ2MjU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0Nh
bGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFu
ZGxlRXZlbnQoY29uc3QgU3RyaW5nJiBkYXRhKSA9IDA7CiAKICAgICAvLyBIZWxwZXIgdG8gcG9z
dCBjYWxsYmFjayB0YXNrLgotICAgIHZvaWQgc2NoZWR1bGVDYWxsYmFjayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBkYXRhKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNjaGVkdWxlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYg
ZGF0YSk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMTc4NTExMzk5ZjQxNWY3ODFiMzJhYWVl
NzZjMTEzZWIxN2ViY2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsx
LDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUp
Cit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlTm90aGluZyIpLAorICAgICAg
ICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZU1ldGFkYXRhIiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJIYXZlQ3VycmVudERhdGEiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIkhhdmVGdXR1cmVEYXRhIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NU
UklOR19JTVBMKCJIYXZlRW5vdWdoRGF0YSIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydCgh
c3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRp
YVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlTm90aGluZyBpcyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRp
YVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEpID09IDEsICJNZWRpYVNlc3Npb25SZWFk
eVN0YXRlOjpIYXZlTWV0YWRhdGEgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKSA9PSAyLCAiTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7
CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhKSA9
PSAzLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgaXMgbm90IDMgYXMg
ZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVu
b3VnaERhdGEpID09IDQsICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSBp
cyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KHN0
YXRlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0
aWNfY2FzdDxzaXplX3Q+KHN0YXRlKV07Cit9CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25U
b1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlIHN0YXRlKQoreworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9uZSIp
LAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGF1c2VkIiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJQbGF5aW5nIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZTo6Tm9uZSBpcyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQpID09IDEsICJNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlOjpQYXVzZWQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZykgPT0gMiwgIk1lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGU6OlBsYXlpbmcgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihzdGF0ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJl
dHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSldOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTBkYzUx
ZDJhNmY4MGFiYzk3YWE2MDdkOWU5YTUxMDE1MGYzMmVkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgIkV4Y2VwdGlv
bi5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CisjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvcj4geworcHVibGljOgorICAgIHZpcnR1YWwgflBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKKyAgICB1c2luZyBTZWVrQ29tcGxl
dGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
Jik+OworICAgIHZpcnR1YWwgdm9pZCBzZWVrVG8oZG91YmxlLCBTZWVrQ29tcGxldGVkQ2FsbGJh
Y2smJikgPSAwOworCisgICAgdXNpbmcgUGxheUNvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQg
cGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJikgPSAwOworCisgICAgdXNpbmcgUGF1c2VDb21w
bGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9u
PiYmKT47CisgICAgdmlydHVhbCB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVkQ2FsbGJhY2smJikg
PSAwOworCisgICAgdXNpbmcgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47CisgICAgdmlydHVhbCB2b2lkIHNl
dFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisK
KyAgICB2b2lkIHNldExvZ2dlcihjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9n
SWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIG1fbG9nZ2VyID0gbWFrZVJlZlB0cihsb2dnZXIp
OworICAgICAgICBtX2xvZ0lkZW50aWZpZXIgPSBsb2dJZGVudGlmaWVyOworICAgIH0KKworICAg
IHN0cnVjdCBNZWRpYVBvc2l0aW9uU3RhdGUgeworICAgICAgICBkb3VibGUgZHVyYXRpb24gPSBz
dGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7CisgICAgICAgIGRvdWJsZSBw
bGF5YmFja1JhdGUgPSAxOworICAgICAgICBkb3VibGUgcG9zaXRpb24gPSAwOworICAgIH07CisK
KyAgICBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgOiB1aW50OF90IHsKKyAgICAg
ICAgSGF2ZU5vdGhpbmcsCisgICAgICAgIEhhdmVNZXRhZGF0YSwKKyAgICAgICAgSGF2ZUN1cnJl
bnREYXRhLAorICAgICAgICBIYXZlRnV0dXJlRGF0YSwKKyAgICAgICAgSGF2ZUVub3VnaERhdGEs
CisgICAgfTsKKworICAgIGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSA6IHVp
bnQ4X3QgeworICAgICAgICBOb25lLAorICAgICAgICBQYXVzZWQsCisgICAgICAgIFBsYXlpbmcs
CisgICAgfTsKKworICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25h
bDxNZWRpYVBvc2l0aW9uU3RhdGU+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVD
aGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxh
eWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgPSAwOworCitwcm90
ZWN0ZWQ6CisgICAgZXhwbGljaXQgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0g
ZGVmYXVsdDsKKworICAgIGNvbnN0IExvZ2dlciogbG9nZ2VyUHRyKCkgY29uc3QgeyByZXR1cm4g
bV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1l
KCkgY29uc3QgeyByZXR1cm4gIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9Cisg
ICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IHsgcmV0dXJuIExvZ01lZGlhOyB9
CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29u
c3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworfTsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUpOworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOworCit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3NjM0MDlmNjYxYTI3MTlkYWJmMDkzM2UwZjg5ZDJl
MDJjZWM2NGY3Li43NDJlZTdkZjdiMjkwNzAwZTA3OGQ0ZmMwNDY5YmEzZTE4YTExNzhlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMzcsNiArMzM3LDEyIEBACiAjaW5j
bHVkZSA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oIgorI2luY2x1ZGUgIk1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1
ZGUgIk5hdmlnYXRvck1lZGlhU2Vzc2lvbi5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKICNpbmNsdWRlICJJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCIKICNlbmRpZgpA
QCAtNjExMiw5ICs2MTE4LDQwIEBAIHZvaWQgSW50ZXJuYWxzOjpsb2FkQXJ0d29ya0ltYWdlKFN0
cmluZyYmIHVybCwgQXJ0d29ya0ltYWdlUHJvbWlzZSYmIHByb21pc2UpCiAgICAgfSk7CiAgICAg
bV9hcnR3b3JrTG9hZGVyLT5yZXF1ZXN0SW1hZ2VSZXNvdXJjZSgpOwogfQotCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorRXhjZXB0aW9uT3I8dm9pZD4g
SW50ZXJuYWxzOjpyZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIp
Cit7CisgICAgaWYgKG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpCisgICAgICAgIHJldHVybiB7
IH07CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOworICAgIGlmICgh
ZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5kb21XaW5kb3coKSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgaWYgKCFkb2N1bWVudC0+c2V0dGlu
Z3MoKS5tZWRpYVNlc3Npb25Db29yZGluYXRvckVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgYXV0byYgc2Vzc2lvbiA9IE5h
dmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uKGRvY3VtZW50LT5kb21XaW5kb3coKS0+
bmF2aWdhdG9yKCkpOworICAgIGF1dG8gbW9jayA9IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6Y3JlYXRlKGNvbnRleHQsIFdURk1vdmUobGlzdGVuZXIpKTsKKyAgICBtX21vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvciA9IG1vY2sucHRyKCk7CisgICAgbV9tZWRpYVNlc3Npb25Db29yZGlu
YXRvciA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUobW9jay5nZXQoKSk7CisgICAg
c2Vzc2lvbi5zZXRDb29yZGluYXRvcihtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmdldCgpKTsK
KworICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsczo6c2V0
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKGJvb2wgc2hvdWxk
RmFpbCkKK3sKKyAgICBpZiAoIW1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKQorICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIG1fbW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLT5zZXRDb21tYW5kc1Nob3VsZEZhaWwoc2hvdWxkRmFpbCk7
CisgICAgcmV0dXJuIHsgfTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikKKwog
Y29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzdHJpbmcoUGFydGlhbE9yZGVyaW5nIG9yZGVyaW5nKQog
ewogICAgIGlmIChpc19sdChvcmRlcmluZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCA2MGVjYzQ4OGI0MzIwNzdlYjJlMzYxMmMwNmZiNGU5OGRhNmFkNjZiLi4yMTNkODdjZWY2
NGFkNWFkZTZiYTAyNTgwNzQ4MWU1OTg5MDk3ODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTEzNiw2ICsxMzYsMTAgQEAgY2xhc3MgV2ViWFJUZXN0OwogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQogY2xhc3MgTWVkaWFTZXNzaW9uOwogc3RydWN0IE1lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHM7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCitjbGFz
cyBNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKK2NsYXNzIE1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjsKKyNlbmRpZgogI2VuZGlmCiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNz
IERPTVByb21pc2VEZWZlcnJlZDsKQEAgLTEwOTMsMTAgKzEwOTcsMTcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIEV4Y2VwdGlvbk9yPGRvdWJsZT4gY3VycmVudE1l
ZGlhU2Vzc2lvblBvc2l0aW9uKGNvbnN0IE1lZGlhU2Vzc2lvbiYpOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNlbmRNZWRpYVNlc3Npb25BY3Rpb24oTWVkaWFTZXNzaW9uJiwgY29uc3QgTWVkaWFT
ZXNzaW9uQWN0aW9uRGV0YWlscyYpOwotICAgIHVzaW5nIEFydHdvcmtJbWFnZVByb21pc2UgPSBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEltYWdlRGF0YT4+OworCisgICAgICAgIHVz
aW5nIEFydHdvcmtJbWFnZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEltYWdlRGF0YT4+OwogICAgIHZvaWQgbG9hZEFydHdvcmtJbWFnZShTdHJpbmcmJiwgQXJ0d29y
a0ltYWdlUHJvbWlzZSYmKTsKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYpOwor
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1h
bmRzU2hvdWxkRmFpbChib29sKTsKICNlbmRpZgogCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NF
U1NJT04pCisKICAgICBlbnVtIFRyZWVUeXBlIDogdWludDhfdCB7IFRyZWUsIFNoYWRvd0luY2x1
ZGluZ1RyZWUsIENvbXBvc2VkVHJlZSB9OwogICAgIFN0cmluZyB0cmVlT3JkZXIoTm9kZSYsIE5v
ZGUmLCBUcmVlVHlwZSk7CiAgICAgU3RyaW5nIHRyZWVPcmRlckJvdW5kYXJ5UG9pbnRzKE5vZGUm
IGNvbnRhaW5lckEsIHVuc2lnbmVkIG9mZnNldEEsIE5vZGUmIGNvbnRhaW5lckIsIHVuc2lnbmVk
IG9mZnNldEIsIFRyZWVUeXBlKTsKQEAgLTExNDAsNiArMTE1MSwxMSBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShXRUJYUikKICAgICBSZWZQdHI8V2ViWFJUZXN0PiBtX3hyVGVzdDsKICNlbmRpZgor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgUmVmUHRyPE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yPiBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworICAgIFJlZlB0
cjxNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggZTg1ZTA4ZGY4OGNkOTU4MDE5ZGJlNDYxM2UzNmQ0OWRi
ODYxMTY4My4uMmM5NDhiMjJiNzcxNGMxOTczZjJjMzRmODFkZWU3MDhjMjM2Y2IxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtOTkxLDYgKzk5MSw5IEBAIGVudW0gVHJl
ZVR5cGUgewogICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OXSB1bmRlZmluZWQgc2VuZE1l
ZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNlc3Npb24gc2Vzc2lvbiwgTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscyBhY3Rpb25EZXRhaWxzKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl0g
UHJvbWlzZTxJbWFnZURhdGE+IGxvYWRBcnR3b3JrSW1hZ2UoRE9NU3RyaW5nIHVybCk7CiAgICAg
CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsIENhbGxXaXRoPVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRdIHVuZGVmaW5lZCByZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcihTdHJpbmdDYWxsYmFjayBjYWxsYmFjayk7CisgICAgW0NvbmRpdGlvbmFsPU1F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1JdIHVuZGVmaW5lZCBzZXRNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JDb21tYW5kc1Nob3VsZEZhaWwoYm9vbGVhbiBzaG91bGRGYWlsKTsKKwogICAgIERP
TVN0cmluZyB0cmVlT3JkZXIoTm9kZSBhLCBOb2RlIGIsIG9wdGlvbmFsIFRyZWVUeXBlIHRyZWUg
PSAiVHJlZSIpOwogICAgIERPTVN0cmluZyB0cmVlT3JkZXJCb3VuZGFyeVBvaW50cyhOb2RlIGNv
bnRhaW5lckEsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0QSwgTm9kZSBjb250YWluZXJCLCB1bnNpZ25l
ZCBsb25nIG9mZnNldEIsIG9wdGlvbmFsIFRyZWVUeXBlIHRyZWUgPSAiVHJlZSIpOwogICAgIGJv
b2xlYW4gcmFuZ2VDb250YWluc05vZGUoQWJzdHJhY3RSYW5nZSByYW5nZSwgTm9kZSBub2RlLCBv
cHRpb25hbCBUcmVlVHlwZSB0cmVlID0gIlRyZWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
Mzc1ZmI2MTMyNTBkNzFkNzExNDU3Njc0OTQzYTVjMDE3ODUyOWZhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3Bw
CkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlN0cmluZ0NhbGxiYWNrLmgiCisj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhl
bHBlci5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9V
VUlELmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ1ZpZXcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8TW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yPiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYg
bGlzdGVuZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKGNvbnRleHQsIFdURk1vdmUobGlzdGVuZXIpKSk7Cit9CisKK01vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikK
KyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyKFdU
Rk1vdmUobGlzdGVuZXIpKQoreworfQorCitPcHRpb25hbDxFeGNlcHRpb24+IE1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6cmVzdWx0KCkgY29uc3QKK3sKKyAgICBpZiAobV9mYWlsQ29tbWFu
ZHMpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJh
Y2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsK
KyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFj
ayhyZXN1bHQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpwbGF5KFBsYXlDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZ
U19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9jb250ZXh0LT5wb3N0VGFz
ayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2socmVzdWx0KCkpOworICAgIH0pOwor
fQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoUGF1c2VDb21wbGV0
ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9H
SURFTlRJRklFUik7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAg
ICAgICAgY2FsbGJhY2socmVzdWx0KCkpOworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRl
ZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJ
REVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAg
ICAgICBjYWxsYmFjayhyZXN1bHQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVBvc2l0aW9uU3RhdGU+KQoreworICAgIEFMV0FZ
U19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9zdGF0ZUNoYW5nZUxpc3Rl
bmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInBvc2l0aW9uU3RhdGVDaGFu
Z2VkIik7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRl
Q2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFk
eVN0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklF
Uiwgc3RhdGUpOworICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lci0+c2NoZWR1bGVDYWxsYmFjayht
X2NvbnRleHQuZ2V0KCksICJyZWFkeVN0YXRlQ2hhbmdlZCIpOworfQorCit2b2lkIE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAg
ICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHN0YXRlKTsKKyAgICBtX3N0
YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgpLCAicGxh
eWJhY2tTdGF0ZUNoYW5nZWQiKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzBiYjRjYjBiZTk2Zjg1ZmQ0
NTcwZThlMzkzYjcyMzZmZThmMmIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMCwwICsxLDY3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKKworI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDsKK2NsYXNzIFN0cmluZ0NhbGxiYWNrOworCitjbGFzcyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRy
PFN0cmluZ0NhbGxiYWNrPiYmKTsKKworICAgIHZvaWQgc2V0Q29tbWFuZHNTaG91bGRGYWlsKGJv
b2wgc2hvdWxkRmFpbCkgeyBtX2ZhaWxDb21tYW5kcyA9IHNob3VsZEZhaWw7IH0KKworcHJpdmF0
ZToKKyAgICBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJik7CisKKyAgICB2b2lkIHNlZWtUbyhkb3VibGUs
IFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHBsYXkoUGxheUNvbXBs
ZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxs
YmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tD
b21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKworICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5n
ZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgZmluYWw7CisgICAgdm9pZCByZWFkeVN0
YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKKyAgICB2b2lkIHBsYXli
YWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpIGZpbmFsOworCisgICAg
T3B0aW9uYWw8RXhjZXB0aW9uPiByZXN1bHQoKSBjb25zdDsKKworICAgIFJlZjxTY3JpcHRFeGVj
dXRpb25Db250ZXh0PiBtX2NvbnRleHQ7CisgICAgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiBtX3N0
YXRlQ2hhbmdlTGlzdGVuZXI7CisgICAgYm9vbCBtX2ZhaWxDb21tYW5kcyB7IGZhbHNlIH07Cit9
OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA0ZDYwZjcyNDg0N2FhNTE2YjZmZmNhMzY2NTk4MzQ5N2I2NjljZDkwLi45MTdkMjA0NGU3
ZmJmODJhYmY4NWNkYjU4OTg1OGZlMDZjZWRmNjg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0
bWw6IEFkZGVkLgorCiAyMDIxLTAzLTIzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFtHUFVQXSAyIHdlYiBhdWRpbyBXUFQgdGVzdHMgZmFpbCB3aGVuIG1lZGlh
IGluIEdQVSBQcm9jZXNzIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQxMGNmMzZh
YmM5MzEwOTJmYWIwNzM5OTE1NjdkOWU2MjFmOGFjODUuLjYzODkwMGVlZWRjOWFmMWEyYzI0NDEz
M2U3YWRlM2I5MzQ1Y2YxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDYzNyw2ICs0NjM3LDcg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Nu
YXAtYWZ0ZXItaW5pdGlhbC1sYXlvdXQvd3IKICMgQ29jb2Etb25seQogaHR0cC90ZXN0cy9tZWRp
YS9obHMvaGxzLWhkci1zd2l0Y2guaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9tZWRpYS92aWRl
by1jYW5wbGF5dGhyb3VnaC13ZWJtLmh0bWwgWyBTa2lwIF0KK21lZGlhL21lZGlhLXNlc3Npb24v
bW9jay1jb29yZGluYXRvci5odG1sIFsgU2tpcCBdCiAKICMgVGhlc2UgdGVzdHMgcmVseSBvbiB3
ZWJraXQtdGVzdC1ydW5uZXIgZmxhZ3MgdGhhdCBhcmVuJ3QgaW1wbGVtZW50ZWQgZm9yIER1bXBS
ZW5kZXJUcmVlLCBzbyB0aGV5IHdpbGwgZmFpbCB1bmRlciBsZWdhY3kgV2ViS2l0LgogZWRpdGlu
Zy9zZWxlY3Rpb24vZXhwYW5kby5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJu
ZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQK
aW5kZXggZmVjNmQ2NDM4OWVkZTFjMjBkNGYyNjIzNTdmMTI2MmM3MTFhMDEzNS4uNzFkYmNjMzhk
MzkxOWJiM2MwYjM2MjhjNGQxMGRkMjY0NzkxNWNlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYXNlc3Npb24vaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApA
QCAtMTIsMTAgKzEyLDE0IEBAIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbnRl
bnRVdGlsczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVz
IE5hdmlnYXRvckNvb2tpZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRv
ciBpbmNsdWRlcyBOYXZpZ2F0b3JQbHVnaW5zOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAorRkFJTCBNZWRpYVNlc3Npb24gaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3Nl
cnRfZXF1YWxzOiBwcm90b3R5cGUgb2Ygc2VsZidzIHByb3BlcnR5ICJNZWRpYVNlc3Npb24iIGlz
IG5vdCBGdW5jdGlvbi5wcm90b3R5cGUgZXhwZWN0ZWQgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
KyAgICBbbmF0aXZlIGNvZGVdCit9IiBidXQgZ290IGZ1bmN0aW9uICJmdW5jdGlvbiBFdmVudFRh
cmdldCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IgogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZSBvYmplY3QgbmFt
ZQotUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK0ZBSUwgTWVkaWFTZXNzaW9uIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IGFzc2VydF9lcXVhbHM6IHByb3RvdHlwZSBvZiBNZWRpYVNlc3Npb24ucHJvdG90eXBlIGlzIG5v
dCBPYmplY3QucHJvdG90eXBlIGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBPYmplY3RdIiBidXQg
Z290IG9iamVjdCAiW29iamVjdCBFdmVudFRhcmdldF0iCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKIFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgbWV0YWRhdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNl
c3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0
MDZmNDgyZjQ4OWM3MjZmNDcyODgwZWU2Njc2ZjkyNGQwNWU1NjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsODEgQEAKKworKiogVGhlcmUgc2hvdWxkIGJlIG5vIG1lZGlhU2Vz
c2lvbi5jb29yZGluYXRvciBpbml0aWFsbHkuCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5jb29yZGluYXRvciA9PSAndW5kZWZpbmVkJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlh
U2Vzc2lvbi5jb29yZGluYXRvcmNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIGl0IGNoYW5nZXMu
CitSVU4oaW50ZXJuYWxzLnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKGNoYW5n
ZUhhbmRsZXIpKQorRVZFTlQoY29vcmRpbmF0b3JjaGFuZ2UpCitFWFBFQ1RFRCAobmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciAhPSAndW5kZWZpbmVkJykgT0sKKworKiogVGVzdCB0
aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCBwcm9taXNlcyByZXNvbHZlIGFu
ZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBjYWxsZWQuCitUZXN0IG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpCitBQ1RJT04ocGxheSkKK0VYUEVDVEVE
IChsYXRlc3RBY3Rpb24gPT0gJ3BsYXknKSBPSworCitUZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Np
b24uY29vcmRpbmF0b3IucGF1c2UoKQorQUNUSU9OKHBhdXNlKQorRVhQRUNURUQgKGxhdGVzdEFj
dGlvbiA9PSAncGF1c2UnKSBPSworCitUZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRp
bmF0b3Iuc2Vla3RvKCkKK0FDVElPTihzZWVrdG8pCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09
ICdzZWVrdG8nKSBPSworCisqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIHN1
Y2NlZWQsIHByb21pc2VzIHJlamVjdCBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBh
cmUgbm90IGNhbGxlZC4KK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5w
bGF5KCkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisKK1Rlc3QgbmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9u
ID09ICcnKSBPSworCitUZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vl
a3RvKCkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisKKyoqIFRlc3QgdGhhdCBt
ZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwb3NpdGlvblN0YXRlIGNoYW5n
ZXMuCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKHsgZHVyYXRp
b246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSkpCitFWFBFQ1RFRCAobGF0ZXN0
Q2hhbmdlID09ICdwb3NpdGlvblN0YXRlQ2hhbmdlZCcpIE9LCisKKyoqIFRlc3QgdGhhdCBtZWRp
YVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiByZWFkeVN0YXRlIGNoYW5nZXMuCitF
WFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTm90aGlu
ZycpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVNZXRh
ZGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9L
CitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTWV0
YWRhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRl
ID09ICdoYXZlTWV0YWRhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlT
dGF0ZSA9ICdoYXZlQ3VycmVudERhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncmVh
ZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVh
ZHlTdGF0ZSA9PSAnaGF2ZUN1cnJlbnREYXRhJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUN1cnJlbnREYXRhJykgT0sKK1JVTihuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUZ1dHVyZURhdGEnKQorRVhQRUNU
RUQgKGxhdGVzdENoYW5nZSA9PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5h
dmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUZ1dHVyZURhdGEnKSBPSwor
CitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRnV0
dXJlRGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hh
dmVFbm91Z2hEYXRhJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3JlYWR5U3RhdGVDaGFu
Z2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0g
J2hhdmVFbm91Z2hEYXRhJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
cmVhZHlTdGF0ZSA9PSAnaGF2ZUVub3VnaERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlTm90aGluZycpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdl
ID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTm90aGluZycpIE9LCisKKyoqIFRlc3QgdGhhdCBtZWRp
YVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwbGF5YmFja1N0YXRlIGNoYW5nZXMu
CitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdub25l
JykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAncGF1c2Vk
JykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3BsYXliYWNrU3RhdGVDaGFuZ2VkJykgT0sK
K0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BhdXNl
ZCcpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUg
PT0gJ3BhdXNlZCcpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRl
ID0gJ3BsYXlpbmcnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncGxheWJhY2tTdGF0ZUNo
YW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0
ZSA9PSAncGxheWluZycpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBs
YXliYWNrU3RhdGUgPT0gJ3BsYXlpbmcnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
cGxheWJhY2tTdGF0ZSA9ICdub25lJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3BsYXli
YWNrU3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBs
YXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSworCisKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTc4MTE0YThiNTMwZjRkZDk5YzMxMThkOWE1NzJmZWI1ZTVjMTc0ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGlu
YXRvci5odG1sCkBAIC0wLDAgKzEsMTMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHRpdGxlPm1vY2stbWVkaWFzZXNzaW9uLWNvb3JkaW5hdG9yPC90aXRsZT4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4K
KworICAgIGZ1bmN0aW9uIGNoYW5nZUhhbmRsZXIoY2hhbmdlKQorICAgIHsKKyAgICAgICAgd2lu
ZG93LmxhdGVzdENoYW5nZSA9IGNoYW5nZTsKKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKworICAgICAgICB3aW5kb3cubGF0ZXN0
QWN0aW9uID0gJyc7CisgICAgICAgIHdpbmRvdy5sYXRlc3RDaGFuZ2UgPSAnJzsKKworICAgICAg
ICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdUaGlzIHRl
c3QgcmVxdWlyZXMgSW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBjb25zdCBjaGFuZ2VQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7
CisgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2Nv
b3JkaW5hdG9yY2hhbmdlJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgY29uc29sZVdy
aXRlKGBFVkVOVCgke2V2ZW50LnR5cGV9KWApOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycp
OworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRoZXJlIHNob3VsZCBiZSBubyBtZWRpYVNlc3Np
b24uY29vcmRpbmF0b3IgaW5pdGlhbGx5LicpCisKKyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yJywgdW5kZWZpbmVkKTsKKworICAgICAgICBj
b25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRp
YVNlc3Npb24uY29vcmRpbmF0b3JjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiBpdCBjaGFuZ2Vz
LicpCisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoY2hhbmdlSGFuZGxlciknKTsKKworICAgICAgICBhd2FpdCBjaGFuZ2VQcm9taXNl
OworICAgICAgICAKKyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LmNvb3JkaW5hdG9yJywgdW5kZWZpbmVkLCAnIT0nKTsKKworICAgICAgICBbJ3BsYXknLCAncGF1
c2UnLCAnc2Vla3RvJ10uZm9yRWFjaChhY3Rpb24gPT4geworICAgICAgICAgICAgbmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5zZXRBY3Rpb25IYW5kbGVyKGFjdGlvbiwgYWN0aW9uRGV0YWlscyA9PiB7
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBBQ1RJT04oJHthY3Rpb25EZXRhaWxzLmFj
dGlvbn0pYCk7CisgICAgICAgICAgICAgICAgbGF0ZXN0QWN0aW9uID0gYWN0aW9uRGV0YWlscy5h
Y3Rpb247CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgbGV0IHRlc3RB
Y3Rpb24gPSBhc3luYyAoYWN0aW9uLCBmdW5jLCBmb3JjZUZhaWx1cmUpID0+IHsKKyAgICAgICAg
ICAgIGxhdGVzdEFjdGlvbiA9ICcnOworCisgICAgICAgICAgICBsZXQgc3VjY2VlZGVkOworICAg
ICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYFRlc3QgbmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci4ke2FjdGlvbn0oKWApOworICAgICAgICAgICAg
ICAgIGF3YWl0IGZ1bmMoKTsKKyAgICAgICAgICAgICAgICBpZiAoZm9yY2VGYWlsdXJlKQorICAg
ICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEZBSUw6ICR7ZnVuYy50b1N0cmluZygpfSBy
ZXNvbHZlZCBidXQgc2hvdWxkIGhhdmUgcmVqZWN0ZWRgKTsKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ2xhdGVzdEFjdGlvbicsIGFjdGlvbik7CisgICAgICAgICAgICB9IGNhdGNoIChl
eCkgeworICAgICAgICAgICAgICAgIGlmICghZm9yY2VGYWlsdXJlKQorICAgICAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoYEZBSUw6ICR7ZnVuYy50b1N0cmluZygpfSB0aHJldyAke2V4fWAp
OworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0aW9uJywgJycpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICB9Owor
CisgICAgICAgIGxldCBhY3Rpb25zID0gWyAKKyAgICAgICAgICAgIHsgYWN0aW9uOiAncGxheScs
IGZ1bmMgOiAoKSA9PiB7IHJldHVybiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9y
LnBsYXkoKSB9LCB9LAorICAgICAgICAgICAgeyBhY3Rpb246ICdwYXVzZScsIGZ1bmMgOiAoKSA9
PiB7IHJldHVybiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBhdXNlKCkgfSwg
fSwKKyAgICAgICAgICAgIHsgYWN0aW9uOiAnc2Vla3RvJywgZnVuYyA6ICgpID0+IHsgcmV0dXJu
IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEwKSB9LCB9LAorICAg
ICAgICBdOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0
ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCAgcHJvbWlz
ZXMgcmVzb2x2ZSBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUgY2FsbGVkLicp
CisgICAgICAgIGludGVybmFscy5zZXRNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21tYW5k
c1Nob3VsZEZhaWwoZmFsc2UpOworICAgICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykK
KyAgICAgICAgICAgIGF3YWl0IHRlc3RBY3Rpb24oYWN0aW9uLmFjdGlvbiwgYWN0aW9uLmZ1bmMs
IGZhbHNlKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCB3aGVuIGNvb3Jk
aW5hdG9yIG1ldGhvZHMgc3VjY2VlZCwgIHByb21pc2VzIHJlamVjdCBhbmQgbWVkaWFTZXNzaW9u
IGFjdGlvbiBoYW5kbGVycyBhcmUgbm90IGNhbGxlZC4nKQorICAgICAgICBpbnRlcm5hbHMuc2V0
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKHRydWUpOworICAg
ICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykKKyAgICAgICAgICAgIGF3YWl0IHRlc3RB
Y3Rpb24oYWN0aW9uLmFjdGlvbiwgYWN0aW9uLmZ1bmMsIHRydWUpOworCisgICAgICAgIGNvbnNv
bGVXcml0ZShgKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGluYXRvciB3
aGVuIHBvc2l0aW9uU3RhdGUgY2hhbmdlcy5gKQorICAgICAgICBydW4oJ25hdmlnYXRvci5tZWRp
YVNlc3Npb24uc2V0UG9zaXRpb25TdGF0ZSh7IGR1cmF0aW9uOiAxLCBwbGF5YmFja1JhdGU6IDEs
IHBvc2l0aW9uOiAwIH0pJyk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHko
J2xhdGVzdENoYW5nZScsICdwb3NpdGlvblN0YXRlQ2hhbmdlZCcsICc9PScsIDEwMCk7CisKKyAg
ICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRo
YXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcmVhZHlTdGF0ZSBjaGFu
Z2VzLicpCisgICAgICAgIGxldCBwcmV2aW91c1N0YXRlID0gJ2hhdmVOb3RoaW5nJzsKKyAgICAg
ICAgZm9yIChsZXQgc3RhdGUgb2YgWydoYXZlTWV0YWRhdGEnLCAnaGF2ZUN1cnJlbnREYXRhJywg
J2hhdmVGdXR1cmVEYXRhJywgJ2hhdmVFbm91Z2hEYXRhJywgJ2hhdmVOb3RoaW5nJ10pIHsKKyAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRl
JywgcHJldmlvdXNTdGF0ZSk7CisKKyAgICAgICAgICAgIGxhdGVzdENoYW5nZSA9ICcnOworICAg
ICAgICAgICAgcnVuKGBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnJHtzdGF0
ZX0nYCk7CisKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2xhdGVz
dENoYW5nZScsICdyZWFkeVN0YXRlQ2hhbmdlZCcsICc9PScsIDEwMCk7CisKKyAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlJywgc3RhdGUp
OworICAgICAgICAgICAgcHJldmlvdXNTdGF0ZSA9IHN0YXRlOworICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCcnKTsKKyAgICAgICAgfTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3Qg
dGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwbGF5YmFja1N0YXRl
IGNoYW5nZXMuJykKKyAgICAgICAgcHJldmlvdXNTdGF0ZSA9ICdub25lJzsKKyAgICAgICAgZm9y
IChsZXQgc3RhdGUgb2YgWydwYXVzZWQnLCAncGxheWluZycsICdub25lJ10pIHsKKworICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUn
LCBwcmV2aW91c1N0YXRlKTsKKworICAgICAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7CisgICAg
ICAgICAgICBydW4oYG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICcke3N0
YXRlfSdgKTsKKworICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0
ZXN0Q2hhbmdlJywgJ3BsYXliYWNrU3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsKKworICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUn
LCBzdGF0ZSk7CisgICAgICAgICAgICBwcmV2aW91c1N0YXRlID0gc3RhdGU7CisgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICB9OworCisgICAgICAgIGNvbnNvbGVXcml0ZSgn
Jyk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9LCB7b25jZTogdHJ1ZX0pOworCisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424084</attachid>
            <date>2021-03-23 18:33:57 -0700</date>
            <delta_ts>2021-03-23 18:56:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222158-20210323183356.patch</filename>
            <type>text/plain</type>
            <size>120704</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmYzczYWI5YzdiZWUzNDEzMjkxOGE5
NDVhYTQ3NDVkZjM2NDE1ZWUuLjY1MzUzNDNjZmY1YmY1YmU4NzIzMWYzMjJjODBhMDRjZmUyM2U5
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAzLTIzICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlcXVpcmUgVk1fRkxBR1NfUEVS
TUFORU5UIG9uIHRoZSBzaW11bGF0b3IgYnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkxZDM5NzM5ODU0
YWQ2YmY0NmQ0YzhkZGIyYmJjNjY4OGNlZTViYS4uY2E0NjcyMTFjODU3MjY4YTY2NmVmNWRmMDVm
MGYwM2IyN2UzYjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAyMS0wMi0xOCAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2Fd
IEFkZCBFeHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9y
LCBhbiBvYmplY3QgdGhhdCBwcm92aWRlcyBhbiBpbnRlcmZhY2UKKyAgICAgICAgdGhhdCBhbGxv
d3Mgc2NyaXB0IHRvIGNvb3JkaW5hdGUgY2hhbmdlcyB0byBNZWRpYVNlc3Npb24gd2l0aCB0aGUg
VXNlciBBZ2VudC4gQWxzbworICAgICAgICBhZGQgYW4gZXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lv
biBwbGF5bGlzdCBpbnRlcmZhY2UuCisKKyAgICAgICAgVGhlIGNoYW5nZXMgYXJlIGJlaGluZCBu
ZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUgZmxhZ3MsCisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yRW5hYmxlZCBhbmQgTWVkaWFTZXNzaW9uUGxheWxpc3RFbmFibGVkLgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OiBBZGQgbmV3IElETCBmaWxlcy4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDogQWRkIG5ldyBkZXJp
dmVkIHNvdXJjZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkIG5ldyBJREwu
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6IFNldCB0cmFja0lkZW50aWZp
ZXIgZnJvbSBpbml0IGRhdGEuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRU
cmFja0lkZW50aWZpZXIpOiB0cmFja0lkZW50aWZpZXIgc2V0dGVyLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oOiBBZGQgdHJhY2tJZGVudGlmaWVyLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
OjpNZWRpYVNlc3Npb24pOiBJbml0aWFsaXplIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEpOiBtZXRhZGF0YVVw
ZGF0ZWQgLT4gbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb246OnNldFJlYWR5U3RhdGUpOiBTZXNzaW9uIHJlYWR5U3RhdGUgc2V0dGVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcik6IENvb3JkaW5hdG9y
IHNldHRlci4gUG9zdCAnY29vcmRpbmF0b3JjaGFuZ2UnCisgICAgICAgIGV2ZW50IGFmdGVyIGNo
YW5nZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0UGxheWxpc3QpOiBQbGF5
bGlzdCBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldEFjdGlvbkhh
bmRsZXIpOiBDYWxsIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNlcnZlcnMuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUpOiBDYWxsIG5vdGlmeVBvc2l0aW9u
U3RhdGVPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Om1ldGFkYXRh
VXBkYXRlZCk6IENhbGwgbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcik6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbjo6Zm9yRWFjaE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycyk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5QWN0aW9uSGFuZGxl
ck9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5
UmVhZHlTdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRp
bmF0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGw6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsOgor
CisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHByb3hpZXMgY2FsbHMgdGhyb3VnaCB0
aGUgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciwKKyAgICAgICAgYW5kIHRoZW4gY2Fs
bHMgdGhlIGVxdWl2YWxlbnQgTWVkaWFTZXNzaW9uIG1ldGhvZGUgaWYgdGhlIHBsYXRmb3JtIGNv
b3JkaW5hdG9yIAorICAgICAgICBpcyBzdWNjZXNzZnVsLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOiBOZXcuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDbGFzc05hbWUpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlk
bDogTmV3LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFT
ZXNzaW9uLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW46CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TG9nZ2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlclB0ciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsIGNvbnN0KToKKworICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOiBSZWdpc3RlciB0aGUgbW9jawor
ICAgICAgICBtZWRpYSBzZXNzaW9uIGNvb3JkaW5hdG9yIGZvciB0ZXN0aW5nLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmg6IE5ldy4KKwogMjAyMS0wMy0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlYmFzZWxpbmUgYmluZGluZ3MgdGVz
dHMgYWZ0ZXIgcjI3NDkwNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZWNhYjYz
NjJlMDBhOGMwMzg1MzYxNzRhOTMzMGYxNWUyZTdlOTViOS4uM2JjMzA5NjUwZjZjYmQ5MzM5OTEy
YjE1OWE4MDEyZDYwMjhiZmQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTYz
Miw2ICs2MzIsMTkgQEAgTWVkaWFSZWNvcmRlckVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAg
IGRlZmF1bHQ6IGZhbHNlCiAKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZDoKKyAgdHlw
ZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24g
Y29vcmRpbmF0b3IgQVBJIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhw
ZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvciBBUEkiCisgIGNvbmRpdGlvbjogRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJL
aXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIE1lZGlhU2Vz
c2lvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJNZWRpYSBT
ZXNzaW9uIEFQSSIKQEAgLTY0NSw2ICs2NTgsMTkgQEAgTWVkaWFTZXNzaW9uRW5hYmxlZDoKICAg
ICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorTWVkaWFTZXNzaW9uUGxheWxpc3RF
bmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFs
IE1lZGlhU2Vzc2lvbiBwbGF5bGlzdCBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIHBsYXlsaXN0IEFQSSIKKyAgY29uZGl0
aW9uOiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgZGVmYXVsdFZhbHVlOgorICAg
IFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTW9k
ZWxFbGVtZW50RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkhU
TUwgPG1vZGVsPiBlbGVtZW50IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1F
bmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4
IGM3YWRjNGU5ZjM2ODEwY2EzYWM4NGJjNzhjMmI3OWQ4ODRjNjY5NGUuLjMwZDNmOWQzMGJiYzdh
MzFmZjYwZjUzNjBiYmM2MzMxOWI2NGE3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNv
Y29hLmgKQEAgLTMyOCw2ICszMjgsMTQgQEAKICNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUFYX0FMTE9XRUQgPj0gMTIwMDAwCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fUExB
WUxJU1QpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VE
ID49IDEyMDAwMAorI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCAxCisjZW5k
aWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAmJiAhUExBVEZPUk0oV0FU
Q0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9O
IDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMTllOWQ0Y2YxZmY2YmE0ZWFlZGNm
YTliNzE4MWY5MTc5ZWUwZmRhLi4zYjFhY2EyMzMzNTFmMTBhYjUwMTRiNDA5MjRjOTU3MDZkNTdh
ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzMxLDEyICszMzEsMTcgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdl
LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAgICAgTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25B
Y3Rpb24uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5k
bGVyLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4
aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGlu
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKIAog
ICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRlNTg4
YTI0OTQ5NzNhNzkwZTE2NWMwYWExNGE0NWFhZDJkOGM4ZGYuLjE2OWIyMWExYjAxMWRlOTM4Mzc0
Y2ZkNWU3NjkyYzJlZjAzOTJkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDEyICsxNzMsMTcgQEAgJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKyQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkFjdGlvbkhhbmRsZXIuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhp
bi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJl
YWR5U3RhdGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0
b3IrTWVkaWFTZXNzaW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNvdXJjZS9B
dWRpb1RyYWNrK01lZGlhU291cmNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNv
dXJjZS9ET01VUkwrTWVkaWFTb3VyY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGY3YTYzOGFhOTM5MDU3ZDczNDgwOTFhYjQy
ODEzOWM5OTRkMGQzMGIuLjcxNmE4YzVhNzI3ZTU5OWNjYWI2NjkxODgwMGM3NzY4NjVlZDc3ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CkBAIC0xMjk4LDYgKzEyOTgsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYU1ldGFkYXRhSW5pdC5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YUlu
aXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YU1ldGFkYXRhUGxheWxpc3RNaXhpbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVBvc2l0aW9uU3RhdGUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
UG9zaXRpb25TdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMTMxNiw4ICsxMzE4LDE2IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFj
dGlvbkhhbmRsZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvck1peGluLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4
aW4uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YVNlc3Npb25SZWFkeVN0YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU291cmNlLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW0uY3Bw
CkBAIC0xMzUyLDYgKzEzNjIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vY2tDRE1GYWN0b3J5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb2NrQ0RNRmFjdG9yeS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01vY2tQYWdlT3ZlcmxheS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTW9ja1BhZ2VPdmVybGF5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja1BheW1lbnRBZGRyZXNzLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggM2VkYTEwYThjNjdjODFmMDdjNTVjZTNhOTBjMWQ2MTNmMDkz
ZGJkMS4uNTE4ZWRmMWZkNjQ1NDM4OGY2OGU3NGU3YTIyMmIwYTcxMTEyY2I1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMDcsMTIgKzIwNywxNyBAQCBKU19CSU5ESU5HX0lE
TFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGFQbGF5bGlzdE1peGluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVBvc2l0aW9uU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNaXhpbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Eb3VibGVSYW5nZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCBlMTBkYWQwN2QzMjU0Y2ExMDkzMWRi
MDY1NzE3ZmFmYTBkZmM5OWIzLi4zNDZiMjdhYmExNzE3MzhjYjQzOWQ0ZjE5MmNlYTkzMDUwNGFm
NDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmNwcApAQCAtOTYsNiArOTYsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFN
ZXRhZGF0YT4+IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
bwogICAgICAgICBtZXRhZGF0YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRh
ZGF0YS0+c2V0QXJ0aXN0KGluaXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1
bShpbml0LT5hbGJ1bSk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAg
ICAgIG1ldGFkYXRhLT5zZXRUcmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsK
KyNlbmRpZgogICAgICAgICBhdXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFy
dHdvcmsoY29udGV4dCwgV1RGTW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3Nz
aWJsZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBwb3NzaWJsZUV4Y2VwdGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTg4LDYgKzE5MSwxNyBA
QCB2b2lkIE1lZGlhTWV0YWRhdGE6OnNldEFydHdvcmtJbWFnZShJbWFnZSogaW1hZ2UpCiAgICAg
bV9hcnR3b3JrSW1hZ2UgPSBpbWFnZTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQordm9pZCBNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIoY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyKQoreworICAgIGlmIChtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllciA9
PSBpZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21ldGFkYXRhLnRyYWNrSWRl
bnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgbWV0YWRhdGFVcGRhdGVkKCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBNZWRpYU1ldGFkYXRhOjptZXRhZGF0YVVwZGF0ZWQoKQogewogICAgIGlmIChtX3Nl
c3Npb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmgKaW5kZXggYTdiZTc4NTkwMDA5MGVkMTdiY2MzYTk5ZWIxZjFmNzg0Y2ZkNmI1
NC4uMjk2MGI0NGE4NjNiYzgyYjRmOTIzYWNiMzVhNmNlMWIwZDEzODIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaApAQCAt
OTEsNiArOTEsMTEgQEAgcHVibGljOgogCiAgICAgY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRhdGEm
IG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YTsgfQogCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllcjsgfQorICAgIHZvaWQg
c2V0VHJhY2tJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgTWVkaWFNZXRhZGF0YSgpOwogICAgIHZvaWQgc2V0QXJ0d29ya0ltYWdlKEltYWdlKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFk
YXRhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGEuaWRsCmluZGV4IGMyYjU3N2NmNWJiMjI5YzJhNmZiMzE2NzlkM2ZlNTljNzhjZDEyNmQuLmQw
NWYyYjBiNjk0YmM0OGZmYWE3MTM1YTVhZTlmNDBjYTYyZmNkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCkBAIC0z
Myw0ICszMyw4IEBACiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhcnRpc3Q7CiAgICAgYXR0cmli
dXRlIERPTVN0cmluZyBhbGJ1bTsKICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhSW1hZ2U+IGFydHdvcms7CisKKyAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1N
ZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7
CiB9OworCitNZWRpYU1ldGFkYXRhIGluY2x1ZGVzIE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGlu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGFJbml0LmgKaW5kZXggNjY5ZGVmZmEyZDY5NDA4NWYwOGYxMGRmMWI5MTZlZjQ0ZTg4
NWUwZC4uZDY5MmQyZDk0ODI3NTNmMGFjMGE4NDMyYTQ2MGY5MDE0YTBjZmJhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRh
SW5pdC5oCkBAIC0zNSw2ICszNSw5IEBAIHN0cnVjdCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAgICAg
U3RyaW5nIHRpdGxlOwogICAgIFN0cmluZyBhcnRpc3Q7CiAgICAgU3RyaW5nIGFsYnVtOworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFN0cmluZyB0cmFja0lkZW50aWZp
ZXI7CisjZW5kaWYKICAgICBWZWN0b3I8TWVkaWFJbWFnZT4gYXJ0d29yazsKIAogICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTQzLDI4
ICs0Niw1MSBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0YUluaXQgewogCiB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRpYU1ldGFkYXRhSW5pdDo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0g
PDwgYXJ0d29yazsKKyAgICBlbmNvZGVyIDw8IHRpdGxlIDw8IGFydGlzdCA8PCBhbGJ1bQorI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIDw8IHRyYWNrSWRlbnRpZmllcgor
I2VuZGlmCisgICAgPDwgYXJ0d29yazsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5s
aW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRhdGFJbml0PiBNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgU3RyaW5nIHRpdGxlOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodGl0bGUpKQorICAgIE9wdGlvbmFsPFN0cmluZz4gdGl0bGU7CisgICAgZGVjb2Rl
ciA+PiB0aXRsZTsKKyAgICBpZiAodGl0bGUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBT
dHJpbmcgYXJ0aXN0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0aXN0KSkKKyAgICBPcHRp
b25hbDxTdHJpbmc+IGFydGlzdDsKKyAgICBkZWNvZGVyID4+IGFydGlzdDsKKyAgICBpZiAoIWFy
dGlzdCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFsYnVtKSkKKyAgICBPcHRpb25hbDxTdHJpbmc+IGFsYnVtOworICAg
IGRlY29kZXIgPj4gYWxidW07CisgICAgaWYgKCFhbGJ1bSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIFZlY3RvcjxNZWRpYUltYWdlPiBhcnR3b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoYXJ0d29yaykpCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgT3B0
aW9uYWw8U3RyaW5nPiB0cmFja0lkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiB0cmFja0lkZW50
aWZpZXI7CisgICAgaWYgKCF0cmFja0lkZW50aWZpZXIpCisgICAgICAgIHJldHVybiB7IH07Cisj
ZW5kaWYKKworICAgIE9wdGlvbmFsPFZlY3RvcjxNZWRpYUltYWdlPj4gYXJ0d29yazsKKyAgICBk
ZWNvZGVyID4+IGFydHdvcms7CisgICAgaWYgKCFhcnR3b3JrKQogICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgcmV0dXJuIE1lZGlhTWV0YWRhdGFJbml0IHsgV1RGTW92ZSh0aXRsZSksIFdURk1v
dmUoYXJ0aXN0KSwgV1RGTW92ZShhbGJ1bSksIFdURk1vdmUoYXJ0d29yaykgfTsKKyAgICByZXR1
cm4geyB7CisgICAgICAgIFdURk1vdmUoKnRpdGxlKSwKKyAgICAgICAgV1RGTW92ZSgqYXJ0aXN0
KSwKKyAgICAgICAgV1RGTW92ZSgqYWxidW0pLAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQorICAgICAgICBXVEZNb3ZlKCp0cmFja0lkZW50aWZpZXIpLAorI2VuZGlmCisgICAg
ICAgIFdURk1vdmUoKmFydHdvcmspCisgICAgfSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwK
aW5kZXggOGIwZjU1Y2YxNGE1ODM4Y2I1NDg5NTY1ZDAyNzJkYWZhZDllMTIzZC4uMGRjOGVmMDA3
YjEwOTUxYjBkNTkxOWViMDMxMjQzNGYzZjY0NDYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbApAQCAt
MzAsNSArMzAsNiBAQAogICAgIERPTVN0cmluZyB0aXRsZSA9ICIiOwogICAgIERPTVN0cmluZyBh
cnRpc3QgPSAiIjsKICAgICBET01TdHJpbmcgYWxidW0gPSAiIjsKKyAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5
bGlzdF0gRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllciA9ICIiOwogICAgIHNlcXVlbmNlPE1lZGlh
SW1hZ2U+IGFydHdvcmsgPSBbXTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTBhNzY0MGIwZDM0NGJhZWMwMzY2OTc0MDYyNGFmMmQ0ZThkYjZmZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fUExBWUxJU1QsCisgICAgRW5hYmxl
ZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdCwKK10gaW50ZXJmYWNlIG1peGluIE1lZGlh
TWV0YWRhdGFQbGF5bGlzdE1peGluIHsKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRyYWNrSWRl
bnRpZmllcjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmNwcAppbmRleCAzMmIwOGUxYTcxZGU5NDMwZDEyMjBlMGJlNmEyMWNk
OGUyYjU3MGFlLi5lOGE5Y2FlZWFkNDYxY2I4OTYwN2MzNGMzMThiYTI0YTNiZDQwMTU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAKQEAgLTI5LDggKzI5LDEwIEBACiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogCkBAIC03Niw3ICs3OCwxMSBAQCBSZWY8TWVk
aWFTZXNzaW9uPiBNZWRpYVNlc3Npb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKIH0K
IAogTWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCi0gICAg
OiBtX25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIobmF2aWdhdG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAs
IG1fbmF2aWdhdG9yKG1ha2VXZWFrUHRyKG5hdmlnYXRvcikpCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2Vu
ZXJpY0V2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCisjZW5kaWYKIHsKICAgICBtX2xvZ2dlciA9
IG1ha2VSZWZQdHIoRG9jdW1lbnQ6OnNoYXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZp
ZXIgPSBuZXh0TG9nSWRlbnRpZmllcigpOwpAQCAtODksMTUgKzk1LDY3IEBAIE1lZGlhU2Vzc2lv
bjo6fk1lZGlhU2Vzc2lvbigpID0gZGVmYXVsdDsKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRNZXRh
ZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJiBtZXRhZGF0YSkKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwotCiAgICAgaWYgKG1fbWV0YWRhdGEpCiAgICAgICAgIG1fbWV0YWRh
dGEtPnJlc2V0TWVkaWFTZXNzaW9uKCk7CiAgICAgbV9tZXRhZGF0YSA9IFdURk1vdmUobWV0YWRh
dGEpOwogICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBtX21ldGFkYXRhLT5zZXRNZWRpYVNl
c3Npb24oKnRoaXMpOwotICAgIG1ldGFkYXRhVXBkYXRlZCgpOworICAgIG5vdGlmeU1ldGFkYXRh
T2JzZXJ2ZXJzKCk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
K3ZvaWQgTWVkaWFTZXNzaW9uOjpzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUg
c3RhdGUpCit7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisKKyAgICBtX3JlYWR5
U3RhdGUgPSBzdGF0ZTsKKyAgICBub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCk7CiB9CiAKK3Zv
aWQgTWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcihNZWRpYVNlc3Npb25Db29yZGluYXRvciog
Y29vcmRpbmF0b3IpCit7CisgICAgaWYgKG1fY29vcmRpbmF0b3IgPT0gY29vcmRpbmF0b3IpCisg
ICAgICAgIHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBp
ZiAobV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29yZGluYXRvci0+c2V0TWVkaWFTZXNzaW9u
KG51bGxwdHIpOworCisgICAgbV9jb29yZGluYXRvciA9IGNvb3JkaW5hdG9yOworCisgICAgaWYg
KG1fY29vcmRpbmF0b3IpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldE1lZGlhU2Vzc2lvbih0
aGlzKTsKKworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY29vcmRpbmF0b3JjaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX1BMQVlMSVNUKQorRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uOjpz
ZXRQbGF5bGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBWZWN0b3I8UmVmUHRy
PE1lZGlhTWV0YWRhdGE+PiYmIHBsYXlsaXN0KQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUik7CisKKyAgICBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiByZXNvbHZlZFBsYXlsaXN0
OworICAgIHJlc29sdmVkUGxheWxpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwbGF5bGlzdC5z
aXplKCkpOworCisgICAgZm9yIChhdXRvJiBlbnRyeSA6IHBsYXlsaXN0KSB7CisgICAgICAgIGF1
dG8gcmVzb2x2ZWRFbnRyeSA9IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShjb250ZXh0LCB7IGVudHJ5
LT5tZXRhZGF0YSgpIH0pOworICAgICAgICBpZiAocmVzb2x2ZWRFbnRyeS5oYXNFeGNlcHRpb24o
KSkKKyAgICAgICAgICAgIHJldHVybiByZXNvbHZlZEVudHJ5LnJlbGVhc2VFeGNlcHRpb24oKTsK
KyAgICAgICAgCisgICAgICAgIHJlc29sdmVkUGxheWxpc3QudW5jaGVja2VkQXBwZW5kKHJlc29s
dmVkRW50cnkucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgIH0KKworICAgIG1fcGxheWxpc3Qg
PSBXVEZNb3ZlKHJlc29sdmVkUGxheWxpc3QpOworCisgICAgcmV0dXJuIHsgfTsKK30KKyNlbmRp
ZgorCiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0UGxheWJhY2tTdGF0ZShNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlIHN0YXRlKQogewogICAgIGlmIChtX3BsYXliYWNrU3RhdGUgPT0gc3RhdGUpCkBA
IC0xMTEsNiArMTY5LDcgQEAgdm9pZCBNZWRpYVNlc3Npb246OnNldFBsYXliYWNrU3RhdGUoTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKICAgICAgICAgbV90aW1lQXRMYXN0UG9zaXRp
b25VcGRhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICB9CiAgICAgbV9wbGF5YmFja1N0
YXRlID0gc3RhdGU7CisgICAgbm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpOwogfQogCiB2
b2lkIE1lZGlhU2Vzc2lvbjo6c2V0QWN0aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rpb24gYWN0
aW9uLCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4mJiBoYW5kbGVyKQpAQCAtMTI5
LDcgKzE4OCw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vz
c2lvbkFjdGlvbiBhY3Rpb24sIFJlZlB0cjxNZWRpYVNlc3NpCiAgICAgICAgIFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZVN1cHBvcnRlZENvbW1hbmQo
cGxhdGZvcm1Db21tYW5kRm9yTWVkaWFTZXNzaW9uQWN0aW9uKGFjdGlvbikpOwogICAgIH0KIAot
ICAgIGFjdGlvbkhhbmRsZXJzVXBkYXRlZCgpOworICAgIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNl
cnZlcnMoKTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb246Omhhc0FjdGlvbkhhbmRsZXIoTWVkaWFT
ZXNzaW9uQWN0aW9uIGFjdGlvbikgY29uc3QKQEAgLTE0MiwxMiArMjAxLDE5IEBAIFJlZlB0cjxN
ZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPiBNZWRpYVNlc3Npb246OmhhbmRsZXJGb3JBY3Rpb24o
TWVkaWFTZXNzaW9uQWN0CiAgICAgcmV0dXJuIG1fYWN0aW9uSGFuZGxlcnMuZ2V0KGFjdGlvbik7
CiB9CiAKK3ZvaWQgTWVkaWFTZXNzaW9uOjpjYWxsQWN0aW9uSGFuZGxlcihjb25zdCBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzJiBhY3Rpb25EZXRhaWxzKQoreworICAgIGlmIChhdXRvIGhhbmRs
ZXIgPSBtX2FjdGlvbkhhbmRsZXJzLmdldChhY3Rpb25EZXRhaWxzLmFjdGlvbikpCisgICAgICAg
IGhhbmRsZXItPmhhbmRsZUV2ZW50KGFjdGlvbkRldGFpbHMpOworfQorCiBFeGNlcHRpb25Pcjx2
b2lkPiBNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVkaWFQb3NpdGlv
blN0YXRlPiYmIHN0YXRlKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKICAg
ICBpZiAoIXN0YXRlKSB7CiAgICAgICAgIG1fcG9zaXRpb25TdGF0ZSA9IFdURjo6bnVsbG9wdDsK
KyAgICAgICAgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIApAQCAtMTYxLDYgKzIyNyw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlh
U2Vzc2lvbjo6c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYK
ICAgICBtX3Bvc2l0aW9uU3RhdGUgPSBXVEZNb3ZlKHN0YXRlKTsKICAgICBtX2xhc3RSZXBvcnRl
ZFBvc2l0aW9uID0gbV9wb3NpdGlvblN0YXRlLT5wb3NpdGlvbjsKICAgICBtX3RpbWVBdExhc3RQ
b3NpdGlvblVwZGF0ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIG5vdGlmeVBvc2l0aW9u
U3RhdGVPYnNlcnZlcnMoKTsKKwogICAgIHJldHVybiB7IH07CiB9CiAKQEAgLTE4NSwxMSArMjUz
LDY0IEBAIERvY3VtZW50KiBNZWRpYVNlc3Npb246OmRvY3VtZW50KCkgY29uc3QKIAogdm9pZCBN
ZWRpYVNlc3Npb246Om1ldGFkYXRhVXBkYXRlZCgpCiB7CisgICAgbm90aWZ5TWV0YWRhdGFPYnNl
cnZlcnMoKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKE9ic2VydmVyJiBv
YnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fb2JzZXJ2ZXJz
LmFkZChvYnNlcnZlcik7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcihP
YnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBt
X29ic2VydmVycy5yZW1vdmUob2JzZXJ2ZXIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6Zm9y
RWFjaE9ic2VydmVyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyk7CisgICAgbV9vYnNlcnZlcnMuZm9yRWFjaChhcHBseSk7Cit9CisKK3ZvaWQg
TWVkaWFTZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9i
c2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5tZXRhZGF0
YUNoYW5nZWQobV9tZXRhZGF0YSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3Ro
aXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnBvc2l0aW9uU3RhdGVDaGFu
Z2VkKG1fcG9zaXRpb25TdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3Ro
aXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnBsYXliYWNrU3RhdGVDaGFu
Z2VkKG1fcGxheWJhY2tTdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlBY3Rpb25IYW5kbGVyT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW10o
YXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIuYWN0aW9uSGFuZGxlcnNDaGFuZ2Vk
KCk7CisgICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFTZXNzaW9uOjphY3Rpb25IYW5kbGVyc1VwZGF0
ZWQoKQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQordm9pZCBNZWRpYVNl
c3Npb246Om5vdGlmeVJlYWR5U3RhdGVPYnNlcnZlcnMoKQogeworICAgIGZvckVhY2hPYnNlcnZl
cihbdGhpc10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIucmVhZHlTdGF0ZUNo
YW5nZWQobV9yZWFkeVN0YXRlKTsKKyAgICB9KTsKIH0KKyNlbmRpZgogCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXgg
NzY3MmUzMmZjNzA2ZTM3ODExNmQ1ZWY3MzU0MmIxZGNmM2ZhYjc2Zi4uOGQwNTA3Y2YwOTkwZmQ1
NWM1MWM3ZDFhOTdkOGI1ZDE5Y2Q4YzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVu
dFF1ZXVlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJK
U01lZGlhU2Vzc2lvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5oIgpAQCAtMzQsNiArMzcsNyBAQAogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbi5o
IgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCIKICNpbmNsdWRlICJNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNDQsMzggKzQ4LDkwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBNZWRpYU1ldGFkYXRhOwor
Y2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CiBjbGFzcyBOYXZpZ2F0b3I7CiAKLWNsYXNz
IE1lZGlhU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4sIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb24+IHsKK2NsYXNzIE1lZGlhU2Vzc2lvbiA6IHB1Ymxp
YyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4gLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVNlc3Npb24+IGNy
ZWF0ZShOYXZpZ2F0b3ImKTsKICAgICB+TWVkaWFTZXNzaW9uKCk7CiAKICAgICBNZWRpYU1ldGFk
YXRhKiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEuZ2V0KCk7IH07CiAgICAg
dm9pZCBzZXRNZXRhZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJik7CisgICAgdm9pZCBtZXRh
ZGF0YVVwZGF0ZWQoKTsKIAogICAgIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgcGxheWJhY2tT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWJhY2tTdGF0ZTsgfTsKICAgICB2b2lkIHNldFBs
YXliYWNrU3RhdGUoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CiAKICAgICB2b2lkIHNldEFj
dGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0aW9uLCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9u
SGFuZGxlcj4mJik7CisKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQb3NpdGlvblN0YXRlKE9w
dGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mJik7CisgICAgT3B0aW9uYWw8TWVkaWFQb3NpdGlv
blN0YXRlPiBwb3NpdGlvblN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvblN0YXRlOyB9
CisKICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxkb3VibGU+IGN1cnJlbnRQb3NpdGlvbigp
IGNvbnN0OwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAgICAgCi0gICAgdm9p
ZCBtZXRhZGF0YVVwZGF0ZWQoKTsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKKyAgICBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3JlYWR5U3RhdGU7IH07CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUpOworCisgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRvci5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0Q29vcmRpbmF0b3IoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqKTsKKyNlbmRpZgor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgVmVjdG9yPFJl
ZjxNZWRpYU1ldGFkYXRhPj4mIHBsYXlsaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wbGF5bGlzdDsg
fQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFBsYXlsaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBWZWN0b3I8UmVmUHRyPE1lZGlhTWV0YWRhdGE+PiYmKTsKKyNlbmRpZgogCi0gICAgdm9p
ZCBhY3Rpb25IYW5kbGVyc1VwZGF0ZWQoKTsKICAgICBib29sIGhhc0FjdGlvbkhhbmRsZXIoTWVk
aWFTZXNzaW9uQWN0aW9uKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVkaWFT
ZXNzaW9uQWN0aW9uSGFuZGxlcj4gaGFuZGxlckZvckFjdGlvbihNZWRpYVNlc3Npb25BY3Rpb24p
IGNvbnN0OwogICAgIGJvb2wgaGFzQWN0aXZlQWN0aW9uSGFuZGxlcnMoKSBjb25zdCB7IHJldHVy
biAhbV9hY3Rpb25IYW5kbGVycy5pc0VtcHR5KCk7IH0KIAorICAgIHZvaWQgY2FsbEFjdGlvbkhh
bmRsZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYpOworCisgICAgY29uc3QgTG9n
Z2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAqbV9sb2dnZXIuZ2V0KCk7IH0KKworICAgIC8v
IEV2ZW50VGFyZ2V0CisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNv
dW50ZWQ6OmRlcmVmOworCisgICAgY2xhc3MgT2JzZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8T2JzZXJ2ZXI+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkg
PSBkZWZhdWx0OworCisgICAgICAgIHZpcnR1YWwgdm9pZCBtZXRhZGF0YUNoYW5nZWQoUmVmUHRy
PE1lZGlhTWV0YWRhdGE+KSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uU3RhdGVD
aGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIHsgfQorICAgICAgICB2aXJ0dWFs
IHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgeyB9
CisgICAgICAgIHZpcnR1YWwgdm9pZCBhY3Rpb25IYW5kbGVyc0NoYW5nZWQoKSB7IH0KKworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgICAgICB2aXJ0dWFsIHZvaWQg
cmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgeyB9CisjZW5kaWYKKyAg
ICB9OworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHJlbW92ZU9i
c2VydmVyKE9ic2VydmVyJik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9u
KE5hdmlnYXRvciYpOwogCi0gICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVy
biAqbV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAKKyAgICB2b2lkIGZvckVhY2hPYnNlcnZl
cihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+Jik7CisgICAgdm9pZCBub3RpZnlNZXRh
ZGF0YU9ic2VydmVycygpOworICAgIHZvaWQgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygp
OworICAgIHZvaWQgbm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpOworICAgIHZvaWQgbm90
aWZ5QWN0aW9uSGFuZGxlck9ic2VydmVycygpOworICAgIHZvaWQgbm90aWZ5UmVhZHlTdGF0ZU9i
c2VydmVycygpOworCisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVNlc3Npb25FdmVudFRhcmdldEludGVyZmFj
ZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZp
bmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVm
KCk7IH0KKwogICAgIFdlYWtQdHI8TmF2aWdhdG9yPiBtX25hdmlnYXRvcjsKICAgICBSZWZQdHI8
TWVkaWFNZXRhZGF0YT4gbV9tZXRhZGF0YTsKICAgICBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
IG1fcGxheWJhY2tTdGF0ZSB7IE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUgfTsKQEAg
LTg1LDYgKzE0MSwxOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8TWVkaWFTZXNzaW9uQWN0aW9u
LCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4sIFdURjo6SW50SGFzaDxNZWRpYVNl
c3Npb25BY3Rpb24+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPE1lZGlhU2Vzc2lvbkFjdGlv
bj4+IG1fYWN0aW9uSGFuZGxlcnM7CiAgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7
CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworCisgICAgV2Vha0hhc2hTZXQ8T2Jz
ZXJ2ZXI+IG1fb2JzZXJ2ZXJzOworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisgICAgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGUgeyBNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyB9OworICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29y
ZGluYXRvcj4gbV9jb29yZGluYXRvcjsKKyAgICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNF
dmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT05fUExBWUxJU1QpCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4gbV9wbGF5
bGlzdDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKaW5kZXggZGVkNGE3NzM4YTIzZDkzMWViM2Iw
YTY4MmJlNTczZjA4MzI0ZDQzNy4uNjFhODc0NDI3NGIyMjM4YTZjZWVlOTAyOGVmYzkyMjljM2Jh
ZWQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb24uaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI2LDkgKzI2LDEwIEBACiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFf
U0VTU0lPTiwKICAgICBFeHBvc2VkPVdpbmRvdywKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRh
YmxlLAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAotXSBpbnRlcmZhY2UgTWVkaWFT
ZXNzaW9uIHsKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gaW50ZXJmYWNlIE1lZGlhU2Vz
c2lvbiA6IEV2ZW50VGFyZ2V0Cit7CiAgICAgYXR0cmlidXRlIE1lZGlhTWV0YWRhdGE/IG1ldGFk
YXRhOwogCiAgICAgYXR0cmlidXRlIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgcGxheWJhY2tT
dGF0ZTsKQEAgLTM3LDMgKzM4LDYgQEAKIAogICAgIHVuZGVmaW5lZCBzZXRQb3NpdGlvblN0YXRl
KG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZT8gc3RhdGUgPSBudWxsKTsKIH07CisKK01lZGlh
U2Vzc2lvbiBpbmNsdWRlcyBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluOworTWVkaWFTZXNz
aW9uIGluY2x1ZGVzIE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCmlu
ZGV4IDVjYjY0NGZmMzYyZGVkNzM3MDJiMTMzZjNmMjBhZDg2NzBiN2ZmNjEuLjliYzRmMDAxM2I0
NmI1MmE4MWMwMDA3OTcyMmEzNjAxMmY3Y2MyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDYgKzM5
LDcgQEAgZW51bSBjbGFzcyBNZWRpYVNlc3Npb25BY3Rpb24gewogICAgIFNraXBhZCwKICAgICBT
dG9wLAogICAgIFNlZWt0bywKKyAgICBTZXR0cmFjaywKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKQEAgLTU2LDcgKzU3LDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpNZWRpYVNlc3Npb25BY3Rpb24+IHsKICAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9u
QWN0aW9uOjpOZXh0dHJhY2ssCiAgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6
U2tpcGFkLAogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlN0b3AsCi0gICAg
ICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Np
b25BY3Rpb246OlNldHRyYWNrCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCmluZGV4
IDQ2MzVlNjk3MzRlZGExOWRjMmE3Y2FlZDlhNWZjNzEwNzQ1OThjZDQuLjhmNzY1ZjY0ZTNkYWNi
ZTcxNzEzYTRmODZiYjliYTJhYjgyZjQzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw0ICsz
NSw3IEBACiAgICAgInNraXBhZCIsCiAgICAgInN0b3AiLAogICAgICJzZWVrdG8iCisjaWYgZGVm
aW5lZChFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCkgJiYgRU5BQkxFX01FRElBX1NFU1NJ
T05fUExBWUxJU1QKKyAgICAsICJzZXR0cmFjayIKKyNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFp
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHMuaAppbmRleCA2NDFlYTcyNGFjYTY3MDVkNzM1MDdlMjg3MWM1MTc0MTc5Njk2
ZDdjLi5mNTkwOWQ0NmY4ZWFjNjZkMGYzYzlkZDdlNzUzMmUzNjA0NjhkNmE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25E
ZXRhaWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQWN0aW9uRGV0YWlscy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDYgKzM3LDkgQEAgc3RydWN0IE1lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHMgewogICAgIE9wdGlvbmFsPGRvdWJsZT4gc2Vla09mZnNldDsKICAgICBPcHRp
b25hbDxkb3VibGU+IHNlZWtUaW1lOwogICAgIE9wdGlvbmFsPGJvb2w+IGZhc3RTZWVrOworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFN0cmluZyB0cmFja0lkZW50aWZp
ZXI7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwKaW5k
ZXggMWExZWY3YWU3NjVhZTAyZjIxZTMyMzJhMTM2NGE5NmExYWRmMTU0Ny4uMmQ4YzYwNzM3YzZk
NjdmZDEyNWUxM2U5MTY5OGVjZmE4MDI2YzA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzIsNCArMzIsNiBAQAogICAgIGRvdWJsZT8gc2Vla09mZnNldDsKICAgICBkb3Vi
bGU/IHNlZWtUaW1lOwogICAgIGJvb2xlYW4/IGZhc3RTZWVrOworCisgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NFU1NJT05fUExBWUxJU1QsIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxh
eWxpc3RdIERPTVN0cmluZz8gdHJhY2tJZGVudGlmaWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGY0ZTkyMTU1ZjFhYzAxNWU2YzUxNzRkNGJlZjY0ODFl
NTkzNTY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0wLDAgKzEsMjQyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2lu
Y2x1ZGUgIkpTRE9NRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0YXRpYyBjb25zdCB2b2lkKiBuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVy
KCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgbG9nSWRlbnRpZmllciA9IGNyeXB0b2dyYXBoaWNh
bGx5UmFuZG9tTnVtYmVyKCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9p
ZCo+KCsrbG9nSWRlbnRpZmllcik7Cit9CisKK1JlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4g
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRv
cikpKTsKK30KKworTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmIHBsYXRmb3JtQ29vcmRp
bmF0b3IpCisgICAgOiBtX3BsYXRmb3JtQ29vcmRpbmF0b3IoV1RGTW92ZShwbGF0Zm9ybUNvb3Jk
aW5hdG9yKSkKKyAgICAsIG1fbG9nZ2VyKG1ha2VSZWYoRG9jdW1lbnQ6OnNoYXJlZExvZ2dlcigp
KSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKCkp
Cit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKworICAgIG1fcGxhdGZvcm1Db29y
ZGluYXRvci0+c2V0TG9nZ2VyKG1fbG9nZ2VyLmNvcHlSZWYoKSwgbV9sb2dJZGVudGlmaWVyKTsK
K30KKworTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6On5NZWRpYVNlc3Npb25Db29yZGluYXRvcigp
ID0gZGVmYXVsdDsKKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJs
ZSB0aW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8g
aWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyLCB0
aW1lKTsKKworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlm
aWVyLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZWVrVG8odGltZSwgW3RpbWUsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKKyAgICAgICAgICAgIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgICAgICAgICBwcm90
ZWN0ZWRUaGlzLT5sb2dnZXIoKS5lcnJvcihwcm90ZWN0ZWRUaGlzLT5sb2dDaGFubmVsKCksIGlk
ZW50aWZpZXIsICJjb29yZGluYXRvci5zZWVrVG8gZmFpbGVkISIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRh
aWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywK
KyAgICAgICAgICAgIC5zZWVrVGltZSA9IHRpbWUsCisgICAgICAgIH07CisgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICAg
ICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSBy
ZWdpc3RlcmVkICdzZWVrVG8nIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm9taXNlLnJlc29s
dmUoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8gaWRlbnRpZmll
ciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyKTsKKworICAgIGlm
ICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVyLCAiTWVkaWFTZXNz
aW9uIGlzIE5VTEwhIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wbGF0Zm9y
bUNvb3JkaW5hdG9yLT5wbGF5KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlk
ZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9u
PiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9z
ZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4
Y2VwdGlvbikpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJv
dGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBpZGVudGlmaWVyLCAiY29vcmRpbmF0b3IucGxheSBm
YWlsZWQhIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBNZWRp
YVNlc3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1l
ZGlhU2Vzc2lvbkFjdGlvbjo6UGxheSwKKyAgICAgICAgfTsKKyAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgICAgICAvLyBG
SVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVy
ZWQgJ3BsYXknIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAg
ICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJ
REVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vz
c2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBO
VUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGlu
YXRvci0+cGF1c2UoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmll
ciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhj
ZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24p
IHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4
Y2VwdGlvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZSgqZXhjZXB0aW9u
KSk7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5sb2dnZXIoKS5lcnJvcihwcm90ZWN0ZWRU
aGlzLT5sb2dDaGFubmVsKCksIGlkZW50aWZpZXIsICJjb29yZGluYXRvci5wYXVzZSBmYWlsZWQh
Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBNZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vz
c2lvbkFjdGlvbjo6UGF1c2UsCisgICAgICAgIH07CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1f
c2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICAgICAgLy8gRklYTUU6
IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdw
YXVzZScgYWN0aW9uIGhhbmRsZXI/CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIH0p
OworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJp
bmcmIHRyYWNrLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1
dG8gaWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVy
KTsKKworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVy
LCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Cisg
ICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAg
ICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBp
ZGVudGlmaWVyLCAiY29vcmRpbmF0b3Iuc2V0VHJhY2sgZmFpbGVkISIpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBk
ZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNldHRy
YWNrLAorICAgICAgICAgICAgLnRyYWNrSWRlbnRpZmllciA9IHRyYWNrLAorICAgICAgICB9Owor
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFp
bHMpOworCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRo
ZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAnc2V0VHJhY2snIGFjdGlvbiBoYW5kbGVyPworICAgICAg
ICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIG1fc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNl
c3Npb24pOworCisgICAgaWYgKG1fc2Vzc2lvbikKKyAgICAgICAgbV9zZXNzaW9uLT5hZGRPYnNl
cnZlcigqdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9u
U3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gc3RhdGUpCit7CisgICAg
aWYgKCFzdGF0ZSkgeworICAgICAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3Rh
dGVDaGFuZ2VkKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3Jt
Q29vcmRpbmF0b3ItPnBvc2l0aW9uU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhUG9zaXRpb25TdGF0ZSB7IHN0YXRlLT5kdXJhdGlvbiwgc3RhdGUtPnBs
YXliYWNrUmF0ZSwgc3RhdGUtPnBvc2l0aW9uIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
IHN0YXRlKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9u
ZSksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGlzIG5vdCBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGFzIGV4
cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBh
dXNlZCksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQgaXMgbm90IFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNl
ZCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4o
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZykgPT0gc3RhdGljX2Nhc3Q8dWludDhf
dD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZTo6UGxheWluZyksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nIGlzIG5v
dCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlOjpQbGF5aW5nIGFzIGV4cGVjdGVkIik7CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3It
PnBsYXliYWNrU3RhdGVDaGFuZ2VkKHN0YXRpY19jYXN0PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU+KHN0YXRlKSk7Cit9CisKK3ZvaWQg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUgc3RhdGUpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90
PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZykgPT0gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZTo6SGF2ZU5vdGhpbmcpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcg
aXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU6OkhhdmVOb3RoaW5nIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEpID09
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0
YXRlOjpIYXZlTWV0YWRhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZUN1cnJlbnREYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERh
dGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhIGlzIG5vdCBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZl
Q3VycmVudERhdGEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhKSA9PSBzdGF0
aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNl
c3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlRnV0dXJlRGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU6OkhhdmVFbm91Z2hEYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0
YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSBpcyBub3QgUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVu
b3VnaERhdGEgYXMgZXhwZWN0ZWQiKTsKKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cmVh
ZHlTdGF0ZUNoYW5nZWQoc3RhdGljX2Nhc3Q8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZT4oc3RhdGUpKTsKK30KKworV1RGTG9nQ2hhbm5lbCYg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NoYW5uZWwoKQoreworICAgIHJldHVybiBMb2dN
ZWRpYTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDdjZWM4ODBiMzUzZjQ2
YmNiZDg3MGZmNWRiYzE5MmM5OTk3YzkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMCww
ICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KKyNpbmNsdWRl
IDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJl
ZDsKKworY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjsKK2NsYXNzIE1lZGlh
U2Vzc2lvbjsKKworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUmVmQ291
bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1YmxpYyBNZWRpYVNlc3Npb246Ok9ic2Vy
dmVyIHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yPiBjcmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5NZWRpYVNlc3Npb25Db29yZGluYXRvcigpOworCisg
ICAgdm9pZCBzZWVrVG8oZG91YmxlLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAg
dm9pZCBwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIHBhdXNlKERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmlu
ZyYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKworICAgIHZvaWQgc2V0TWVkaWFTZXNz
aW9uKE1lZGlhU2Vzc2lvbiopOworCisgICAgLy8gTWVkaWFTZXNzaW9uOjpPYnNlcnZlcgorICAg
IHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikg
ZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFj
a1N0YXRlKSBmaW5hbDsKKyAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUpIGZpbmFsOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmKTsKKworICAg
IGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXI7IH0KKyAgICBj
b25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVy
OyB9CisgICAgc3RhdGljIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKTsKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgeyByZXR1cm4gIk1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yIjsgfQorCisgICAgV2Vha1B0cjxNZWRpYVNlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBSZWY8
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9wbGF0Zm9ybUNvb3JkaW5hdG9yOwor
ICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRl
bnRpZmllcjsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+
IG1fc2Vla1RvUHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+PiBtX3BsYXlQcm9taXNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4+IG1fcGF1c2VQcm9taXNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4+IG1fc2V0VHJhY2tQcm9taXNlOworfTsKKworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMwNWFiODkwZWExODI2ZDBmZTcxMzBiNWQzMmI0MmQ3YjQ2
MjNkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsCisgICAg
RW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25Db29yZGluYXRvciwKKyAgICBFeHBvc2VkPVdp
bmRvdywKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKK10gaW50ZXJmYWNlIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yIHsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2Vla1RvKHVucmVz
dHJpY3RlZCBkb3VibGUgdGltZSk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBsYXkoKTsKKyAg
ICBQcm9taXNlPHVuZGVmaW5lZD4gcGF1c2UoKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2V0
VHJhY2soRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllcik7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhp
bi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvck1peGluLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzhjYzMyZmQwMzE5NGQxNmQ2OWU2OGRl
OWU2ZDVhMDgwNzA5ZDI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OLAor
ICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IsCitdIGludGVyZmFj
ZSBtaXhpbiBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluIHsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I/IGNvb3JkaW5hdG9yOworICAgIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25jb29yZGluYXRvcmNoYW5nZTsKKyAgICBhdHRyaWJ1dGUgTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZSByZWFkeVN0YXRlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGUuaAppbmRleCBkNGFkYmQ1NDE3OTRlNWExMDk1YmU1NGEyM2JiM2ViOWViZTc0NzU2Li43MDYz
Yzc4ZTNkNzhiZmFkMzg4ZGYzMDk0NTRhOWNmN2EzNTRkMmIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ZW51bSBjbGFzcyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHsKK2VudW0gY2xhc3MgTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZSA6IHVpbnQ4X3QgewogICAgIE5vbmUsCiAgICAgUGF1c2VkLAog
ICAgIFBsYXlpbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ3NjIyMDcxMjQzYTY5MzA2NDc3NDgyNjcyMGI5OTYzNmU5MjYwMWYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5
bGlzdE1peGluLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRp
dGlvbmFsPU1FRElBX1NFU1NJT05fUExBWUxJU1QsCisgICAgRW5hYmxlZEJ5U2V0dGluZz1NZWRp
YVNlc3Npb25QbGF5bGlzdCwKK10gaW50ZXJmYWNlIG1peGluIE1lZGlhU2Vzc2lvblBsYXlsaXN0
TWl4aW4geworICAgIFtTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBhdHRy
aWJ1dGUgRnJvemVuQXJyYXk8TWVkaWFNZXRhZGF0YT4gcGxheWxpc3Q7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0NTIzZGQ1NGE3MWU2NjU0YTE3YmIwYzc3NGY3ODgx
NjMzN2Y0NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBNZWRpYVNlc3Npb25SZWFk
eVN0YXRlIDogdWludDhfdCB7CisgICAgSGF2ZU5vdGhpbmcsCisgICAgSGF2ZU1ldGFkYXRhLAor
ICAgIEhhdmVDdXJyZW50RGF0YSwKKyAgICBIYXZlRnV0dXJlRGF0YSwKKyAgICBIYXZlRW5vdWdo
RGF0YSwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40OTczZjJhYTU0Yzg2OGYzYjQ2NWY5YjU1ZTYxOTA1ZDVlYzRiOTQ5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZS5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBD
b25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLAorXSBlbnVtIE1lZGlhU2Vzc2lv
blJlYWR5U3RhdGUgeworICAgICJoYXZlTm90aGluZyIsCisgICAgImhhdmVNZXRhZGF0YSIsCisg
ICAgImhhdmVDdXJyZW50RGF0YSIsCisgICAgImhhdmVGdXR1cmVEYXRhIiwKKyAgICAiaGF2ZUVu
b3VnaERhdGEiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaAppbmRleCAwNDIxOTYxN2MyMzg2OTMw
MTA4YTY4NjBiMjEwMTI2OWNlNTM2ODllLi43ZDJiZjMwNjhiZjU2N2MxYzZmOGEzYzJlODk1NGZh
YWI0ZDIzM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaApAQCAtNDEsNyArNDEsNyBAQCBwdWJs
aWM6CiAgICAgZXhwbGljaXQgTmF2aWdhdG9yTWVkaWFTZXNzaW9uKE5hdmlnYXRvciYpOwogICAg
IH5OYXZpZ2F0b3JNZWRpYVNlc3Npb24oKTsKIAotICAgIHN0YXRpYyBNZWRpYVNlc3Npb24mIG1l
ZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTWVkaWFT
ZXNzaW9uJiBtZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7CiAgICAgTWVkaWFTZXNzaW9uJiBtZWRp
YVNlc3Npb24oKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNGI0MTVlOWZjYmQ0Yjhk
ODY3ZGY1ZGE3ZTdjNjEzM2Y5YjE5NDBlYy4uYTc1YTJmMzM1ZGRhNTU3MzI4NDNkYWIwMGE2MzE4
OTg0Yjg0NGE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEzMSw2ICsxMzEsNyBAQCBNb2R1bGVzL21l
ZGlhY2FwYWJpbGl0aWVzL01lZGlhQ2FwYWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYWNhcGFi
aWxpdGllcy9OYXZpZ2F0b3JNZWRpYUNhcGFiaWxpdGllcy5jcHAKIE1vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhTWV0YWRhdGEuY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
Y3BwCitNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIE1v
ZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5jcHAKIE1vZHVsZXMvbWVk
aWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9C
bG9iRXZlbnQuY3BwCkBAIC0xOTk4LDYgKzE5OTksNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9QYXRo
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3Bw
CitwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVnaW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2UuY3BwCkBAIC0zMjI2LDYgKzMyMjgsNyBAQCBKU01lZGlhS2V5cy5jcHAKIEpTTWVk
aWFLZXlzUmVxdWlyZW1lbnQuY3BwCiBKU01lZGlhTGlzdC5jcHAKIEpTTWVkaWFNZXRhZGF0YS5j
cHAKK0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiBKU01lZGlhTWV0YWRhdGFJbml0LmNw
cAogSlNNZWRpYVBvc2l0aW9uU3RhdGUuY3BwCiBKU01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMzIz
Niw2ICszMjM5LDcgQEAgSlNNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmNwcAogSlNNZWRpYVNl
c3Npb25BY3Rpb25IYW5kbGVyLmNwcAogSlNNZWRpYVNlc3Npb25BY3Rpb24uY3BwCiBKU01lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGUuY3BwCitKU01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuY3BwCiBK
U01lZGlhU2Vzc2lvbi5jcHAKIEpTTWVkaWFTb3VyY2UuY3BwCiBKU01lZGlhU3RyZWFtLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGVjYWU1MDAzNGVhYTJjNjZjYWI2Y2YyNzJiYjcwMWZkOThiODQ0MjUuLjY1ODQ5ODE1OGFm
YmU4Mjc0ZmUxZTQyMjMwMzQ3OGM0MDgyNWJjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkwLDYgKzkwLDcgQEAKIAkJMDcw
NzU2RDQxNDIzOUE0RjAwNDE0MTYxIC8qIEpTSFRNTFRyYWNrRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwNzU2RDIxNDIzOUE0RTAwNDE0
MTYxIC8qIEpTSFRNTFRyYWNrRWxlbWVudC5oICovOyB9OwogCQkwNzA3NTZERTE0MjM5QjRFMDA0
MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MDc1NkQ4MTQyMzlCNEIwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1
ZS5oICovOyB9OwogCQkwNzA3NTZFMDE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3
NTZEQTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0LmggKi87IH07CisJCTA3
MDhGMkI2MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA4RjJC
NDI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oICov
OyB9OwogCQkwNzA5RDc4RjFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOUQ3
OEQxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzA5RDc5MjFBRTU1NTdF
MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjgg
LyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgKi87IH07CiAJCTA3MDlENzkzMUFFNTU1
N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc5MTFBRTU1NTdFMDA0RTQyRjgg
LyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjMsNiArMTI0LDcgQEAKIAkJMDczQTE1NTQyMTc3
QTQyNjAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVt
b3RlVmlkZW9TYW1wbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwNzNCODc2NzFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNC
ODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3NjkxRTQzODVB
QzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1
ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTA3NDBCMTQ0MjVERTMxRjgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDc0MEIxNDMyNURFMzFBOTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAgKi87IH07CiAJCTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9y
bVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUwMzNBODI1
MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUwMzNBNjI1MkJEMzY4MDBG
NzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUy
IC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5o
ICovOyB9OwpAQCAtNTY5Miw2ICs1Njk0LDcgQEAKIAkJMDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYx
IC8qIEpTVGV4dFRyYWNrQ3VlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
VGV4dFRyYWNrQ3VlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDc1NkQ5MTQy
MzlCNEMwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVMaXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2REExNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNr
Q3VlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFja0N1
ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcwOEYyQjQyNURERTQ1RDAw
NEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA5RDc4QzFBRTU1NTU0MDA0RTQyRjggLyog
V2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcwOUQ3OEQxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTZXNzaW9uTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA5RDc5MDFBRTU1NTdFMDA0
RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3ODMsNiArNTc4NiwxNCBAQAogCQkwNzJBRTFFMzE4
M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyQUUxRTQxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGlt
ZVBsdWdpblJlcGxhY2VtZW50LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBw
YXRoID0gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3MkNBODYwMTZDQjREQzMwMDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkJGQjI1
REIzOEJDMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcy
REJDMDMyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3MkRCQzA1MjVEQzZCRDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA2MjVEQzZFREEwMEExMzUwRSAv
KiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDcy
NURDNkVEQTAwQTEzNTBFIC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA3MzZCNzMwMjYwOTRBMzcwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25D
b29yZGluYXRvck1peGluLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3MzIyNjA5NTU1NDAwRTA2OTk0
IC8qIE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vzc2lvblBsYXls
aXN0TWl4aW4uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM2QjczMzI2MEE3
QjY0MDBFMDY5OTQgLyogTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlh
TWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDczNzk0REMxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENPZmZlckFuc3dlck9wdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0RTMxOUVFMkZGMjAwRTVBMDQ1IC8qIEpT
UlRDQ29uZmlndXJhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1JUQ0NvbmZpZ3VyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzM3OTRFNDE5RUUyRkYyMDBFNUEwNDUgLyogSlNSVENDb25maWd1cmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUlRDQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNTgwNCw2ICs1ODE1LDEwIEBACiAJCTA3M0I4NzYzMUU0Mzg1
OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFT
b3VyY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY1
MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDBCMTQzMjVERTMxQTkw
MEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDc0NDcxRkQyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5
U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwNzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VCMUUwQzRBRTUwMDBEMDk0NCAvKiBN
b2NrQXVkaW9TaGFyZWRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1v
Y2tBdWRpb1NoYXJlZFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NEVD
RUMxRTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNb2NrQXVkaW9TaGFyZWRVbml0Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ2RDMwQTIxNDZFQTM3MDAzRERGODQgLyogSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC01OTIwLDYgKzU5MzUsNyBAQAogCQkwN0UxMTZCMDE0ODlDOUExMDBFQzVBQ0UgLyog
SlNUZXh0VHJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNUZXh0VHJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
N0UxMTcwNjE0ODlFQkVCMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTgg
LyogTWVkaWFQbGF5YmFja1RhcmdldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVBsYXliYWNrVGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
RTVGMzkyMjVFQUE5MUYwMEE4NTNBRCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEz
QTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyog
SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAv
KiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC05Nzk3LDEwICs5ODEzLDEwIEBACiAJCTZFMEU1NjlBMTgzQkZGRTYwMEUw
RThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZsb2F0Um91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUy
MUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QzExMTI2MzM5OTAwQTdC
RTAyIC8qIEdyYXBoaWNzQ29udGV4dEdMQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTZFMjQyQjI2MjMzNTkzRDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVFVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
RVRDLmNwcDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyNDJCMjgyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVFVEMuaDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVn
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFMjQyQjI5MjMzNTkzRDcwMDJDQURENCAvKiBK
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2Vi
S2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVFVEMxLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyNDJCMkEyMzM1
OTNEODAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5oOyBwYXRoID0gLi4vLi4vLi4vLi4v
Li4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVFVEMxLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMjQy
QjI2MjMzNTkzRDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUyNDJCMjgyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVFVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUyNDJCMjkyMzM1
OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTZFMjQyQjJBMjMzNTkzRDgwMDJDQURENCAvKiBKU1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVFVEMxLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUVUQzEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyN0YyNDIyMjk4Q0U0
QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjdGMjQzMjI5QzlGODQwMEYxRjYzMiAvKiBFeHRlbnNp
b25zR0xBTkdMRS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeHRl
bnNpb25zR0xBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjdGMjQ0
MjI5QzlGOEQwMEYxRjYzMiAvKiBFeHRlbnNpb25zR0xBTkdMRS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFeHRlbnNpb25zR0xBTkdMRS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTk2MDMsNiArMTk2MTksOCBAQAogCQkJCTUxMDU4QURBMUQ2NzkyNTcwMDlB
NTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmggKi8sCiAJCQkJNDE1N0VCRjkxRTNBQjA2ODAw
QUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNDE1N0VC
RjgxRTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oICovLAor
CQkJCTA3NDBCMTQzMjVERTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwICovLAorCQkJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQkyRDZGM0U4QTFDMUVDQjFDMDA2MURCRDQgLyogTW9j
a1BhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDZGM0U4QjFDMUVDQjFDMDA2MURCRDQgLyogTW9j
a1BhZ2VPdmVybGF5LmggKi8sCiAJCQkJMkQ2RjNFOEMxQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQ
YWdlT3ZlcmxheS5pZGwgKi8sCkBAIC0yNjkxMiw2ICsyNjkzMCw4IEBACiAJCQkJNTUwNjQwQUQy
NDA3NTZEQTAwQUFFMDQ1IC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJCYWNrZW5kLmggKi8sCiAJCQkJ
MDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLywKIAkJCQlDRUVG
Q0Q3QjE5REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggKi8s
CisJCQkJMDdFNUYzOTIyNUVBQTkxRjAwQTg1M0FEIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuY3BwICovLAorCQkJCTA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDND
RkE0IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmggKi8sCiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VG
NTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5jcHAgKi8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAw
N0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovLApAQCAtMjgzNTUsNiArMjgzNzUsNyBA
QAogCQkJCUNERERFQTJDMjUzOENFMDQwMEExMzAwQyAvKiBNZWRpYU1ldGFkYXRhLmlkbCAqLywK
IAkJCQlDRERERUEzMDI1MzhDRTFFMDBBMTMwMEMgLyogTWVkaWFNZXRhZGF0YUluaXQuaCAqLywK
IAkJCQlDRERERUEyRjI1MzhDRTFFMDBBMTMwMEMgLyogTWVkaWFNZXRhZGF0YUluaXQuaWRsICov
LAorCQkJCTA3MzZCNzMzMjYwQTdCNjQwMEUwNjk5NCAvKiBNZWRpYU1ldGFkYXRhUGxheWxpc3RN
aXhpbi5pZGwgKi8sCiAJCQkJQ0REREVBMzQyNTM4Q0U2MjAwQTEzMDBDIC8qIE1lZGlhUG9zaXRp
b25TdGF0ZS5oICovLAogCQkJCUNERERFQTMzMjUzOENFNjIwMEExMzAwQyAvKiBNZWRpYVBvc2l0
aW9uU3RhdGUuaWRsICovLAogCQkJCUNERERFQTI0MjUzOENEODAwMEExMzAwQyAvKiBNZWRpYVNl
c3Npb24uY3BwICovLApAQCAtMjgzNjYsOCArMjgzODcsMTUgQEAKIAkJCQlDRERERUEzNTI1MzhD
RTcwMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwgKi8sCiAJCQkJQ0RE
REVBM0EyNTM4RTlDMjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCAqLywK
IAkJCQlDRERERUEzOTI1MzhFOUMyMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxl
ci5pZGwgKi8sCisJCQkJMDcyREJDMDUyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcCAqLywKKwkJCQkwNzJEQkMwMzI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKKwkJCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyog
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsICovLAorCQkJCTA3MzZCNzMwMjYwOTRBMzcwMEUw
Njk5NCAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlkbCAqLywKIAkJCQlDRERERUEy
OTI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJ
CUNERERFQTI4MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlk
bCAqLywKKwkJCQkwNzM2QjczMjI2MDk1NTU0MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uUGxheWxp
c3RNaXhpbi5pZGwgKi8sCisJCQkJMDc0NDcxRkQyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vz
c2lvblJlYWR5U3RhdGUuaCAqLywKKwkJCQkwNzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyogTWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgKi8sCiAJCQkJQ0REREVBMjUyNTM4Q0RBQjAwQTEzMDBD
IC8qIE5hdmlnYXRvcitNZWRpYVNlc3Npb24uaWRsICovLAogCQkJCUNERERFQTI3MjUzOENEQUIw
MEExMzAwQyAvKiBOYXZpZ2F0b3JNZWRpYVNlc3Npb24uY3BwICovLAogCQkJCUNERERFQTI2MjUz
OENEQUIwMEExMzAwQyAvKiBOYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCAqLywKQEAgLTI4Mzk0LDYg
KzI4NDIyLDggQEAKIAkJCQlDRERERUE0MDI1MzkxMURCMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzLmggKi8sCiAJCQkJQ0REREVBNEQyNTM5MTNCQjAwQTEzMDBDIC8qIEpT
TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5jcHAgKi8sCiAJCQkJQ0REREVBNEUyNTM5MTNCQzAw
QTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovLAorCQkJCTA3MkRCQzA3
MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJ
CQkwNzJEQkMwNjI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
ICovLAogCQkJCUNERERFQTQ2MjUzOTExREQwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvblBsYXli
YWNrU3RhdGUuY3BwICovLAogCQkJCUNERERFQTQyMjUzOTExREMwMEExMzAwQyAvKiBKU01lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGUuaCAqLywKIAkJCSk7CkBAIC0zNDI5MSw2ICszNDMyMSw3IEBA
CiAJCQkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRUVGQ0Q3QzE5REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJl
c291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzBFMDkxOTE4NzVFRUZDMDAzQTFE
M0MgLyogUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTA3MDhGMkI2
MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwN0Y5NDQxNjE4NjREMDQ2MDA1RDMxQ0IgLyogUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVDNDc2OTA5QUM0RDQzMDBB
NkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTk4OTA1
ODE0RTlDMjk5MDBFOEQxOEIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLywK
QEAgLTM2MTkyLDYgKzM2MjIzLDcgQEAKIAkJCQk1MTA1OEFEQjFENjc5MkMxMDA5QTUzOEMgLyog
TW9ja0dhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwNThBREQxRDY3OTJDMTAwOUE1
MzhDIC8qIE1vY2tHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE1N0VC
RkExRTNBQjY3OTAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkwNzQwQjE0NDI1REUzMUY4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENkYzRTkwMUMxRUNCMjcw
MDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5N0Yw
NDcxOURENDEzQzAwMUVFOUMzIC8qIE1vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBMUFGRURFNzFGOEJGRjZEMDA4NzAxM0YgLyogTW9ja1BheW1lbnRDb29yZGlu
YXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCA2MDg4ZTYyMmJkYTVlZDM0YjFhMmYwYzNjZjIy
ZDVjNDY0YzA2ZjBkLi44NmVhYWEwMGYxNmJiYjZmNWJmZmE0Yjg5OGFhZjE3OTFhZTM3ODEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CkBAIC0xNzEsNiArMTcxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKE1lZGlh
UXVlcnlMaXN0RXZlbnQpIFwKICAgICBtYWNybyhNZWRpYVJlY29yZGVyKSBcCiAgICAgbWFjcm8o
TWVkaWFSZWNvcmRlckVycm9yRXZlbnQpIFwKKyAgICBtYWNybyhNZWRpYVNlc3Npb25Db29yZGlu
YXRvcikgXAogICAgIG1hY3JvKE1lZGlhU291cmNlKSBcCiAgICAgbWFjcm8oTWVkaWFTdHJlYW0p
IFwKICAgICBtYWNybyhNZWRpYVN0cmVhbVRyYWNrKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApp
bmRleCAxMzk0NDQzOTgxNDYwOTA5ZWYyYTBmZTViYzdkNzlhOTliNzJlNTU1Li4yYzY4MDdkY2E2
NTdmNjUwMmIyMGY0MWM1YWRhMmVlNjFiM2YyZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgK
QEAgLTEwMSw2ICsxMDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oY29ubmVj
dGluZykgXAogICAgIG1hY3JvKGNvbnRleHRtZW51KSBcCiAgICAgbWFjcm8oY29udHJvbGxlcmNo
YW5nZSkgXAorICAgIG1hY3JvKGNvb3JkaW5hdG9yY2hhbmdlKSBcCiAgICAgbWFjcm8oY29weSkg
XAogICAgIG1hY3JvKGN1ZWNoYW5nZSkgXAogICAgIG1hY3JvKGN1dCkgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggNjk2ZWE5Y2ViZDIxZDE0OWFlYTVlMGJi
NjQzN2FjZWZiOGNhMjAzNC4uN2EyYzBhOGQ4YzA3NjE5ZDBlNjdiMjI3YTMwNGU2MmFjZjg5ZWU3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC0yMyw2ICsy
Myw3IEBAIE1lZGlhRGV2aWNlcyBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KIE1lZGlhS2V5U2Vz
c2lvbiBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIE1lZGlhUXVlcnlMaXN0CiBNZWRpYVJl
Y29yZGVyIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQorTWVkaWFTZXNzaW9uIGNvbmRpdGlvbmFs
PU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IKIE1lZGlhU291cmNlIGNvbmRpdGlvbmFsPU1FRElB
X1NPVVJDRQogTWVkaWFTdHJlYW0gY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBNZWRpYVN0cmVh
bVRyYWNrIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1N0cmluZ0NhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJh
Y2suaAppbmRleCBjZTFjM2E1NjgyZmYxYjdkYTM5OGY5YzNhNDQwYTc0OTdkOTMyZjE5Li42Nzlm
YjljODlkYWE3ODhiYmJmNWE3NTc1ZDljZDIxMTkwNDYyNTY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3Ry
aW5nQ2FsbGJhY2suaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDYWxs
YmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIGRhdGEpID0gMDsKIAog
ICAgIC8vIEhlbHBlciB0byBwb3N0IGNhbGxiYWNrIHRhc2suCi0gICAgdm9pZCBzY2hlZHVsZUNh
bGxiYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIGRhdGEpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgU3RyaW5nJiBkYXRhKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTExNzg1
MTEzOTlmNDE1Zjc4MWIzMmFhZWU3NmMxMTNlYjE3ZWJjZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCisjaWYg
RU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhh
dmVOb3RoaW5nIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlTWV0YWRh
dGEiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVDdXJyZW50RGF0YSIp
LAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUZ1dHVyZURhdGEiKSwKKyAg
ICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVFbm91Z2hEYXRhIiksCisgICAgfTsK
KyAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nKSwgIk1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7
CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSkgPT0g
MSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSBpcyBub3QgMSBhcyBleHBl
Y3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVu
dERhdGEpID09IDIsICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEgaXMg
bm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVf
dD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZUZ1dHVyZURhdGEpID09IDMsICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0
dXJlRGF0YSBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSkgPT0gNCwgIk1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU6OkhhdmVFbm91Z2hEYXRhIGlzIG5vdCA0IGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0
YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAg
ICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpXTsKK30KKworU3RyaW5n
IGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCit7CisgICAgc3RhdGljIGNvbnN0
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJOb25lIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJQ
YXVzZWQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlBsYXlpbmciKSwKKyAg
ICB9OworICAgIHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSksICJN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCkgPT0gMSwgIk1l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nKSA9PSAyLCAi
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBpcyBub3QgMiBhcyBleHBlY3RlZCIp
OworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KHN0YXRlKSA8IFdURl9BUlJBWV9MRU5H
VEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KHN0YXRl
KV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkxMGRjNTFkMmE2ZjgwYWJjOTdhYTYwN2Q5ZTlhNTEwMTUwZjMyZWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQor
CisjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
PHd0Zi9Mb2dnZXIuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYv
VW5pcXVlUmVmLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFJl
ZkNvdW50ZWQ8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKKwor
ICAgIHVzaW5nIFNlZWtDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47CisgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhkb3VibGUs
IFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBQbGF5Q29tcGxldGVk
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+
OworICAgIHZpcnR1YWwgdm9pZCBwbGF5KFBsYXlDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisK
KyAgICB1c2luZyBQYXVzZUNvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoUGF1c2VD
b21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBTZXRUcmFja0NvbXBsZXRlZENh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPjsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRl
ZENhbGxiYWNrJiYpID0gMDsKKworICAgIHZvaWQgc2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYgbG9n
Z2VyLCBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgbV9sb2dnZXIg
PSBtYWtlUmVmUHRyKGxvZ2dlcik7CisgICAgICAgIG1fbG9nSWRlbnRpZmllciA9IGxvZ0lkZW50
aWZpZXI7CisgICAgfQorCisgICAgc3RydWN0IE1lZGlhUG9zaXRpb25TdGF0ZSB7CisgICAgICAg
IGRvdWJsZSBkdXJhdGlvbiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHko
KTsKKyAgICAgICAgZG91YmxlIHBsYXliYWNrUmF0ZSA9IDE7CisgICAgICAgIGRvdWJsZSBwb3Np
dGlvbiA9IDA7CisgICAgfTsKKworICAgIGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZSA6IHVpbnQ4X3QgeworICAgICAgICBIYXZlTm90aGluZywKKyAgICAgICAgSGF2ZU1ldGFkYXRh
LAorICAgICAgICBIYXZlQ3VycmVudERhdGEsCisgICAgICAgIEhhdmVGdXR1cmVEYXRhLAorICAg
ICAgICBIYXZlRW5vdWdoRGF0YSwKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlIDogdWludDhfdCB7CisgICAgICAgIE5vbmUsCisgICAgICAgIFBhdXNl
ZCwKKyAgICAgICAgUGxheWluZywKKyAgICB9OworCisgICAgdmlydHVhbCB2b2lkIHBvc2l0aW9u
U3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFj
a1N0YXRlKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCisgICAgY29uc3QgTG9nZ2VyKiBsb2dnZXJQ
dHIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAgIGNvbnN0IHZvaWQqIGxv
Z0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAgICBjb25z
dCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiAiUGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvciI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Qg
eyByZXR1cm4gTG9nTWVkaWE7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8Y29uc3QgTG9nZ2Vy
PiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Cit9OworCitTdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSk7CitTdHJpbmcgY29udmVydEVudW1lcmF0aW9u
VG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZSk7CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDc2MzQwOWY2NjFh
MjcxOWRhYmYwOTMzZTBmODlkMmUwMmNlYzY0ZjcuLjc0MmVlN2RmN2IyOTA3MDBlMDc4ZDRmYzA0
NjliYTNlMThhMTE3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMz
Nyw2ICszMzcsMTIgQEAKICNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorI2luY2x1ZGUg
Ik1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmgiCisjZW5kaWYK
KwogI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogI2luY2x1ZGUgIkltYWdlRXh0cmFjdGlv
blJlc3VsdC5oIgogI2VuZGlmCkBAIC02MTEyLDkgKzYxMTgsNDAgQEAgdm9pZCBJbnRlcm5hbHM6
OmxvYWRBcnR3b3JrSW1hZ2UoU3RyaW5nJiYgdXJsLCBBcnR3b3JrSW1hZ2VQcm9taXNlJiYgcHJv
bWlzZSkKICAgICB9KTsKICAgICBtX2FydHdvcmtMb2FkZXItPnJlcXVlc3RJbWFnZVJlc291cmNl
KCk7CiB9Ci0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZlB0cjxTdHJpbmdD
YWxsYmFjaz4mJiBsaXN0ZW5lcikKK3sKKyAgICBpZiAobV9tZWRpYVNlc3Npb25Db29yZGluYXRv
cikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERv
Y3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmRvbVdpbmRvdygpKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisKKyAgICBp
ZiAoIWRvY3VtZW50LT5zZXR0aW5ncygpLm1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZCgp
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisKKyAg
ICBhdXRvJiBzZXNzaW9uID0gTmF2aWdhdG9yTWVkaWFTZXNzaW9uOjptZWRpYVNlc3Npb24oZG9j
dW1lbnQtPmRvbVdpbmRvdygpLT5uYXZpZ2F0b3IoKSk7CisgICAgYXV0byBtb2NrID0gTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoY29udGV4dCwgV1RGTW92ZShsaXN0ZW5lcikp
OworICAgIG1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gbW9jay5wdHIoKTsKKyAgICBt
X21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0
ZShtb2NrLmdldCgpKTsKKyAgICBzZXNzaW9uLnNldENvb3JkaW5hdG9yKG1fbWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuZ2V0KCkpOworCisgICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8
dm9pZD4gSW50ZXJuYWxzOjpzZXRNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21tYW5kc1No
b3VsZEZhaWwoYm9vbCBzaG91bGRGYWlsKQoreworICAgIGlmICghbV9tb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9OworCisgICAgbV9tb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3ItPnNldENvbW1hbmRzU2hv
dWxkRmFpbChzaG91bGRGYWlsKTsKKyAgICByZXR1cm4geyB9OworfQorI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TRVNTSU9OKQorCiBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHN0cmluZyhQYXJ0aWFs
T3JkZXJpbmcgb3JkZXJpbmcpCiB7CiAgICAgaWYgKGlzX2x0KG9yZGVyaW5nKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDYwZWNjNDg4YjQzMjA3N2ViMmUzNjEyYzA2ZmI0ZTk4
ZGE2YWQ2NmIuLjIxM2Q4N2NlZjY0YWQ1YWRlNmJhMDI1ODA3NDgxZTU5ODkwOTc4OTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTM2LDYgKzEzNiwxMCBAQCBjbGFzcyBXZWJY
UlRlc3Q7CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiBjbGFzcyBNZWRpYVNlc3Npb247CiBz
dHJ1Y3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlsczsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUikKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworY2xhc3MgTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworI2VuZGlmCiAjZW5kaWYKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwpAQCAtMTA5MywxMCArMTA5
NywxNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgRXhjZXB0aW9u
T3I8ZG91YmxlPiBjdXJyZW50TWVkaWFTZXNzaW9uUG9zaXRpb24oY29uc3QgTWVkaWFTZXNzaW9u
Jik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2VuZE1lZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNl
c3Npb24mLCBjb25zdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzJik7Ci0gICAgdXNpbmcgQXJ0
d29ya0ltYWdlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8SW1hZ2VE
YXRhPj47CisKKyAgICAgICAgdXNpbmcgQXJ0d29ya0ltYWdlUHJvbWlzZSA9IERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8SW1hZ2VEYXRhPj47CiAgICAgdm9pZCBsb2FkQXJ0d29ya0lt
YWdlKFN0cmluZyYmLCBBcnR3b3JrSW1hZ2VQcm9taXNlJiYpOworCisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVnaXN0ZXJNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZlB0cjxT
dHJpbmdDYWxsYmFjaz4mJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKGJvb2wpOwogI2VuZGlmCiAKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikKKwogICAgIGVudW0gVHJlZVR5cGUgOiB1aW50OF90
IHsgVHJlZSwgU2hhZG93SW5jbHVkaW5nVHJlZSwgQ29tcG9zZWRUcmVlIH07CiAgICAgU3RyaW5n
IHRyZWVPcmRlcihOb2RlJiwgTm9kZSYsIFRyZWVUeXBlKTsKICAgICBTdHJpbmcgdHJlZU9yZGVy
Qm91bmRhcnlQb2ludHMoTm9kZSYgY29udGFpbmVyQSwgdW5zaWduZWQgb2Zmc2V0QSwgTm9kZSYg
Y29udGFpbmVyQiwgdW5zaWduZWQgb2Zmc2V0QiwgVHJlZVR5cGUpOwpAQCAtMTE0MCw2ICsxMTUx
LDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQlhSKQogICAgIFJlZlB0cjxXZWJYUlRlc3Q+
IG1feHJUZXN0OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKKyAgICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fbWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I7CisgICAgUmVmUHRyPE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9tb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBlODVlMDhkZjg4Y2Q5
NTgwMTlkYmU0NjEzZTM2ZDQ5ZGI4NjExNjgzLi4yYzk0OGIyMmI3NzE0YzE5NzNmMmMzNGY4MWRl
ZTcwOGMyMzZjYjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC05OTEs
NiArOTkxLDkgQEAgZW51bSBUcmVlVHlwZSB7CiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJ
T05dIHVuZGVmaW5lZCBzZW5kTWVkaWFTZXNzaW9uQWN0aW9uKE1lZGlhU2Vzc2lvbiBzZXNzaW9u
LCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGFjdGlvbkRldGFpbHMpOwogICAgIFtDb25kaXRp
b25hbD1NRURJQV9TRVNTSU9OXSBQcm9taXNlPEltYWdlRGF0YT4gbG9hZEFydHdvcmtJbWFnZShE
T01TdHJpbmcgdXJsKTsKICAgICAKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUiwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdW5kZWZpbmVkIHJlZ2lz
dGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFN0cmluZ0NhbGxiYWNrIGNhbGxiYWNrKTsK
KyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUl0gdW5kZWZpbmVkIHNl
dE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChib29sZWFuIHNo
b3VsZEZhaWwpOworCiAgICAgRE9NU3RyaW5nIHRyZWVPcmRlcihOb2RlIGEsIE5vZGUgYiwgb3B0
aW9uYWwgVHJlZVR5cGUgdHJlZSA9ICJUcmVlIik7CiAgICAgRE9NU3RyaW5nIHRyZWVPcmRlckJv
dW5kYXJ5UG9pbnRzKE5vZGUgY29udGFpbmVyQSwgdW5zaWduZWQgbG9uZyBvZmZzZXRBLCBOb2Rl
IGNvbnRhaW5lckIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0Qiwgb3B0aW9uYWwgVHJlZVR5cGUgdHJl
ZSA9ICJUcmVlIik7CiAgICAgYm9vbGVhbiByYW5nZUNvbnRhaW5zTm9kZShBYnN0cmFjdFJhbmdl
IHJhbmdlLCBOb2RlIG5vZGUsIG9wdGlvbmFsIFRyZWVUeXBlIHRyZWUgPSAiVHJlZSIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMzNzVmYjYxMzI1MGQ3MWQ3MTE0NTc2NzQ5NDNhNWMwMTc4NTI5
ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgi
CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAi
U3RyaW5nQ2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNp
bmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CisjaW5jbHVkZSA8d3RmL1VVSUQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1JlZjxNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZlB0
cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY29udGV4dCwgV1RGTW92ZShsaXN0ZW5lcikp
KTsKK30KKworTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRyPFN0cmluZ0Nh
bGxiYWNrPiYmIGxpc3RlbmVyKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX3N0
YXRlQ2hhbmdlTGlzdGVuZXIoV1RGTW92ZShsaXN0ZW5lcikpCit7Cit9CisKK09wdGlvbmFsPEV4
Y2VwdGlvbj4gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZXN1bHQoKSBjb25zdAorewor
ICAgIGlmIChtX2ZhaWxDb21tYW5kcykKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CisKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCit2b2lkIE1v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBTZWVrQ29tcGxl
dGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExP
R0lERU5USUZJRVIsIHRpbWUpOworICAgIG1fY29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJs
ZSB7CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdCgpKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYgY2Fs
bGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAg
ICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjayhy
ZXN1bHQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlT
X0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNr
KFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjayhyZXN1bHQoKSk7CisgICAgfSk7Cit9
CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJp
bmcsIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNf
TE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1fY29udGV4dC0+cG9zdFRhc2so
W3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdCgpKTsKKyAgICB9KTsKK30K
Kwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2Vk
KE9wdGlvbmFsPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhUG9zaXRpb25T
dGF0ZT4pCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAg
ICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgp
LCAicG9zaXRpb25TdGF0ZUNoYW5nZWQiKTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCit7CisgICAgQUxXQVlTX0xPR19JRl9Q
T1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisgICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVy
LT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInJlYWR5U3RhdGVDaGFuZ2VkIik7
Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hh
bmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFj
a1N0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklF
Uiwgc3RhdGUpOworICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lci0+c2NoZWR1bGVDYWxsYmFjayht
X2NvbnRleHQuZ2V0KCksICJwbGF5YmFja1N0YXRlQ2hhbmdlZCIpOworfQorCit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg3MGJiNGNiMGJlOTZmODVmZDQ1NzBlOGUzOTNiNzIzNmZlOGYyYjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
CkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVl
dWUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU3RyaW5nQ2FsbGJhY2s7CisKK2NsYXNzIE1v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvciA6IHB1YmxpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYpOworCisgICAgdm9pZCBzZXRD
b21tYW5kc1Nob3VsZEZhaWwoYm9vbCBzaG91bGRGYWlsKSB7IG1fZmFpbENvbW1hbmRzID0gc2hv
dWxkRmFpbDsgfQorCitwcml2YXRlOgorICAgIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKKworICAg
IHZvaWQgc2Vla1RvKGRvdWJsZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAg
IHZvaWQgcGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBwYXVz
ZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgc2V0VHJhY2soY29u
c3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworCisgICAgdm9p
ZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+KSBmaW5h
bDsKKyAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpIGZp
bmFsOworICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZSkgZmluYWw7CisKKyAgICBPcHRpb25hbDxFeGNlcHRpb24+IHJlc3VsdCgpIGNvbnN0Owor
CisgICAgUmVmPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29udGV4dDsKKyAgICBSZWZQdHI8
U3RyaW5nQ2FsbGJhY2s+IG1fc3RhdGVDaGFuZ2VMaXN0ZW5lcjsKKyAgICBib29sIG1fZmFpbENv
bW1hbmRzIHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRkNjBmNzI0ODQ3YWE1MTZiNmZmY2EzNjY1OTgzNDk3
YjY2OWNkOTAuLjkxN2QyMDQ0ZTdmYmY4MmFiZjg1Y2RiNTg5ODU4ZmUwNmNlZGY2ODcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0xOCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBFeHBlcmltZW50YWwgTWVkaWFTZXNz
aW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0NTA4ODYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRp
bmF0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zZXNzaW9u
L21vY2stY29vcmRpbmF0b3IuaHRtbDogQWRkZWQuCisKIDIwMjEtMDMtMjMgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIDIgd2ViIGF1ZGlvIFdQVCB0
ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3MgaXMgZW5hYmxlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNDEwY2YzNmFiYzkzMTA5MmZhYjA3Mzk5MTU2N2Q5ZTYyMWY4YWM4NS4uNjM4
OTAwZWVlZGM5YWYxYTJjMjQ0MTMzZTdhZGUzYjkzNDVjZjEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CkBAIC00NjM3LDYgKzQ2MzcsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1hZnRlci1pbml0aWFsLWxheW91dC93cgogIyBDb2NvYS1v
bmx5CiBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtaGRyLXN3aXRjaC5odG1sIFsgU2tpcCBdCiBo
dHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNhbnBsYXl0aHJvdWdoLXdlYm0uaHRtbCBbIFNraXAgXQor
bWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwgWyBTa2lwIF0KIAogIyBU
aGVzZSB0ZXN0cyByZWx5IG9uIHdlYmtpdC10ZXN0LXJ1bm5lciBmbGFncyB0aGF0IGFyZW4ndCBp
bXBsZW1lbnRlZCBmb3IgRHVtcFJlbmRlclRyZWUsIHNvIHRoZXkgd2lsbCBmYWlsIHVuZGVyIGxl
Z2FjeSBXZWJLaXQuCiBlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRvLmh0bWwgWyBGYWlsdXJlIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mu
d2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBmZWM2ZDY0Mzg5ZWRlMWMyMGQ0ZjI2MjM1N2YxMjYy
YzcxMWEwMTM1Li43MWRiY2MzOGQzOTE5YmIzYzBiMzYyOGM0ZDEwZGQyNjQ3OTE1Y2U4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
c2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYXNlc3Npb24vaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xMiwxMCArMTIsMTQgQEAgUEFTUyBOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJy
ZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIE1lZGlhU2Vzc2lvbiBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CitG
QUlMIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9lcXVhbHM6IHByb3RvdHlwZSBvZiBzZWxmJ3MgcHJvcGVy
dHkgIk1lZGlhU2Vzc2lvbiIgaXMgbm90IEZ1bmN0aW9uLnByb3RvdHlwZSBleHBlY3RlZCBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGJ1dCBnb3QgZnVuY3Rp
b24gImZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iCiBQQVNT
IE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBNZWRpYVNlc3Npb24g
aW50ZXJmYWNlIG9iamVjdCBuYW1lCi1QQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorRkFJTCBN
ZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogcHJvdG90eXBlIG9mIE1lZGlhU2Vz
c2lvbi5wcm90b3R5cGUgaXMgbm90IE9iamVjdC5wcm90b3R5cGUgZXhwZWN0ZWQgb2JqZWN0ICJb
b2JqZWN0IE9iamVjdF0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IEV2ZW50VGFyZ2V0XSIKIFBB
U1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQogUEFTUyBN
ZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CiBQQVNTIE1lZGlh
U2Vzc2lvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtZXRhZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTQwNmY0ODJmNDg5YzcyNmY0NzI4ODBlZTY2NzZmOTI0ZDA1ZTU2
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9j
ay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4MSBAQAorCisqKiBUaGVyZSBz
aG91bGQgYmUgbm8gbWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yIGluaXRpYWxseS4KK0VYUEVDVEVE
IChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yID09ICd1bmRlZmluZWQnKSBPSwor
CisqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yY2hhbmdlIGV2ZW50IGlzIGZp
cmVkIHdoZW4gaXQgY2hhbmdlcy4KK1JVTihpbnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IoY2hhbmdlSGFuZGxlcikpCitFVkVOVChjb29yZGluYXRvcmNoYW5nZSkK
K0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yICE9ICd1bmRlZmlu
ZWQnKSBPSworCisqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIHN1Y2NlZWQs
IHByb21pc2VzIHJlc29sdmUgYW5kIG1lZGlhU2Vzc2lvbiBhY3Rpb24gaGFuZGxlcnMgYXJlIGNh
bGxlZC4KK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5KCkKK0FD
VElPTihwbGF5KQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAncGxheScpIE9LCisKK1Rlc3Qg
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpCitBQ1RJT04ocGF1c2Up
CitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdwYXVzZScpIE9LCisKK1Rlc3QgbmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrdG8oKQorQUNUSU9OKHNlZWt0bykKK0VYUEVD
VEVEIChsYXRlc3RBY3Rpb24gPT0gJ3NlZWt0bycpIE9LCisKKyoqIFRlc3QgdGhhdCB3aGVuIGNv
b3JkaW5hdG9yIG1ldGhvZHMgc3VjY2VlZCwgcHJvbWlzZXMgcmVqZWN0IGFuZCBtZWRpYVNlc3Np
b24gYWN0aW9uIGhhbmRsZXJzIGFyZSBub3QgY2FsbGVkLgorVGVzdCBuYXZpZ2F0b3IubWVkaWFT
ZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAnJykg
T0sKKworVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBhdXNlKCkKK0VY
UEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisKK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5jb29yZGluYXRvci5zZWVrdG8oKQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAnJykg
T0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGluYXRvciB3aGVu
IHBvc2l0aW9uU3RhdGUgY2hhbmdlcy4KK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnNldFBv
c2l0aW9uU3RhdGUoeyBkdXJhdGlvbjogMSwgcGxheWJhY2tSYXRlOiAxLCBwb3NpdGlvbjogMCB9
KSkKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3Bvc2l0aW9uU3RhdGVDaGFuZ2VkJykgT0sK
KworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGluYXRvciB3aGVuIHJl
YWR5U3RhdGUgY2hhbmdlcy4KK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5
U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJl
YWR5U3RhdGUgPSAnaGF2ZU1ldGFkYXRhJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3Jl
YWR5U3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJl
YWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0YScpIE9LCitSVU4obmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVDdXJyZW50RGF0YScpCitFWFBFQ1RFRCAo
bGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlQ3VycmVudERhdGEnKSBPSworCitF
WFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlQ3VycmVu
dERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZl
RnV0dXJlRGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdl
ZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdo
YXZlRnV0dXJlRGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJl
YWR5U3RhdGUgPT0gJ2hhdmVGdXR1cmVEYXRhJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUVub3VnaERhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5n
ZSA9PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUVub3VnaERhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRW5vdWdoRGF0YScpIE9LCitS
VU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVOb3RoaW5nJykKK0VY
UEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3JlYWR5U3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVE
IChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykgT0sK
KworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGluYXRvciB3aGVuIHBs
YXliYWNrU3RhdGUgY2hhbmdlcy4KK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBs
YXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxh
eWJhY2tTdGF0ZSA9ICdwYXVzZWQnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncGxheWJh
Y2tTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxh
eWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFT
ZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAncGxheWluZycpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdl
ID09ICdwbGF5YmFja1N0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwbGF5aW5nJykgT0sKKworRVhQRUNURUQgKG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGxheWluZycpIE9LCitSVU4obmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ25vbmUnKQorRVhQRUNURUQgKGxh
dGVzdENoYW5nZSA9PSAncGxheWJhY2tTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAnbm9uZScpIE9LCisKKworRU5EIE9G
IFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2Nr
LWNvb3JkaW5hdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2st
Y29vcmRpbmF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzgxMTRhOGI1MzBmNGRkOTljMzExOGQ5YTU3
MmZlYjVlNWMxNzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
c2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKQEAgLTAsMCArMSwxMzIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bW9jay1tZWRpYXNlc3Npb24tY29v
cmRpbmF0b3I8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorCisgICAgZnVuY3Rpb24gY2hhbmdlSGFuZGxlcihjaGFuZ2Up
CisgICAgeworICAgICAgICB3aW5kb3cubGF0ZXN0Q2hhbmdlID0gY2hhbmdlOworICAgIH0KKwor
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworCisg
ICAgICAgIHdpbmRvdy5sYXRlc3RBY3Rpb24gPSAnJzsKKyAgICAgICAgd2luZG93LmxhdGVzdENo
YW5nZSA9ICcnOworCisgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICAg
ICAgZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1aXJlcyBJbnRlcm5hbHMnKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGNoYW5nZVByb21pc2UgPSBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
YWRkRXZlbnRMaXN0ZW5lcignY29vcmRpbmF0b3JjaGFuZ2UnLCAoZXZlbnQpID0+IHsKKyAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZlbnQudHlwZX0pYCk7CisgICAgICAg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGhlcmUgc2hv
dWxkIGJlIG5vIG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciBpbml0aWFsbHkuJykKKworICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3InLCB1bmRl
ZmluZWQpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0
ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcmNoYW5nZSBldmVudCBpcyBm
aXJlZCB3aGVuIGl0IGNoYW5nZXMuJykKKworICAgICAgICBydW4oJ2ludGVybmFscy5yZWdpc3Rl
ck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihjaGFuZ2VIYW5kbGVyKScpOworCisgICAgICAg
IGF3YWl0IGNoYW5nZVByb21pc2U7CisgICAgICAgIAorICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25h
dmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3InLCB1bmRlZmluZWQsICchPScpOworCisg
ICAgICAgIFsncGxheScsICdwYXVzZScsICdzZWVrdG8nXS5mb3JFYWNoKGFjdGlvbiA9PiB7Cisg
ICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnNldEFjdGlvbkhhbmRsZXIoYWN0aW9u
LCBhY3Rpb25EZXRhaWxzID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEFDVElP
Tigke2FjdGlvbkRldGFpbHMuYWN0aW9ufSlgKTsKKyAgICAgICAgICAgICAgICBsYXRlc3RBY3Rp
b24gPSBhY3Rpb25EZXRhaWxzLmFjdGlvbjsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsK
KworICAgICAgICBsZXQgdGVzdEFjdGlvbiA9IGFzeW5jIChhY3Rpb24sIGZ1bmMsIGZvcmNlRmFp
bHVyZSkgPT4geworICAgICAgICAgICAgbGF0ZXN0QWN0aW9uID0gJyc7CisKKyAgICAgICAgICAg
IGxldCBzdWNjZWVkZWQ7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZShgVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLiR7YWN0aW9u
fSgpYCk7CisgICAgICAgICAgICAgICAgYXdhaXQgZnVuYygpOworICAgICAgICAgICAgICAgIGlm
IChmb3JjZUZhaWx1cmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRkFJTDog
JHtmdW5jLnRvU3RyaW5nKCl9IHJlc29sdmVkIGJ1dCBzaG91bGQgaGF2ZSByZWplY3RlZGApOwor
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0aW9uJywgYWN0aW9uKTsKKyAg
ICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICAgICAgaWYgKCFmb3JjZUZhaWx1
cmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRkFJTDogJHtmdW5jLnRvU3Ry
aW5nKCl9IHRocmV3ICR7ZXh9YCk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdsYXRl
c3RBY3Rpb24nLCAnJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgnJyk7CisgICAgICAgIH07CisKKyAgICAgICAgbGV0IGFjdGlvbnMgPSBbIAorICAgICAgICAg
ICAgeyBhY3Rpb246ICdwbGF5JywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRvci5tZWRp
YVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpIH0sIH0sCisgICAgICAgICAgICB7IGFjdGlvbjog
J3BhdXNlJywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29v
cmRpbmF0b3IucGF1c2UoKSB9LCB9LAorICAgICAgICAgICAgeyBhY3Rpb246ICdzZWVrdG8nLCBm
dW5jIDogKCkgPT4geyByZXR1cm4gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5z
ZWVrVG8oMTApIH0sIH0sCisgICAgICAgIF07CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsK
KyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRo
b2RzIHN1Y2NlZWQsICBwcm9taXNlcyByZXNvbHZlIGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhh
bmRsZXJzIGFyZSBjYWxsZWQuJykKKyAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChmYWxzZSk7CisgICAgICAgIGZvciAobGV0
IGFjdGlvbiBvZiBhY3Rpb25zKQorICAgICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihhY3Rpb24u
YWN0aW9uLCBhY3Rpb24uZnVuYywgZmFsc2UpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiog
VGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCAgcHJvbWlzZXMgcmVq
ZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBub3QgY2FsbGVkLicpCisg
ICAgICAgIGludGVybmFscy5zZXRNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21tYW5kc1No
b3VsZEZhaWwodHJ1ZSk7CisgICAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKQorICAg
ICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihhY3Rpb24uYWN0aW9uLCBhY3Rpb24uZnVuYywgdHJ1
ZSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKGAqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uIG5v
dGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcG9zaXRpb25TdGF0ZSBjaGFuZ2VzLmApCisgICAgICAg
IHJ1bignbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKHsgZHVyYXRpb246
IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSknKTsKKyAgICAgICAgYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3Bvc2l0aW9uU3RhdGVDaGFuZ2Vk
JywgJz09JywgMTAwKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25z
b2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Ig
d2hlbiByZWFkeVN0YXRlIGNoYW5nZXMuJykKKyAgICAgICAgbGV0IHByZXZpb3VzU3RhdGUgPSAn
aGF2ZU5vdGhpbmcnOworICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBbJ2hhdmVNZXRhZGF0YScs
ICdoYXZlQ3VycmVudERhdGEnLCAnaGF2ZUZ1dHVyZURhdGEnLCAnaGF2ZUVub3VnaERhdGEnLCAn
aGF2ZU5vdGhpbmcnXSkgeworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBwcmV2aW91c1N0YXRlKTsKKworICAgICAgICAgICAgbGF0
ZXN0Q2hhbmdlID0gJyc7CisgICAgICAgICAgICBydW4oYG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
cmVhZHlTdGF0ZSA9ICcke3N0YXRlfSdgKTsKKworICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVj
dGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3JlYWR5U3RhdGVDaGFuZ2VkJywgJz09Jywg
MTAwKTsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnJlYWR5U3RhdGUnLCBzdGF0ZSk7CisgICAgICAgICAgICBwcmV2aW91c1N0YXRlID0gc3RhdGU7
CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICB9OworCisgICAgICAgIGNv
bnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGluYXRv
ciB3aGVuIHBsYXliYWNrU3RhdGUgY2hhbmdlcy4nKQorICAgICAgICBwcmV2aW91c1N0YXRlID0g
J25vbmUnOworICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBbJ3BhdXNlZCcsICdwbGF5aW5nJywg
J25vbmUnXSkgeworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNl
c3Npb24ucGxheWJhY2tTdGF0ZScsIHByZXZpb3VzU3RhdGUpOworCisgICAgICAgICAgICBsYXRl
c3RDaGFuZ2UgPSAnJzsKKyAgICAgICAgICAgIHJ1bihgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5w
bGF5YmFja1N0YXRlID0gJyR7c3RhdGV9J2ApOworCisgICAgICAgICAgICBhd2FpdCB0ZXN0RXhw
ZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAncGxheWJhY2tTdGF0ZUNoYW5nZWQnLCAn
PT0nLCAxMDApOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNl
c3Npb24ucGxheWJhY2tTdGF0ZScsIHN0YXRlKTsKKyAgICAgICAgICAgIHByZXZpb3VzU3RhdGUg
PSBzdGF0ZTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIH07CisKKyAg
ICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0sIHtvbmNl
OiB0cnVlfSk7CisKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="443657"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424087</attachid>
            <date>2021-03-23 18:56:36 -0700</date>
            <delta_ts>2021-03-24 10:08:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222158-20210323185635.patch</filename>
            <type>text/plain</type>
            <size>120666</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmYzczYWI5YzdiZWUzNDEzMjkxOGE5
NDVhYTQ3NDVkZjM2NDE1ZWUuLjY1MzUzNDNjZmY1YmY1YmU4NzIzMWYzMjJjODBhMDRjZmUyM2U5
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAzLTIzICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlcXVpcmUgVk1fRkxBR1NfUEVS
TUFORU5UIG9uIHRoZSBzaW11bGF0b3IgYnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkxZDM5NzM5ODU0
YWQ2YmY0NmQ0YzhkZGIyYmJjNjY4OGNlZTViYS4uY2E0NjcyMTFjODU3MjY4YTY2NmVmNWRmMDVm
MGYwM2IyN2UzYjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAyMS0wMi0xOCAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2Fd
IEFkZCBFeHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9y
LCBhbiBvYmplY3QgdGhhdCBwcm92aWRlcyBhbiBpbnRlcmZhY2UKKyAgICAgICAgdGhhdCBhbGxv
d3Mgc2NyaXB0IHRvIGNvb3JkaW5hdGUgY2hhbmdlcyB0byBNZWRpYVNlc3Npb24gd2l0aCB0aGUg
VXNlciBBZ2VudC4gQWxzbworICAgICAgICBhZGQgYW4gZXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lv
biBwbGF5bGlzdCBpbnRlcmZhY2UuCisKKyAgICAgICAgVGhlIGNoYW5nZXMgYXJlIGJlaGluZCBu
ZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUgZmxhZ3MsCisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yRW5hYmxlZCBhbmQgTWVkaWFTZXNzaW9uUGxheWxpc3RFbmFibGVkLgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OiBBZGQgbmV3IElETCBmaWxlcy4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDogQWRkIG5ldyBkZXJp
dmVkIHNvdXJjZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkIG5ldyBJREwu
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6IFNldCB0cmFja0lkZW50aWZp
ZXIgZnJvbSBpbml0IGRhdGEuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRU
cmFja0lkZW50aWZpZXIpOiB0cmFja0lkZW50aWZpZXIgc2V0dGVyLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oOiBBZGQgdHJhY2tJZGVudGlmaWVyLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
OjpNZWRpYVNlc3Npb24pOiBJbml0aWFsaXplIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEpOiBtZXRhZGF0YVVw
ZGF0ZWQgLT4gbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb246OnNldFJlYWR5U3RhdGUpOiBTZXNzaW9uIHJlYWR5U3RhdGUgc2V0dGVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcik6IENvb3JkaW5hdG9y
IHNldHRlci4gUG9zdCAnY29vcmRpbmF0b3JjaGFuZ2UnCisgICAgICAgIGV2ZW50IGFmdGVyIGNo
YW5nZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0UGxheWxpc3QpOiBQbGF5
bGlzdCBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldEFjdGlvbkhh
bmRsZXIpOiBDYWxsIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNlcnZlcnMuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUpOiBDYWxsIG5vdGlmeVBvc2l0aW9u
U3RhdGVPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Om1ldGFkYXRh
VXBkYXRlZCk6IENhbGwgbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcik6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbjo6Zm9yRWFjaE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycyk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5QWN0aW9uSGFuZGxl
ck9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5
UmVhZHlTdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRp
bmF0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGw6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsOgor
CisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHByb3hpZXMgY2FsbHMgdGhyb3VnaCB0
aGUgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciwKKyAgICAgICAgYW5kIHRoZW4gY2Fs
bHMgdGhlIGVxdWl2YWxlbnQgTWVkaWFTZXNzaW9uIG1ldGhvZGUgaWYgdGhlIHBsYXRmb3JtIGNv
b3JkaW5hdG9yIAorICAgICAgICBpcyBzdWNjZXNzZnVsLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOiBOZXcuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDbGFzc05hbWUpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlk
bDogTmV3LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFT
ZXNzaW9uLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW46CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TG9nZ2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlclB0ciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsIGNvbnN0KToKKworICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOiBSZWdpc3RlciB0aGUgbW9jawor
ICAgICAgICBtZWRpYSBzZXNzaW9uIGNvb3JkaW5hdG9yIGZvciB0ZXN0aW5nLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmg6IE5ldy4KKwogMjAyMS0wMy0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlYmFzZWxpbmUgYmluZGluZ3MgdGVz
dHMgYWZ0ZXIgcjI3NDkwNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZWNhYjYz
NjJlMDBhOGMwMzg1MzYxNzRhOTMzMGYxNWUyZTdlOTViOS4uM2JjMzA5NjUwZjZjYmQ5MzM5OTEy
YjE1OWE4MDEyZDYwMjhiZmQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTYz
Miw2ICs2MzIsMTkgQEAgTWVkaWFSZWNvcmRlckVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAg
IGRlZmF1bHQ6IGZhbHNlCiAKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZDoKKyAgdHlw
ZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24g
Y29vcmRpbmF0b3IgQVBJIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhw
ZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvciBBUEkiCisgIGNvbmRpdGlvbjogRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJL
aXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIE1lZGlhU2Vz
c2lvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJNZWRpYSBT
ZXNzaW9uIEFQSSIKQEAgLTY0NSw2ICs2NTgsMTkgQEAgTWVkaWFTZXNzaW9uRW5hYmxlZDoKICAg
ICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorTWVkaWFTZXNzaW9uUGxheWxpc3RF
bmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFs
IE1lZGlhU2Vzc2lvbiBwbGF5bGlzdCBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIHBsYXlsaXN0IEFQSSIKKyAgY29uZGl0
aW9uOiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgZGVmYXVsdFZhbHVlOgorICAg
IFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTW9k
ZWxFbGVtZW50RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkhU
TUwgPG1vZGVsPiBlbGVtZW50IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1F
bmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4
IGM3YWRjNGU5ZjM2ODEwY2EzYWM4NGJjNzhjMmI3OWQ4ODRjNjY5NGUuLjMwZDNmOWQzMGJiYzdh
MzFmZjYwZjUzNjBiYmM2MzMxOWI2NGE3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNv
Y29hLmgKQEAgLTMyOCw2ICszMjgsMTQgQEAKICNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUFYX0FMTE9XRUQgPj0gMTIwMDAwCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fUExB
WUxJU1QpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VE
ID49IDEyMDAwMAorI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCAxCisjZW5k
aWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAmJiAhUExBVEZPUk0oV0FU
Q0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9O
IDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMTllOWQ0Y2YxZmY2YmE0ZWFlZGNm
YTliNzE4MWY5MTc5ZWUwZmRhLi4zYjFhY2EyMzMzNTFmMTBhYjUwMTRiNDA5MjRjOTU3MDZkNTdh
ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzMxLDEyICszMzEsMTcgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdl
LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAgICAgTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25B
Y3Rpb24uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5k
bGVyLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4
aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGlu
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKIAog
ICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRlNTg4
YTI0OTQ5NzNhNzkwZTE2NWMwYWExNGE0NWFhZDJkOGM4ZGYuLjE2OWIyMWExYjAxMWRlOTM4Mzc0
Y2ZkNWU3NjkyYzJlZjAzOTJkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDEyICsxNzMsMTcgQEAgJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKyQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkFjdGlvbkhhbmRsZXIuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhp
bi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJl
YWR5U3RhdGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0
b3IrTWVkaWFTZXNzaW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNvdXJjZS9B
dWRpb1RyYWNrK01lZGlhU291cmNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNv
dXJjZS9ET01VUkwrTWVkaWFTb3VyY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGY3YTYzOGFhOTM5MDU3ZDczNDgwOTFhYjQy
ODEzOWM5OTRkMGQzMGIuLjcxNmE4YzVhNzI3ZTU5OWNjYWI2NjkxODgwMGM3NzY4NjVlZDc3ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CkBAIC0xMjk4LDYgKzEyOTgsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYU1ldGFkYXRhSW5pdC5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YUlu
aXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YU1ldGFkYXRhUGxheWxpc3RNaXhpbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVBvc2l0aW9uU3RhdGUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
UG9zaXRpb25TdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMTMxNiw4ICsxMzE4LDE2IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFj
dGlvbkhhbmRsZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvck1peGluLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4
aW4uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YVNlc3Npb25SZWFkeVN0YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU291cmNlLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW0uY3Bw
CkBAIC0xMzUyLDYgKzEzNjIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vY2tDRE1GYWN0b3J5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb2NrQ0RNRmFjdG9yeS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01vY2tQYWdlT3ZlcmxheS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTW9ja1BhZ2VPdmVybGF5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja1BheW1lbnRBZGRyZXNzLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggM2VkYTEwYThjNjdjODFmMDdjNTVjZTNhOTBjMWQ2MTNmMDkz
ZGJkMS4uNTE4ZWRmMWZkNjQ1NDM4OGY2OGU3NGU3YTIyMmIwYTcxMTEyY2I1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMDcsMTIgKzIwNywxNyBAQCBKU19CSU5ESU5HX0lE
TFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGFQbGF5bGlzdE1peGluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVBvc2l0aW9uU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNaXhpbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Eb3VibGVSYW5nZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCBlMTBkYWQwN2QzMjU0Y2ExMDkzMWRi
MDY1NzE3ZmFmYTBkZmM5OWIzLi4zNDZiMjdhYmExNzE3MzhjYjQzOWQ0ZjE5MmNlYTkzMDUwNGFm
NDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmNwcApAQCAtOTYsNiArOTYsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFN
ZXRhZGF0YT4+IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
bwogICAgICAgICBtZXRhZGF0YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRh
ZGF0YS0+c2V0QXJ0aXN0KGluaXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1
bShpbml0LT5hbGJ1bSk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAg
ICAgIG1ldGFkYXRhLT5zZXRUcmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsK
KyNlbmRpZgogICAgICAgICBhdXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFy
dHdvcmsoY29udGV4dCwgV1RGTW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3Nz
aWJsZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBwb3NzaWJsZUV4Y2VwdGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTg4LDYgKzE5MSwxNyBA
QCB2b2lkIE1lZGlhTWV0YWRhdGE6OnNldEFydHdvcmtJbWFnZShJbWFnZSogaW1hZ2UpCiAgICAg
bV9hcnR3b3JrSW1hZ2UgPSBpbWFnZTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQordm9pZCBNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIoY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyKQoreworICAgIGlmIChtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllciA9
PSBpZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21ldGFkYXRhLnRyYWNrSWRl
bnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgbWV0YWRhdGFVcGRhdGVkKCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBNZWRpYU1ldGFkYXRhOjptZXRhZGF0YVVwZGF0ZWQoKQogewogICAgIGlmIChtX3Nl
c3Npb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmgKaW5kZXggYTdiZTc4NTkwMDA5MGVkMTdiY2MzYTk5ZWIxZjFmNzg0Y2ZkNmI1
NC4uMjk2MGI0NGE4NjNiYzgyYjRmOTIzYWNiMzVhNmNlMWIwZDEzODIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaApAQCAt
OTEsNiArOTEsMTEgQEAgcHVibGljOgogCiAgICAgY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRhdGEm
IG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YTsgfQogCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllcjsgfQorICAgIHZvaWQg
c2V0VHJhY2tJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgTWVkaWFNZXRhZGF0YSgpOwogICAgIHZvaWQgc2V0QXJ0d29ya0ltYWdlKEltYWdlKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFk
YXRhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGEuaWRsCmluZGV4IGMyYjU3N2NmNWJiMjI5YzJhNmZiMzE2NzlkM2ZlNTljNzhjZDEyNmQuLmQw
NWYyYjBiNjk0YmM0OGZmYWE3MTM1YTVhZTlmNDBjYTYyZmNkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCkBAIC0z
Myw0ICszMyw4IEBACiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhcnRpc3Q7CiAgICAgYXR0cmli
dXRlIERPTVN0cmluZyBhbGJ1bTsKICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhSW1hZ2U+IGFydHdvcms7CisKKyAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1N
ZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7
CiB9OworCitNZWRpYU1ldGFkYXRhIGluY2x1ZGVzIE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGlu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGFJbml0LmgKaW5kZXggNjY5ZGVmZmEyZDY5NDA4NWYwOGYxMGRmMWI5MTZlZjQ0ZTg4
NWUwZC4uZDY5MmQyZDk0ODI3NTNmMGFjMGE4NDMyYTQ2MGY5MDE0YTBjZmJhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRh
SW5pdC5oCkBAIC0zNSw2ICszNSw5IEBAIHN0cnVjdCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAgICAg
U3RyaW5nIHRpdGxlOwogICAgIFN0cmluZyBhcnRpc3Q7CiAgICAgU3RyaW5nIGFsYnVtOworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFN0cmluZyB0cmFja0lkZW50aWZp
ZXI7CisjZW5kaWYKICAgICBWZWN0b3I8TWVkaWFJbWFnZT4gYXJ0d29yazsKIAogICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTQzLDI4
ICs0Niw1MSBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0YUluaXQgewogCiB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRpYU1ldGFkYXRhSW5pdDo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0g
PDwgYXJ0d29yazsKKyAgICBlbmNvZGVyIDw8IHRpdGxlIDw8IGFydGlzdCA8PCBhbGJ1bQorI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIDw8IHRyYWNrSWRlbnRpZmllcgor
I2VuZGlmCisgICAgPDwgYXJ0d29yazsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5s
aW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRhdGFJbml0PiBNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgU3RyaW5nIHRpdGxlOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodGl0bGUpKQorICAgIE9wdGlvbmFsPFN0cmluZz4gdGl0bGU7CisgICAgZGVjb2Rl
ciA+PiB0aXRsZTsKKyAgICBpZiAodGl0bGUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBT
dHJpbmcgYXJ0aXN0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0aXN0KSkKKyAgICBPcHRp
b25hbDxTdHJpbmc+IGFydGlzdDsKKyAgICBkZWNvZGVyID4+IGFydGlzdDsKKyAgICBpZiAoIWFy
dGlzdCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFsYnVtKSkKKyAgICBPcHRpb25hbDxTdHJpbmc+IGFsYnVtOworICAg
IGRlY29kZXIgPj4gYWxidW07CisgICAgaWYgKCFhbGJ1bSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIFZlY3RvcjxNZWRpYUltYWdlPiBhcnR3b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoYXJ0d29yaykpCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgT3B0
aW9uYWw8U3RyaW5nPiB0cmFja0lkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiB0cmFja0lkZW50
aWZpZXI7CisgICAgaWYgKCF0cmFja0lkZW50aWZpZXIpCisgICAgICAgIHJldHVybiB7IH07Cisj
ZW5kaWYKKworICAgIE9wdGlvbmFsPFZlY3RvcjxNZWRpYUltYWdlPj4gYXJ0d29yazsKKyAgICBk
ZWNvZGVyID4+IGFydHdvcms7CisgICAgaWYgKCFhcnR3b3JrKQogICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgcmV0dXJuIE1lZGlhTWV0YWRhdGFJbml0IHsgV1RGTW92ZSh0aXRsZSksIFdURk1v
dmUoYXJ0aXN0KSwgV1RGTW92ZShhbGJ1bSksIFdURk1vdmUoYXJ0d29yaykgfTsKKyAgICByZXR1
cm4geyB7CisgICAgICAgIFdURk1vdmUoKnRpdGxlKSwKKyAgICAgICAgV1RGTW92ZSgqYXJ0aXN0
KSwKKyAgICAgICAgV1RGTW92ZSgqYWxidW0pLAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQorICAgICAgICBXVEZNb3ZlKCp0cmFja0lkZW50aWZpZXIpLAorI2VuZGlmCisgICAg
ICAgIFdURk1vdmUoKmFydHdvcmspCisgICAgfSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwK
aW5kZXggOGIwZjU1Y2YxNGE1ODM4Y2I1NDg5NTY1ZDAyNzJkYWZhZDllMTIzZC4uMGRjOGVmMDA3
YjEwOTUxYjBkNTkxOWViMDMxMjQzNGYzZjY0NDYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbApAQCAt
MzAsNSArMzAsNiBAQAogICAgIERPTVN0cmluZyB0aXRsZSA9ICIiOwogICAgIERPTVN0cmluZyBh
cnRpc3QgPSAiIjsKICAgICBET01TdHJpbmcgYWxidW0gPSAiIjsKKyAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5
bGlzdF0gRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllciA9ICIiOwogICAgIHNlcXVlbmNlPE1lZGlh
SW1hZ2U+IGFydHdvcmsgPSBbXTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTBhNzY0MGIwZDM0NGJhZWMwMzY2OTc0MDYyNGFmMmQ0ZThkYjZmZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fUExBWUxJU1QsCisgICAgRW5hYmxl
ZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdCwKK10gaW50ZXJmYWNlIG1peGluIE1lZGlh
TWV0YWRhdGFQbGF5bGlzdE1peGluIHsKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRyYWNrSWRl
bnRpZmllcjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmNwcAppbmRleCAzMmIwOGUxYTcxZGU5NDMwZDEyMjBlMGJlNmEyMWNk
OGUyYjU3MGFlLi5lOGE5Y2FlZWFkNDYxY2I4OTYwN2MzNGMzMThiYTI0YTNiZDQwMTU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAKQEAgLTI5LDggKzI5LDEwIEBACiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogCkBAIC03Niw3ICs3OCwxMSBAQCBSZWY8TWVk
aWFTZXNzaW9uPiBNZWRpYVNlc3Npb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKIH0K
IAogTWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCi0gICAg
OiBtX25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIobmF2aWdhdG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAs
IG1fbmF2aWdhdG9yKG1ha2VXZWFrUHRyKG5hdmlnYXRvcikpCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2Vu
ZXJpY0V2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCisjZW5kaWYKIHsKICAgICBtX2xvZ2dlciA9
IG1ha2VSZWZQdHIoRG9jdW1lbnQ6OnNoYXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZp
ZXIgPSBuZXh0TG9nSWRlbnRpZmllcigpOwpAQCAtODksMTUgKzk1LDY3IEBAIE1lZGlhU2Vzc2lv
bjo6fk1lZGlhU2Vzc2lvbigpID0gZGVmYXVsdDsKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRNZXRh
ZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJiBtZXRhZGF0YSkKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwotCiAgICAgaWYgKG1fbWV0YWRhdGEpCiAgICAgICAgIG1fbWV0YWRh
dGEtPnJlc2V0TWVkaWFTZXNzaW9uKCk7CiAgICAgbV9tZXRhZGF0YSA9IFdURk1vdmUobWV0YWRh
dGEpOwogICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBtX21ldGFkYXRhLT5zZXRNZWRpYVNl
c3Npb24oKnRoaXMpOwotICAgIG1ldGFkYXRhVXBkYXRlZCgpOworICAgIG5vdGlmeU1ldGFkYXRh
T2JzZXJ2ZXJzKCk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
K3ZvaWQgTWVkaWFTZXNzaW9uOjpzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUg
c3RhdGUpCit7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisKKyAgICBtX3JlYWR5
U3RhdGUgPSBzdGF0ZTsKKyAgICBub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCk7CiB9CiAKK3Zv
aWQgTWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcihNZWRpYVNlc3Npb25Db29yZGluYXRvciog
Y29vcmRpbmF0b3IpCit7CisgICAgaWYgKG1fY29vcmRpbmF0b3IgPT0gY29vcmRpbmF0b3IpCisg
ICAgICAgIHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBp
ZiAobV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29yZGluYXRvci0+c2V0TWVkaWFTZXNzaW9u
KG51bGxwdHIpOworCisgICAgbV9jb29yZGluYXRvciA9IGNvb3JkaW5hdG9yOworCisgICAgaWYg
KG1fY29vcmRpbmF0b3IpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldE1lZGlhU2Vzc2lvbih0
aGlzKTsKKworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY29vcmRpbmF0b3JjaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX1BMQVlMSVNUKQorRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uOjpz
ZXRQbGF5bGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBWZWN0b3I8UmVmUHRy
PE1lZGlhTWV0YWRhdGE+PiYmIHBsYXlsaXN0KQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUik7CisKKyAgICBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiByZXNvbHZlZFBsYXlsaXN0
OworICAgIHJlc29sdmVkUGxheWxpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwbGF5bGlzdC5z
aXplKCkpOworCisgICAgZm9yIChhdXRvJiBlbnRyeSA6IHBsYXlsaXN0KSB7CisgICAgICAgIGF1
dG8gcmVzb2x2ZWRFbnRyeSA9IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShjb250ZXh0LCB7IGVudHJ5
LT5tZXRhZGF0YSgpIH0pOworICAgICAgICBpZiAocmVzb2x2ZWRFbnRyeS5oYXNFeGNlcHRpb24o
KSkKKyAgICAgICAgICAgIHJldHVybiByZXNvbHZlZEVudHJ5LnJlbGVhc2VFeGNlcHRpb24oKTsK
KyAgICAgICAgCisgICAgICAgIHJlc29sdmVkUGxheWxpc3QudW5jaGVja2VkQXBwZW5kKHJlc29s
dmVkRW50cnkucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgIH0KKworICAgIG1fcGxheWxpc3Qg
PSBXVEZNb3ZlKHJlc29sdmVkUGxheWxpc3QpOworCisgICAgcmV0dXJuIHsgfTsKK30KKyNlbmRp
ZgorCiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0UGxheWJhY2tTdGF0ZShNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlIHN0YXRlKQogewogICAgIGlmIChtX3BsYXliYWNrU3RhdGUgPT0gc3RhdGUpCkBA
IC0xMTEsNiArMTY5LDcgQEAgdm9pZCBNZWRpYVNlc3Npb246OnNldFBsYXliYWNrU3RhdGUoTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKICAgICAgICAgbV90aW1lQXRMYXN0UG9zaXRp
b25VcGRhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICB9CiAgICAgbV9wbGF5YmFja1N0
YXRlID0gc3RhdGU7CisgICAgbm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpOwogfQogCiB2
b2lkIE1lZGlhU2Vzc2lvbjo6c2V0QWN0aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rpb24gYWN0
aW9uLCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4mJiBoYW5kbGVyKQpAQCAtMTI5
LDcgKzE4OCw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vz
c2lvbkFjdGlvbiBhY3Rpb24sIFJlZlB0cjxNZWRpYVNlc3NpCiAgICAgICAgIFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZVN1cHBvcnRlZENvbW1hbmQo
cGxhdGZvcm1Db21tYW5kRm9yTWVkaWFTZXNzaW9uQWN0aW9uKGFjdGlvbikpOwogICAgIH0KIAot
ICAgIGFjdGlvbkhhbmRsZXJzVXBkYXRlZCgpOworICAgIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNl
cnZlcnMoKTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb246Omhhc0FjdGlvbkhhbmRsZXIoTWVkaWFT
ZXNzaW9uQWN0aW9uIGFjdGlvbikgY29uc3QKQEAgLTE0MiwxMiArMjAxLDE5IEBAIFJlZlB0cjxN
ZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPiBNZWRpYVNlc3Npb246OmhhbmRsZXJGb3JBY3Rpb24o
TWVkaWFTZXNzaW9uQWN0CiAgICAgcmV0dXJuIG1fYWN0aW9uSGFuZGxlcnMuZ2V0KGFjdGlvbik7
CiB9CiAKK3ZvaWQgTWVkaWFTZXNzaW9uOjpjYWxsQWN0aW9uSGFuZGxlcihjb25zdCBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzJiBhY3Rpb25EZXRhaWxzKQoreworICAgIGlmIChhdXRvIGhhbmRs
ZXIgPSBtX2FjdGlvbkhhbmRsZXJzLmdldChhY3Rpb25EZXRhaWxzLmFjdGlvbikpCisgICAgICAg
IGhhbmRsZXItPmhhbmRsZUV2ZW50KGFjdGlvbkRldGFpbHMpOworfQorCiBFeGNlcHRpb25Pcjx2
b2lkPiBNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVkaWFQb3NpdGlv
blN0YXRlPiYmIHN0YXRlKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKICAg
ICBpZiAoIXN0YXRlKSB7CiAgICAgICAgIG1fcG9zaXRpb25TdGF0ZSA9IFdURjo6bnVsbG9wdDsK
KyAgICAgICAgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpOwogICAgICAgICByZXR1cm4g
eyB9OwogICAgIH0KIApAQCAtMTYxLDYgKzIyNyw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlh
U2Vzc2lvbjo6c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYK
ICAgICBtX3Bvc2l0aW9uU3RhdGUgPSBXVEZNb3ZlKHN0YXRlKTsKICAgICBtX2xhc3RSZXBvcnRl
ZFBvc2l0aW9uID0gbV9wb3NpdGlvblN0YXRlLT5wb3NpdGlvbjsKICAgICBtX3RpbWVBdExhc3RQ
b3NpdGlvblVwZGF0ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIG5vdGlmeVBvc2l0aW9u
U3RhdGVPYnNlcnZlcnMoKTsKKwogICAgIHJldHVybiB7IH07CiB9CiAKQEAgLTE4NSwxMSArMjUz
LDY0IEBAIERvY3VtZW50KiBNZWRpYVNlc3Npb246OmRvY3VtZW50KCkgY29uc3QKIAogdm9pZCBN
ZWRpYVNlc3Npb246Om1ldGFkYXRhVXBkYXRlZCgpCiB7CisgICAgbm90aWZ5TWV0YWRhdGFPYnNl
cnZlcnMoKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKE9ic2VydmVyJiBv
YnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fb2JzZXJ2ZXJz
LmFkZChvYnNlcnZlcik7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcihP
YnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBt
X29ic2VydmVycy5yZW1vdmUob2JzZXJ2ZXIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6Zm9y
RWFjaE9ic2VydmVyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyk7CisgICAgbV9vYnNlcnZlcnMuZm9yRWFjaChhcHBseSk7Cit9CisKK3ZvaWQg
TWVkaWFTZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9i
c2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5tZXRhZGF0
YUNoYW5nZWQobV9tZXRhZGF0YSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3Ro
aXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnBvc2l0aW9uU3RhdGVDaGFu
Z2VkKG1fcG9zaXRpb25TdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3Ro
aXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnBsYXliYWNrU3RhdGVDaGFu
Z2VkKG1fcGxheWJhY2tTdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpu
b3RpZnlBY3Rpb25IYW5kbGVyT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW10o
YXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIuYWN0aW9uSGFuZGxlcnNDaGFuZ2Vk
KCk7CisgICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFTZXNzaW9uOjphY3Rpb25IYW5kbGVyc1VwZGF0
ZWQoKQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQordm9pZCBNZWRpYVNl
c3Npb246Om5vdGlmeVJlYWR5U3RhdGVPYnNlcnZlcnMoKQogeworICAgIGZvckVhY2hPYnNlcnZl
cihbdGhpc10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIucmVhZHlTdGF0ZUNo
YW5nZWQobV9yZWFkeVN0YXRlKTsKKyAgICB9KTsKIH0KKyNlbmRpZgogCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXgg
NzY3MmUzMmZjNzA2ZTM3ODExNmQ1ZWY3MzU0MmIxZGNmM2ZhYjc2Zi4uOGQwNTA3Y2YwOTkwZmQ1
NWM1MWM3ZDFhOTdkOGI1ZDE5Y2Q4YzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVu
dFF1ZXVlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJK
U01lZGlhU2Vzc2lvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZS5oIgpAQCAtMzQsNiArMzcsNyBAQAogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbi5o
IgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCIKICNpbmNsdWRlICJNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNDQsMzggKzQ4LDkwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBNZWRpYU1ldGFkYXRhOwor
Y2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CiBjbGFzcyBOYXZpZ2F0b3I7CiAKLWNsYXNz
IE1lZGlhU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4sIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb24+IHsKK2NsYXNzIE1lZGlhU2Vzc2lvbiA6IHB1Ymxp
YyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4gLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVNlc3Npb24+IGNy
ZWF0ZShOYXZpZ2F0b3ImKTsKICAgICB+TWVkaWFTZXNzaW9uKCk7CiAKICAgICBNZWRpYU1ldGFk
YXRhKiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEuZ2V0KCk7IH07CiAgICAg
dm9pZCBzZXRNZXRhZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJik7CisgICAgdm9pZCBtZXRh
ZGF0YVVwZGF0ZWQoKTsKIAogICAgIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgcGxheWJhY2tT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWJhY2tTdGF0ZTsgfTsKICAgICB2b2lkIHNldFBs
YXliYWNrU3RhdGUoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CiAKICAgICB2b2lkIHNldEFj
dGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0aW9uLCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9u
SGFuZGxlcj4mJik7CisKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQb3NpdGlvblN0YXRlKE9w
dGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mJik7CisgICAgT3B0aW9uYWw8TWVkaWFQb3NpdGlv
blN0YXRlPiBwb3NpdGlvblN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvblN0YXRlOyB9
CisKICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxkb3VibGU+IGN1cnJlbnRQb3NpdGlvbigp
IGNvbnN0OwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAgICAgCi0gICAgdm9p
ZCBtZXRhZGF0YVVwZGF0ZWQoKTsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKKyAgICBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3JlYWR5U3RhdGU7IH07CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUpOworCisgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRvci5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0Q29vcmRpbmF0b3IoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqKTsKKyNlbmRpZgor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgVmVjdG9yPFJl
ZjxNZWRpYU1ldGFkYXRhPj4mIHBsYXlsaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wbGF5bGlzdDsg
fQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFBsYXlsaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBWZWN0b3I8UmVmUHRyPE1lZGlhTWV0YWRhdGE+PiYmKTsKKyNlbmRpZgogCi0gICAgdm9p
ZCBhY3Rpb25IYW5kbGVyc1VwZGF0ZWQoKTsKICAgICBib29sIGhhc0FjdGlvbkhhbmRsZXIoTWVk
aWFTZXNzaW9uQWN0aW9uKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVkaWFT
ZXNzaW9uQWN0aW9uSGFuZGxlcj4gaGFuZGxlckZvckFjdGlvbihNZWRpYVNlc3Npb25BY3Rpb24p
IGNvbnN0OwogICAgIGJvb2wgaGFzQWN0aXZlQWN0aW9uSGFuZGxlcnMoKSBjb25zdCB7IHJldHVy
biAhbV9hY3Rpb25IYW5kbGVycy5pc0VtcHR5KCk7IH0KIAorICAgIHZvaWQgY2FsbEFjdGlvbkhh
bmRsZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYpOworCisgICAgY29uc3QgTG9n
Z2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAqbV9sb2dnZXIuZ2V0KCk7IH0KKworICAgIC8v
IEV2ZW50VGFyZ2V0CisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNv
dW50ZWQ6OmRlcmVmOworCisgICAgY2xhc3MgT2JzZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8T2JzZXJ2ZXI+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkg
PSBkZWZhdWx0OworCisgICAgICAgIHZpcnR1YWwgdm9pZCBtZXRhZGF0YUNoYW5nZWQoUmVmUHRy
PE1lZGlhTWV0YWRhdGE+KSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uU3RhdGVD
aGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIHsgfQorICAgICAgICB2aXJ0dWFs
IHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgeyB9
CisgICAgICAgIHZpcnR1YWwgdm9pZCBhY3Rpb25IYW5kbGVyc0NoYW5nZWQoKSB7IH0KKworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgICAgICB2aXJ0dWFsIHZvaWQg
cmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgeyB9CisjZW5kaWYKKyAg
ICB9OworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHJlbW92ZU9i
c2VydmVyKE9ic2VydmVyJik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9u
KE5hdmlnYXRvciYpOwogCi0gICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVy
biAqbV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAKKyAgICB2b2lkIGZvckVhY2hPYnNlcnZl
cihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+Jik7CisgICAgdm9pZCBub3RpZnlNZXRh
ZGF0YU9ic2VydmVycygpOworICAgIHZvaWQgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygp
OworICAgIHZvaWQgbm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpOworICAgIHZvaWQgbm90
aWZ5QWN0aW9uSGFuZGxlck9ic2VydmVycygpOworICAgIHZvaWQgbm90aWZ5UmVhZHlTdGF0ZU9i
c2VydmVycygpOworCisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVNlc3Npb25FdmVudFRhcmdldEludGVyZmFj
ZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZp
bmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVm
KCk7IH0KKwogICAgIFdlYWtQdHI8TmF2aWdhdG9yPiBtX25hdmlnYXRvcjsKICAgICBSZWZQdHI8
TWVkaWFNZXRhZGF0YT4gbV9tZXRhZGF0YTsKICAgICBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
IG1fcGxheWJhY2tTdGF0ZSB7IE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUgfTsKQEAg
LTg1LDYgKzE0MSwxOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8TWVkaWFTZXNzaW9uQWN0aW9u
LCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4sIFdURjo6SW50SGFzaDxNZWRpYVNl
c3Npb25BY3Rpb24+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPE1lZGlhU2Vzc2lvbkFjdGlv
bj4+IG1fYWN0aW9uSGFuZGxlcnM7CiAgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7
CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworCisgICAgV2Vha0hhc2hTZXQ8T2Jz
ZXJ2ZXI+IG1fb2JzZXJ2ZXJzOworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisgICAgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGUgeyBNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyB9OworICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29y
ZGluYXRvcj4gbV9jb29yZGluYXRvcjsKKyAgICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNF
dmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT05fUExBWUxJU1QpCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4gbV9wbGF5
bGlzdDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKaW5kZXggZGVkNGE3NzM4YTIzZDkzMWViM2Iw
YTY4MmJlNTczZjA4MzI0ZDQzNy4uNjFhODc0NDI3NGIyMjM4YTZjZWVlOTAyOGVmYzkyMjljM2Jh
ZWQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb24uaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI2LDkgKzI2LDEwIEBACiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFf
U0VTU0lPTiwKICAgICBFeHBvc2VkPVdpbmRvdywKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRh
YmxlLAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAotXSBpbnRlcmZhY2UgTWVkaWFT
ZXNzaW9uIHsKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gaW50ZXJmYWNlIE1lZGlhU2Vz
c2lvbiA6IEV2ZW50VGFyZ2V0Cit7CiAgICAgYXR0cmlidXRlIE1lZGlhTWV0YWRhdGE/IG1ldGFk
YXRhOwogCiAgICAgYXR0cmlidXRlIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgcGxheWJhY2tT
dGF0ZTsKQEAgLTM3LDMgKzM4LDYgQEAKIAogICAgIHVuZGVmaW5lZCBzZXRQb3NpdGlvblN0YXRl
KG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZT8gc3RhdGUgPSBudWxsKTsKIH07CisKK01lZGlh
U2Vzc2lvbiBpbmNsdWRlcyBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluOworTWVkaWFTZXNz
aW9uIGluY2x1ZGVzIE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCmlu
ZGV4IDVjYjY0NGZmMzYyZGVkNzM3MDJiMTMzZjNmMjBhZDg2NzBiN2ZmNjEuLjliYzRmMDAxM2I0
NmI1MmE4MWMwMDA3OTcyMmEzNjAxMmY3Y2MyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDYgKzM5
LDcgQEAgZW51bSBjbGFzcyBNZWRpYVNlc3Npb25BY3Rpb24gewogICAgIFNraXBhZCwKICAgICBT
dG9wLAogICAgIFNlZWt0bywKKyAgICBTZXR0cmFjaywKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKQEAgLTU2LDcgKzU3LDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpNZWRpYVNlc3Npb25BY3Rpb24+IHsKICAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9u
QWN0aW9uOjpOZXh0dHJhY2ssCiAgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6
U2tpcGFkLAogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlN0b3AsCi0gICAg
ICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvCisgICAgICAgIFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Np
b25BY3Rpb246OlNldHRyYWNrCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCmluZGV4
IDQ2MzVlNjk3MzRlZGExOWRjMmE3Y2FlZDlhNWZjNzEwNzQ1OThjZDQuLjhmNzY1ZjY0ZTNkYWNi
ZTcxNzEzYTRmODZiYjliYTJhYjgyZjQzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw0ICsz
NSw3IEBACiAgICAgInNraXBhZCIsCiAgICAgInN0b3AiLAogICAgICJzZWVrdG8iCisjaWYgZGVm
aW5lZChFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCkgJiYgRU5BQkxFX01FRElBX1NFU1NJ
T05fUExBWUxJU1QKKyAgICAsICJzZXR0cmFjayIKKyNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFp
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHMuaAppbmRleCA2NDFlYTcyNGFjYTY3MDVkNzM1MDdlMjg3MWM1MTc0MTc5Njk2
ZDdjLi5mNTkwOWQ0NmY4ZWFjNjZkMGYzYzlkZDdlNzUzMmUzNjA0NjhkNmE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25E
ZXRhaWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQWN0aW9uRGV0YWlscy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDYgKzM3LDkgQEAgc3RydWN0IE1lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHMgewogICAgIE9wdGlvbmFsPGRvdWJsZT4gc2Vla09mZnNldDsKICAgICBPcHRp
b25hbDxkb3VibGU+IHNlZWtUaW1lOwogICAgIE9wdGlvbmFsPGJvb2w+IGZhc3RTZWVrOworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFN0cmluZyB0cmFja0lkZW50aWZp
ZXI7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwKaW5k
ZXggMWExZWY3YWU3NjVhZTAyZjIxZTMyMzJhMTM2NGE5NmExYWRmMTU0Ny4uMmQ4YzYwNzM3YzZk
NjdmZDEyNWUxM2U5MTY5OGVjZmE4MDI2YzA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzIsNCArMzIsNiBAQAogICAgIGRvdWJsZT8gc2Vla09mZnNldDsKICAgICBkb3Vi
bGU/IHNlZWtUaW1lOwogICAgIGJvb2xlYW4/IGZhc3RTZWVrOworCisgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NFU1NJT05fUExBWUxJU1QsIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxh
eWxpc3RdIERPTVN0cmluZz8gdHJhY2tJZGVudGlmaWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGY0ZTkyMTU1ZjFhYzAxNWU2YzUxNzRkNGJlZjY0ODFl
NTkzNTY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0wLDAgKzEsMjQyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2lu
Y2x1ZGUgIkpTRE9NRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0YXRpYyBjb25zdCB2b2lkKiBuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVy
KCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgbG9nSWRlbnRpZmllciA9IGNyeXB0b2dyYXBoaWNh
bGx5UmFuZG9tTnVtYmVyKCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9p
ZCo+KCsrbG9nSWRlbnRpZmllcik7Cit9CisKK1JlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4g
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRv
cikpKTsKK30KKworTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmIHBsYXRmb3JtQ29vcmRp
bmF0b3IpCisgICAgOiBtX3BsYXRmb3JtQ29vcmRpbmF0b3IoV1RGTW92ZShwbGF0Zm9ybUNvb3Jk
aW5hdG9yKSkKKyAgICAsIG1fbG9nZ2VyKG1ha2VSZWYoRG9jdW1lbnQ6OnNoYXJlZExvZ2dlcigp
KSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKCkp
Cit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKworICAgIG1fcGxhdGZvcm1Db29y
ZGluYXRvci0+c2V0TG9nZ2VyKG1fbG9nZ2VyLmNvcHlSZWYoKSwgbV9sb2dJZGVudGlmaWVyKTsK
K30KKworTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6On5NZWRpYVNlc3Npb25Db29yZGluYXRvcigp
ID0gZGVmYXVsdDsKKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJs
ZSB0aW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8g
aWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyLCB0
aW1lKTsKKworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlm
aWVyLCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZWVrVG8odGltZSwgW3RpbWUsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKKyAgICAgICAgICAgIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgICAgICAgICBwcm90
ZWN0ZWRUaGlzLT5sb2dnZXIoKS5lcnJvcihwcm90ZWN0ZWRUaGlzLT5sb2dDaGFubmVsKCksIGlk
ZW50aWZpZXIsICJjb29yZGluYXRvci5zZWVrVG8gZmFpbGVkISIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRh
aWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywK
KyAgICAgICAgICAgIC5zZWVrVGltZSA9IHRpbWUsCisgICAgICAgIH07CisgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICAg
ICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSBy
ZWdpc3RlcmVkICdzZWVrVG8nIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm9taXNlLnJlc29s
dmUoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8gaWRlbnRpZmll
ciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyKTsKKworICAgIGlm
ICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVyLCAiTWVkaWFTZXNz
aW9uIGlzIE5VTEwhIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wbGF0Zm9y
bUNvb3JkaW5hdG9yLT5wbGF5KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlk
ZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9u
PiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9z
ZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4
Y2VwdGlvbikpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJv
dGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBpZGVudGlmaWVyLCAiY29vcmRpbmF0b3IucGxheSBm
YWlsZWQhIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBNZWRp
YVNlc3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1l
ZGlhU2Vzc2lvbkFjdGlvbjo6UGxheSwKKyAgICAgICAgfTsKKyAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgICAgICAvLyBG
SVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVy
ZWQgJ3BsYXknIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAg
ICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJ
REVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vz
c2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBO
VUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGlu
YXRvci0+cGF1c2UoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmll
ciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhj
ZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24p
IHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4
Y2VwdGlvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZSgqZXhjZXB0aW9u
KSk7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5sb2dnZXIoKS5lcnJvcihwcm90ZWN0ZWRU
aGlzLT5sb2dDaGFubmVsKCksIGlkZW50aWZpZXIsICJjb29yZGluYXRvci5wYXVzZSBmYWlsZWQh
Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBNZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vz
c2lvbkFjdGlvbjo6UGF1c2UsCisgICAgICAgIH07CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1f
c2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICAgICAgLy8gRklYTUU6
IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdw
YXVzZScgYWN0aW9uIGhhbmRsZXI/CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIH0p
OworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJp
bmcmIHRyYWNrLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1
dG8gaWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVy
KTsKKworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVy
LCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Cisg
ICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAg
ICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBp
ZGVudGlmaWVyLCAiY29vcmRpbmF0b3Iuc2V0VHJhY2sgZmFpbGVkISIpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBk
ZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNldHRy
YWNrLAorICAgICAgICAgICAgLnRyYWNrSWRlbnRpZmllciA9IHRyYWNrLAorICAgICAgICB9Owor
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFp
bHMpOworCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRo
ZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAnc2V0VHJhY2snIGFjdGlvbiBoYW5kbGVyPworICAgICAg
ICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIG1fc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNl
c3Npb24pOworCisgICAgaWYgKG1fc2Vzc2lvbikKKyAgICAgICAgbV9zZXNzaW9uLT5hZGRPYnNl
cnZlcigqdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9u
U3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gc3RhdGUpCit7CisgICAg
aWYgKCFzdGF0ZSkgeworICAgICAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3Rh
dGVDaGFuZ2VkKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3Jt
Q29vcmRpbmF0b3ItPnBvc2l0aW9uU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhUG9zaXRpb25TdGF0ZSB7IHN0YXRlLT5kdXJhdGlvbiwgc3RhdGUtPnBs
YXliYWNrUmF0ZSwgc3RhdGUtPnBvc2l0aW9uIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
IHN0YXRlKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9u
ZSksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGlzIG5vdCBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGFzIGV4
cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBh
dXNlZCksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQgaXMgbm90IFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNl
ZCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4o
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZykgPT0gc3RhdGljX2Nhc3Q8dWludDhf
dD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tT
dGF0ZTo6UGxheWluZyksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nIGlzIG5v
dCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlOjpQbGF5aW5nIGFzIGV4cGVjdGVkIik7CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3It
PnBsYXliYWNrU3RhdGVDaGFuZ2VkKHN0YXRpY19jYXN0PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU+KHN0YXRlKSk7Cit9CisKK3ZvaWQg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUgc3RhdGUpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90
PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZykgPT0gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZTo6SGF2ZU5vdGhpbmcpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcg
aXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5
U3RhdGU6OkhhdmVOb3RoaW5nIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEpID09
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0
YXRlOjpIYXZlTWV0YWRhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZUN1cnJlbnREYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERh
dGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhIGlzIG5vdCBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZl
Q3VycmVudERhdGEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhKSA9PSBzdGF0
aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNl
c3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlRnV0dXJlRGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU6OkhhdmVFbm91Z2hEYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0
YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSBpcyBub3QgUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVu
b3VnaERhdGEgYXMgZXhwZWN0ZWQiKTsKKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cmVh
ZHlTdGF0ZUNoYW5nZWQoc3RhdGljX2Nhc3Q8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZT4oc3RhdGUpKTsKK30KKworV1RGTG9nQ2hhbm5lbCYg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NoYW5uZWwoKQoreworICAgIHJldHVybiBMb2dN
ZWRpYTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDdjZWM4ODBiMzUzZjQ2
YmNiZDg3MGZmNWRiYzE5MmM5OTk3YzkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMCww
ICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KKyNpbmNsdWRl
IDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJl
ZDsKKworY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjsKK2NsYXNzIE1lZGlh
U2Vzc2lvbjsKKworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUmVmQ291
bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1YmxpYyBNZWRpYVNlc3Npb246Ok9ic2Vy
dmVyIHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yPiBjcmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5NZWRpYVNlc3Npb25Db29yZGluYXRvcigpOworCisg
ICAgdm9pZCBzZWVrVG8oZG91YmxlLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAg
dm9pZCBwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIHBhdXNlKERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmlu
ZyYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKworICAgIHZvaWQgc2V0TWVkaWFTZXNz
aW9uKE1lZGlhU2Vzc2lvbiopOworCisgICAgLy8gTWVkaWFTZXNzaW9uOjpPYnNlcnZlcgorICAg
IHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikg
ZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFj
a1N0YXRlKSBmaW5hbDsKKyAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUpIGZpbmFsOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmKTsKKworICAg
IGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXI7IH0KKyAgICBj
b25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVy
OyB9CisgICAgc3RhdGljIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKTsKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgeyByZXR1cm4gIk1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yIjsgfQorCisgICAgV2Vha1B0cjxNZWRpYVNlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBSZWY8
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9wbGF0Zm9ybUNvb3JkaW5hdG9yOwor
ICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRl
bnRpZmllcjsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+
IG1fc2Vla1RvUHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+PiBtX3BsYXlQcm9taXNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4+IG1fcGF1c2VQcm9taXNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4+IG1fc2V0VHJhY2tQcm9taXNlOworfTsKKworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMwNWFiODkwZWExODI2ZDBmZTcxMzBiNWQzMmI0MmQ3YjQ2
MjNkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsCisgICAg
RW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25Db29yZGluYXRvciwKKyAgICBFeHBvc2VkPVdp
bmRvdywKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKK10gaW50ZXJmYWNlIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yIHsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2Vla1RvKHVucmVz
dHJpY3RlZCBkb3VibGUgdGltZSk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBsYXkoKTsKKyAg
ICBQcm9taXNlPHVuZGVmaW5lZD4gcGF1c2UoKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2V0
VHJhY2soRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllcik7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhp
bi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvck1peGluLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzhjYzMyZmQwMzE5NGQxNmQ2OWU2OGRl
OWU2ZDVhMDgwNzA5ZDI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OLAor
ICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IsCitdIGludGVyZmFj
ZSBtaXhpbiBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluIHsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I/IGNvb3JkaW5hdG9yOworICAgIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb25jb29yZGluYXRvcmNoYW5nZTsKKyAgICBhdHRyaWJ1dGUgTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZSByZWFkeVN0YXRlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGUuaAppbmRleCBkNGFkYmQ1NDE3OTRlNWExMDk1YmU1NGEyM2JiM2ViOWViZTc0NzU2Li43MDYz
Yzc4ZTNkNzhiZmFkMzg4ZGYzMDk0NTRhOWNmN2EzNTRkMmIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ZW51bSBjbGFzcyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHsKK2VudW0gY2xhc3MgTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZSA6IHVpbnQ4X3QgewogICAgIE5vbmUsCiAgICAgUGF1c2VkLAog
ICAgIFBsYXlpbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ3NjIyMDcxMjQzYTY5MzA2NDc3NDgyNjcyMGI5OTYzNmU5MjYwMWYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5
bGlzdE1peGluLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRp
dGlvbmFsPU1FRElBX1NFU1NJT05fUExBWUxJU1QsCisgICAgRW5hYmxlZEJ5U2V0dGluZz1NZWRp
YVNlc3Npb25QbGF5bGlzdCwKK10gaW50ZXJmYWNlIG1peGluIE1lZGlhU2Vzc2lvblBsYXlsaXN0
TWl4aW4geworICAgIFtTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBhdHRy
aWJ1dGUgRnJvemVuQXJyYXk8TWVkaWFNZXRhZGF0YT4gcGxheWxpc3Q7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0NTIzZGQ1NGE3MWU2NjU0YTE3YmIwYzc3NGY3ODgx
NjMzN2Y0NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBNZWRpYVNlc3Npb25SZWFk
eVN0YXRlIDogdWludDhfdCB7CisgICAgSGF2ZU5vdGhpbmcsCisgICAgSGF2ZU1ldGFkYXRhLAor
ICAgIEhhdmVDdXJyZW50RGF0YSwKKyAgICBIYXZlRnV0dXJlRGF0YSwKKyAgICBIYXZlRW5vdWdo
RGF0YSwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40OTczZjJhYTU0Yzg2OGYzYjQ2NWY5YjU1ZTYxOTA1ZDVlYzRiOTQ5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZS5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBD
b25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLAorXSBlbnVtIE1lZGlhU2Vzc2lv
blJlYWR5U3RhdGUgeworICAgICJoYXZlTm90aGluZyIsCisgICAgImhhdmVNZXRhZGF0YSIsCisg
ICAgImhhdmVDdXJyZW50RGF0YSIsCisgICAgImhhdmVGdXR1cmVEYXRhIiwKKyAgICAiaGF2ZUVu
b3VnaERhdGEiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaAppbmRleCAwNDIxOTYxN2MyMzg2OTMw
MTA4YTY4NjBiMjEwMTI2OWNlNTM2ODllLi43ZDJiZjMwNjhiZjU2N2MxYzZmOGEzYzJlODk1NGZh
YWI0ZDIzM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaApAQCAtNDEsNyArNDEsNyBAQCBwdWJs
aWM6CiAgICAgZXhwbGljaXQgTmF2aWdhdG9yTWVkaWFTZXNzaW9uKE5hdmlnYXRvciYpOwogICAg
IH5OYXZpZ2F0b3JNZWRpYVNlc3Npb24oKTsKIAotICAgIHN0YXRpYyBNZWRpYVNlc3Npb24mIG1l
ZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTWVkaWFT
ZXNzaW9uJiBtZWRpYVNlc3Npb24oTmF2aWdhdG9yJik7CiAgICAgTWVkaWFTZXNzaW9uJiBtZWRp
YVNlc3Npb24oKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNGI0MTVlOWZjYmQ0Yjhk
ODY3ZGY1ZGE3ZTdjNjEzM2Y5YjE5NDBlYy4uYTc1YTJmMzM1ZGRhNTU3MzI4NDNkYWIwMGE2MzE4
OTg0Yjg0NGE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEzMSw2ICsxMzEsNyBAQCBNb2R1bGVzL21l
ZGlhY2FwYWJpbGl0aWVzL01lZGlhQ2FwYWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYWNhcGFi
aWxpdGllcy9OYXZpZ2F0b3JNZWRpYUNhcGFiaWxpdGllcy5jcHAKIE1vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhTWV0YWRhdGEuY3BwCiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
Y3BwCitNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIE1v
ZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5jcHAKIE1vZHVsZXMvbWVk
aWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9C
bG9iRXZlbnQuY3BwCkBAIC0xOTk4LDYgKzE5OTksNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9QYXRo
LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3Bw
CitwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVnaW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2UuY3BwCkBAIC0zMjI2LDYgKzMyMjgsNyBAQCBKU01lZGlhS2V5cy5jcHAKIEpTTWVk
aWFLZXlzUmVxdWlyZW1lbnQuY3BwCiBKU01lZGlhTGlzdC5jcHAKIEpTTWVkaWFNZXRhZGF0YS5j
cHAKK0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiBKU01lZGlhTWV0YWRhdGFJbml0LmNw
cAogSlNNZWRpYVBvc2l0aW9uU3RhdGUuY3BwCiBKU01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMzIz
Niw2ICszMjM5LDcgQEAgSlNNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmNwcAogSlNNZWRpYVNl
c3Npb25BY3Rpb25IYW5kbGVyLmNwcAogSlNNZWRpYVNlc3Npb25BY3Rpb24uY3BwCiBKU01lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGUuY3BwCitKU01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuY3BwCiBK
U01lZGlhU2Vzc2lvbi5jcHAKIEpTTWVkaWFTb3VyY2UuY3BwCiBKU01lZGlhU3RyZWFtLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGVjYWU1MDAzNGVhYTJjNjZjYWI2Y2YyNzJiYjcwMWZkOThiODQ0MjUuLjY1ODQ5ODE1OGFm
YmU4Mjc0ZmUxZTQyMjMwMzQ3OGM0MDgyNWJjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkwLDYgKzkwLDcgQEAKIAkJMDcw
NzU2RDQxNDIzOUE0RjAwNDE0MTYxIC8qIEpTSFRNTFRyYWNrRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwNzU2RDIxNDIzOUE0RTAwNDE0
MTYxIC8qIEpTSFRNTFRyYWNrRWxlbWVudC5oICovOyB9OwogCQkwNzA3NTZERTE0MjM5QjRFMDA0
MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MDc1NkQ4MTQyMzlCNEIwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1
ZS5oICovOyB9OwogCQkwNzA3NTZFMDE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3
NTZEQTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0LmggKi87IH07CisJCTA3
MDhGMkI2MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA4RjJC
NDI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oICov
OyB9OwogCQkwNzA5RDc4RjFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOUQ3
OEQxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzA5RDc5MjFBRTU1NTdF
MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjgg
LyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgKi87IH07CiAJCTA3MDlENzkzMUFFNTU1
N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc5MTFBRTU1NTdFMDA0RTQyRjgg
LyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjMsNiArMTI0LDcgQEAKIAkJMDczQTE1NTQyMTc3
QTQyNjAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVt
b3RlVmlkZW9TYW1wbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwNzNCODc2NzFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNC
ODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3NjkxRTQzODVB
QzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1
ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTA3NDBCMTQ0MjVERTMxRjgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDc0MEIxNDMyNURFMzFBOTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5jcHAgKi87IH07CiAJCTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9y
bVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUwMzNBODI1
MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUwMzNBNjI1MkJEMzY4MDBG
NzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUy
IC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5o
ICovOyB9OwpAQCAtNTY5Miw2ICs1Njk0LDcgQEAKIAkJMDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYx
IC8qIEpTVGV4dFRyYWNrQ3VlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
VGV4dFRyYWNrQ3VlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDc1NkQ5MTQy
MzlCNEMwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVMaXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2REExNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNr
Q3VlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFja0N1
ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcwOEYyQjQyNURERTQ1RDAw
NEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA5RDc4QzFBRTU1NTU0MDA0RTQyRjggLyog
V2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcwOUQ3OEQxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTZXNzaW9uTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA5RDc5MDFBRTU1NTdFMDA0
RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3ODMsNiArNTc4NiwxNCBAQAogCQkwNzJBRTFFMzE4
M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyQUUxRTQxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGlt
ZVBsdWdpblJlcGxhY2VtZW50LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBw
YXRoID0gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3MkNBODYwMTZDQjREQzMwMDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkJGQjI1
REIzOEJDMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcy
REJDMDMyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3MkRCQzA1MjVEQzZCRDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA2MjVEQzZFREEwMEExMzUwRSAv
KiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDcy
NURDNkVEQTAwQTEzNTBFIC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA3MzZCNzMwMjYwOTRBMzcwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25D
b29yZGluYXRvck1peGluLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3MzIyNjA5NTU1NDAwRTA2OTk0
IC8qIE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vzc2lvblBsYXls
aXN0TWl4aW4uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzM2QjczMzI2MEE3
QjY0MDBFMDY5OTQgLyogTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlh
TWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDczNzk0REMxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENPZmZlckFuc3dlck9wdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0RTMxOUVFMkZGMjAwRTVBMDQ1IC8qIEpT
UlRDQ29uZmlndXJhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1JUQ0NvbmZpZ3VyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzM3OTRFNDE5RUUyRkYyMDBFNUEwNDUgLyogSlNSVENDb25maWd1cmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUlRDQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNTgwNCw2ICs1ODE1LDEwIEBACiAJCTA3M0I4NzYzMUU0Mzg1
OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFT
b3VyY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1Nh
bXBsZURhdGFTb3VyY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY1
MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVEYXRhU291cmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDBCMTQzMjVERTMxQTkw
MEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDc0NDcxRkQyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5
U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwNzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDRFQ0VCMUUwQzRBRTUwMDBEMDk0NCAvKiBN
b2NrQXVkaW9TaGFyZWRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1v
Y2tBdWRpb1NoYXJlZFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NEVD
RUMxRTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNb2NrQXVkaW9TaGFyZWRVbml0Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ2RDMwQTIxNDZFQTM3MDAzRERGODQgLyogSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC01OTIwLDYgKzU5MzUsNyBAQAogCQkwN0UxMTZCMDE0ODlDOUExMDBFQzVBQ0UgLyog
SlNUZXh0VHJhY2tDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNUZXh0VHJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
N0UxMTcwNjE0ODlFQkVCMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdWVDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTgg
LyogTWVkaWFQbGF5YmFja1RhcmdldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVBsYXliYWNrVGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
RTVGMzkyMjVFQUE5MUYwMEE4NTNBRCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEz
QTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyog
SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAv
KiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC05Nzk3LDEwICs5ODEzLDEwIEBACiAJCTZFMEU1NjlBMTgzQkZGRTYwMEUw
RThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZsb2F0Um91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUy
MUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QzExMTI2MzM5OTAwQTdC
RTAyIC8qIEdyYXBoaWNzQ29udGV4dEdMQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTZFMjQyQjI2MjMzNTkzRDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVFVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
RVRDLmNwcDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyNDJCMjgyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVFVEMuaDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVn
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFMjQyQjI5MjMzNTkzRDcwMDJDQURENCAvKiBK
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2Vi
S2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVFVEMxLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyNDJCMkEyMzM1
OTNEODAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5oOyBwYXRoID0gLi4vLi4vLi4vLi4v
Li4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVFVEMxLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMjQy
QjI2MjMzNTkzRDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUyNDJCMjgyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVFVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUyNDJCMjkyMzM1
OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTZFMjQyQjJBMjMzNTkzRDgwMDJDQURENCAvKiBKU1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVFVEMxLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUVUQzEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyN0YyNDIyMjk4Q0U0
QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjdGMjQzMjI5QzlGODQwMEYxRjYzMiAvKiBFeHRlbnNp
b25zR0xBTkdMRS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeHRl
bnNpb25zR0xBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjdGMjQ0
MjI5QzlGOEQwMEYxRjYzMiAvKiBFeHRlbnNpb25zR0xBTkdMRS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFeHRlbnNpb25zR0xBTkdMRS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTk2MDMsNiArMTk2MTksOCBAQAogCQkJCTUxMDU4QURBMUQ2NzkyNTcwMDlB
NTM4QyAvKiBNb2NrR2FtZXBhZFByb3ZpZGVyLmggKi8sCiAJCQkJNDE1N0VCRjkxRTNBQjA2ODAw
QUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNDE1N0VC
RjgxRTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oICovLAor
CQkJCTA3NDBCMTQzMjVERTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwICovLAorCQkJCTA3NDBCMTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJCQkyRDZGM0U4QTFDMUVDQjFDMDA2MURCRDQgLyogTW9j
a1BhZ2VPdmVybGF5LmNwcCAqLywKIAkJCQkyRDZGM0U4QjFDMUVDQjFDMDA2MURCRDQgLyogTW9j
a1BhZ2VPdmVybGF5LmggKi8sCiAJCQkJMkQ2RjNFOEMxQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQ
YWdlT3ZlcmxheS5pZGwgKi8sCkBAIC0yNjkxMiw2ICsyNjkzMCw4IEBACiAJCQkJNTUwNjQwQUQy
NDA3NTZEQTAwQUFFMDQ1IC8qIFBsYXRmb3JtSW1hZ2VCdWZmZXJCYWNrZW5kLmggKi8sCiAJCQkJ
MDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLywKIAkJCQlDRUVG
Q0Q3QjE5REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggKi8s
CisJCQkJMDdFNUYzOTIyNUVBQTkxRjAwQTg1M0FEIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuY3BwICovLAorCQkJCTA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDND
RkE0IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmggKi8sCiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VG
NTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5jcHAgKi8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAw
N0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovLApAQCAtMjgzNTUsNiArMjgzNzUsNyBA
QAogCQkJCUNERERFQTJDMjUzOENFMDQwMEExMzAwQyAvKiBNZWRpYU1ldGFkYXRhLmlkbCAqLywK
IAkJCQlDRERERUEzMDI1MzhDRTFFMDBBMTMwMEMgLyogTWVkaWFNZXRhZGF0YUluaXQuaCAqLywK
IAkJCQlDRERERUEyRjI1MzhDRTFFMDBBMTMwMEMgLyogTWVkaWFNZXRhZGF0YUluaXQuaWRsICov
LAorCQkJCTA3MzZCNzMzMjYwQTdCNjQwMEUwNjk5NCAvKiBNZWRpYU1ldGFkYXRhUGxheWxpc3RN
aXhpbi5pZGwgKi8sCiAJCQkJQ0REREVBMzQyNTM4Q0U2MjAwQTEzMDBDIC8qIE1lZGlhUG9zaXRp
b25TdGF0ZS5oICovLAogCQkJCUNERERFQTMzMjUzOENFNjIwMEExMzAwQyAvKiBNZWRpYVBvc2l0
aW9uU3RhdGUuaWRsICovLAogCQkJCUNERERFQTI0MjUzOENEODAwMEExMzAwQyAvKiBNZWRpYVNl
c3Npb24uY3BwICovLApAQCAtMjgzNjYsOCArMjgzODcsMTUgQEAKIAkJCQlDRERERUEzNTI1MzhD
RTcwMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwgKi8sCiAJCQkJQ0RE
REVBM0EyNTM4RTlDMjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCAqLywK
IAkJCQlDRERERUEzOTI1MzhFOUMyMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxl
ci5pZGwgKi8sCisJCQkJMDcyREJDMDUyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcCAqLywKKwkJCQkwNzJEQkMwMzI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKKwkJCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyog
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsICovLAorCQkJCTA3MzZCNzMwMjYwOTRBMzcwMEUw
Njk5NCAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlkbCAqLywKIAkJCQlDRERERUEy
OTI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJ
CUNERERFQTI4MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlk
bCAqLywKKwkJCQkwNzM2QjczMjI2MDk1NTU0MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uUGxheWxp
c3RNaXhpbi5pZGwgKi8sCisJCQkJMDc0NDcxRkQyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vz
c2lvblJlYWR5U3RhdGUuaCAqLywKKwkJCQkwNzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyogTWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgKi8sCiAJCQkJQ0REREVBMjUyNTM4Q0RBQjAwQTEzMDBD
IC8qIE5hdmlnYXRvcitNZWRpYVNlc3Npb24uaWRsICovLAogCQkJCUNERERFQTI3MjUzOENEQUIw
MEExMzAwQyAvKiBOYXZpZ2F0b3JNZWRpYVNlc3Npb24uY3BwICovLAogCQkJCUNERERFQTI2MjUz
OENEQUIwMEExMzAwQyAvKiBOYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCAqLywKQEAgLTI4Mzk0LDYg
KzI4NDIyLDggQEAKIAkJCQlDRERERUE0MDI1MzkxMURCMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzLmggKi8sCiAJCQkJQ0REREVBNEQyNTM5MTNCQjAwQTEzMDBDIC8qIEpT
TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5jcHAgKi8sCiAJCQkJQ0REREVBNEUyNTM5MTNCQzAw
QTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovLAorCQkJCTA3MkRCQzA3
MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJ
CQkwNzJEQkMwNjI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
ICovLAogCQkJCUNERERFQTQ2MjUzOTExREQwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvblBsYXli
YWNrU3RhdGUuY3BwICovLAogCQkJCUNERERFQTQyMjUzOTExREMwMEExMzAwQyAvKiBKU01lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGUuaCAqLywKIAkJCSk7CkBAIC0zNDI5MSw2ICszNDMyMSw3IEBA
CiAJCQkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRUVGQ0Q3QzE5REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJl
c291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzBFMDkxOTE4NzVFRUZDMDAzQTFE
M0MgLyogUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTA3MDhGMkI2
MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwN0Y5NDQxNjE4NjREMDQ2MDA1RDMxQ0IgLyogUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVDNDc2OTA5QUM0RDQzMDBB
NkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTk4OTA1
ODE0RTlDMjk5MDBFOEQxOEIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLywK
QEAgLTM2MTkyLDYgKzM2MjIzLDcgQEAKIAkJCQk1MTA1OEFEQjFENjc5MkMxMDA5QTUzOEMgLyog
TW9ja0dhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwNThBREQxRDY3OTJDMTAwOUE1
MzhDIC8qIE1vY2tHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE1N0VC
RkExRTNBQjY3OTAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkwNzQwQjE0NDI1REUzMUY4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENkYzRTkwMUMxRUNCMjcw
MDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5N0Yw
NDcxOURENDEzQzAwMUVFOUMzIC8qIE1vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBMUFGRURFNzFGOEJGRjZEMDA4NzAxM0YgLyogTW9ja1BheW1lbnRDb29yZGlu
YXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCA2MDg4ZTYyMmJkYTVlZDM0YjFhMmYwYzNjZjIy
ZDVjNDY0YzA2ZjBkLi44NmVhYWEwMGYxNmJiYjZmNWJmZmE0Yjg5OGFhZjE3OTFhZTM3ODEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CkBAIC0xNzEsNiArMTcxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKE1lZGlh
UXVlcnlMaXN0RXZlbnQpIFwKICAgICBtYWNybyhNZWRpYVJlY29yZGVyKSBcCiAgICAgbWFjcm8o
TWVkaWFSZWNvcmRlckVycm9yRXZlbnQpIFwKKyAgICBtYWNybyhNZWRpYVNlc3Npb25Db29yZGlu
YXRvcikgXAogICAgIG1hY3JvKE1lZGlhU291cmNlKSBcCiAgICAgbWFjcm8oTWVkaWFTdHJlYW0p
IFwKICAgICBtYWNybyhNZWRpYVN0cmVhbVRyYWNrKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApp
bmRleCAxMzk0NDQzOTgxNDYwOTA5ZWYyYTBmZTViYzdkNzlhOTliNzJlNTU1Li4yYzY4MDdkY2E2
NTdmNjUwMmIyMGY0MWM1YWRhMmVlNjFiM2YyZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgK
QEAgLTEwMSw2ICsxMDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oY29ubmVj
dGluZykgXAogICAgIG1hY3JvKGNvbnRleHRtZW51KSBcCiAgICAgbWFjcm8oY29udHJvbGxlcmNo
YW5nZSkgXAorICAgIG1hY3JvKGNvb3JkaW5hdG9yY2hhbmdlKSBcCiAgICAgbWFjcm8oY29weSkg
XAogICAgIG1hY3JvKGN1ZWNoYW5nZSkgXAogICAgIG1hY3JvKGN1dCkgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggNjk2ZWE5Y2ViZDIxZDE0OWFlYTVlMGJi
NjQzN2FjZWZiOGNhMjAzNC4uMzllMzU3YzkyODBkMjkyZWIzZmM3MzZlODY4ZjU4ZGFlMWJmZGI0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC0yMyw2ICsy
Myw3IEBAIE1lZGlhRGV2aWNlcyBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KIE1lZGlhS2V5U2Vz
c2lvbiBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEKIE1lZGlhUXVlcnlMaXN0CiBNZWRpYVJl
Y29yZGVyIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQorTWVkaWFTZXNzaW9uCiBNZWRpYVNvdXJj
ZSBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKIE1lZGlhU3RyZWFtIGNvbmRpdGlvbmFsPU1FRElB
X1NUUkVBTQogTWVkaWFTdHJlYW1UcmFjayBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgKaW5kZXggY2UxYzNhNTY4MmZmMWI3ZGEzOThmOWMzYTQ0
MGE3NDk3ZDkzMmYxOS4uNjc5ZmI5Yzg5ZGFhNzg4YmJiZjVhNzU3NWQ5Y2QyMTE5MDQ2MjU2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoY29uc3QgU3Ry
aW5nJiBkYXRhKSA9IDA7CiAKICAgICAvLyBIZWxwZXIgdG8gcG9zdCBjYWxsYmFjayB0YXNrLgot
ICAgIHZvaWQgc2NoZWR1bGVDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3Qg
U3RyaW5nJiBkYXRhKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlQ2FsbGJhY2so
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgZGF0YSk7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkxMTc4NTExMzk5ZjQxNWY3ODFiMzJhYWVlNzZjMTEzZWIxN2ViY2QKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaCIKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
U3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCit7CisgICAgc3RhdGljIGNv
bnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJIYXZlTm90aGluZyIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJ
TkdfSU1QTCgiSGF2ZU1ldGFkYXRhIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJIYXZlQ3VycmVudERhdGEiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhh
dmVGdXR1cmVEYXRhIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlRW5v
dWdoRGF0YSIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydCghc3RhdGljX2Nhc3Q8c2l6ZV90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlTm90aGluZyksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyBpcyBu
b3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlTWV0YWRhdGEpID09IDEsICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRh
dGEgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0
PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhKSA9PSAyLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6
SGF2ZUN1cnJlbnREYXRhIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhKSA9PSAzLCAiTWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEpID09IDQsICJN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSBpcyBub3QgNCBhcyBleHBlY3Rl
ZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KHN0YXRlKSA8IFdURl9BUlJBWV9M
RU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KHN0
YXRlKV07Cit9CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRlKQor
eworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0gewor
ICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTm9uZSIpLAorICAgICAgICBNQUtFX1NU
QVRJQ19TVFJJTkdfSU1QTCgiUGF1c2VkIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19J
TVBMKCJQbGF5aW5nIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxz
aXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXli
YWNrU3RhdGU6Ok5vbmUpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSBpcyBub3Qg
MCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
OjpQYXVzZWQpID09IDEsICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQgaXMgbm90
IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZTo6UGxheWluZykgPT0gMiwgIk1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcgaXMg
bm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0
ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3RhdGlj
X2Nhc3Q8c2l6ZV90PihzdGF0ZSldOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTBkYzUxZDJhNmY4MGFiYzk3YWE2MDdk
OWU5YTUxMDE1MGYzMmVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0wLDAgKzEs
MTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cj4geworcHVibGljOgorICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IoKSA9IGRlZmF1bHQ7CisKKyAgICB1c2luZyBTZWVrQ29tcGxldGVkQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+OworICAgIHZpcnR1YWwg
dm9pZCBzZWVrVG8oZG91YmxlLCBTZWVrQ29tcGxldGVkQ2FsbGJhY2smJikgPSAwOworCisgICAg
dXNpbmcgUGxheUNvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxFeGNlcHRpb24+JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheShQbGF5Q29tcGxldGVk
Q2FsbGJhY2smJikgPSAwOworCisgICAgdXNpbmcgUGF1c2VDb21wbGV0ZWRDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47CisgICAgdmlydHVh
bCB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVkQ2FsbGJhY2smJikgPSAwOworCisgICAgdXNpbmcg
U2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8RXhjZXB0aW9uPiYmKT47CisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmlu
ZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB2b2lkIHNldExvZ2dl
cihjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKKyAgICB7
CisgICAgICAgIG1fbG9nZ2VyID0gbWFrZVJlZlB0cihsb2dnZXIpOworICAgICAgICBtX2xvZ0lk
ZW50aWZpZXIgPSBsb2dJZGVudGlmaWVyOworICAgIH0KKworICAgIHN0cnVjdCBNZWRpYVBvc2l0
aW9uU3RhdGUgeworICAgICAgICBkb3VibGUgZHVyYXRpb24gPSBzdGQ6Om51bWVyaWNfbGltaXRz
PGRvdWJsZT46OmluZmluaXR5KCk7CisgICAgICAgIGRvdWJsZSBwbGF5YmFja1JhdGUgPSAxOwor
ICAgICAgICBkb3VibGUgcG9zaXRpb24gPSAwOworICAgIH07CisKKyAgICBlbnVtIGNsYXNzIE1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGUgOiB1aW50OF90IHsKKyAgICAgICAgSGF2ZU5vdGhpbmcsCisg
ICAgICAgIEhhdmVNZXRhZGF0YSwKKyAgICAgICAgSGF2ZUN1cnJlbnREYXRhLAorICAgICAgICBI
YXZlRnV0dXJlRGF0YSwKKyAgICAgICAgSGF2ZUVub3VnaERhdGEsCisgICAgfTsKKworICAgIGVu
dW0gY2xhc3MgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSA6IHVpbnQ4X3QgeworICAgICAgICBO
b25lLAorICAgICAgICBQYXVzZWQsCisgICAgICAgIFBsYXlpbmcsCisgICAgfTsKKworICAgIHZp
cnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3Rh
dGU+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lv
blJlYWR5U3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQo
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgZXhwbGlj
aXQgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKKworICAgIGNv
bnN0IExvZ2dlciogbG9nZ2VyUHRyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0K
KyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJZGVu
dGlmaWVyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgeyByZXR1cm4g
IlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYg
bG9nQ2hhbm5lbCgpIGNvbnN0IHsgcmV0dXJuIExvZ01lZGlhOyB9CisKK3ByaXZhdGU6CisgICAg
UmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVu
dGlmaWVyOworfTsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpOworU3RyaW5n
IGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCA3NjM0MDlmNjYxYTI3MTlkYWJmMDkzM2UwZjg5ZDJlMDJjZWM2NGY3Li43NDJlZTdk
ZjdiMjkwNzAwZTA3OGQ0ZmMwNDY5YmEzZTE4YTExNzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC0zMzcsNiArMzM3LDEyIEBACiAjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3
aW4vU2FuZGJveFNQSS5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1ZGUg
Ik1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1ZGUgIk5hdmlnYXRvck1lZGlh
U2Vzc2lvbi5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKICNpbmNs
dWRlICJJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCIKICNlbmRpZgpAQCAtNjExMiw5ICs2MTE4LDQw
IEBAIHZvaWQgSW50ZXJuYWxzOjpsb2FkQXJ0d29ya0ltYWdlKFN0cmluZyYmIHVybCwgQXJ0d29y
a0ltYWdlUHJvbWlzZSYmIHByb21pc2UpCiAgICAgfSk7CiAgICAgbV9hcnR3b3JrTG9hZGVyLT5y
ZXF1ZXN0SW1hZ2VSZXNvdXJjZSgpOwogfQotCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQorRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpyZWdpc3Rl
ck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIpCit7CisgICAgaWYgKG1fbWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvKiBk
b2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3Vt
ZW50LT5kb21XaW5kb3coKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciB9OworCisgICAgaWYgKCFkb2N1bWVudC0+c2V0dGluZ3MoKS5tZWRpYVNlc3Npb25D
b29yZGluYXRvckVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRB
Y2Nlc3NFcnJvciB9OworCisgICAgYXV0byYgc2Vzc2lvbiA9IE5hdmlnYXRvck1lZGlhU2Vzc2lv
bjo6bWVkaWFTZXNzaW9uKGRvY3VtZW50LT5kb21XaW5kb3coKS0+bmF2aWdhdG9yKCkpOworICAg
IGF1dG8gbW9jayA9IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKGNvbnRleHQs
IFdURk1vdmUobGlzdGVuZXIpKTsKKyAgICBtX21vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciA9
IG1vY2sucHRyKCk7CisgICAgbV9tZWRpYVNlc3Npb25Db29yZGluYXRvciA9IE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpjcmVhdGUobW9jay5nZXQoKSk7CisgICAgc2Vzc2lvbi5zZXRDb29yZGlu
YXRvcihtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmdldCgpKTsKKworICAgIHJldHVybiB7IH07
Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsczo6c2V0TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKGJvb2wgc2hvdWxkRmFpbCkKK3sKKyAgICBpZiAo
IW1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIG1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLT5zZXRDb21tYW5kc1Nob3VsZEZhaWwoc2hvdWxkRmFpbCk7CisgICAgcmV0dXJuIHsgfTsK
K30KKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikKKwogY29uc3RleHByIEFTQ0lJTGl0
ZXJhbCBzdHJpbmcoUGFydGlhbE9yZGVyaW5nIG9yZGVyaW5nKQogewogICAgIGlmIChpc19sdChv
cmRlcmluZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA2MGVjYzQ4OGI0MzIw
NzdlYjJlMzYxMmMwNmZiNGU5OGRhNmFkNjZiLi4yMTNkODdjZWY2NGFkNWFkZTZiYTAyNTgwNzQ4
MWU1OTg5MDk3ODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTEzNiw2ICsx
MzYsMTAgQEAgY2xhc3MgV2ViWFJUZXN0OwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogY2xh
c3MgTWVkaWFTZXNzaW9uOwogc3RydWN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHM7CisjaWYg
RU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCitjbGFzcyBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjsKK2NsYXNzIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKKyNlbmRpZgogI2Vu
ZGlmCiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJl
ZDsKQEAgLTEwOTMsMTAgKzEwOTcsMTcgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OKQogICAgIEV4Y2VwdGlvbk9yPGRvdWJsZT4gY3VycmVudE1lZGlhU2Vzc2lvblBvc2l0aW9u
KGNvbnN0IE1lZGlhU2Vzc2lvbiYpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNlbmRNZWRpYVNl
c3Npb25BY3Rpb24oTWVkaWFTZXNzaW9uJiwgY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWls
cyYpOwotICAgIHVzaW5nIEFydHdvcmtJbWFnZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8
SURMSW50ZXJmYWNlPEltYWdlRGF0YT4+OworCisgICAgICAgIHVzaW5nIEFydHdvcmtJbWFnZVBy
b21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEltYWdlRGF0YT4+OwogICAg
IHZvaWQgbG9hZEFydHdvcmtJbWFnZShTdHJpbmcmJiwgQXJ0d29ya0ltYWdlUHJvbWlzZSYmKTsK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYpOworICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChib29s
KTsKICNlbmRpZgogCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pCisKICAgICBlbnVt
IFRyZWVUeXBlIDogdWludDhfdCB7IFRyZWUsIFNoYWRvd0luY2x1ZGluZ1RyZWUsIENvbXBvc2Vk
VHJlZSB9OwogICAgIFN0cmluZyB0cmVlT3JkZXIoTm9kZSYsIE5vZGUmLCBUcmVlVHlwZSk7CiAg
ICAgU3RyaW5nIHRyZWVPcmRlckJvdW5kYXJ5UG9pbnRzKE5vZGUmIGNvbnRhaW5lckEsIHVuc2ln
bmVkIG9mZnNldEEsIE5vZGUmIGNvbnRhaW5lckIsIHVuc2lnbmVkIG9mZnNldEIsIFRyZWVUeXBl
KTsKQEAgLTExNDAsNiArMTE1MSwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJYUikKICAg
ICBSZWZQdHI8V2ViWFJUZXN0PiBtX3hyVGVzdDsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
PiBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworICAgIFJlZlB0cjxNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I+IG1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
aW5kZXggZTg1ZTA4ZGY4OGNkOTU4MDE5ZGJlNDYxM2UzNmQ0OWRiODYxMTY4My4uMmM5NDhiMjJi
NzcxNGMxOTczZjJjMzRmODFkZWU3MDhjMjM2Y2IxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbApAQCAtOTkxLDYgKzk5MSw5IEBAIGVudW0gVHJlZVR5cGUgewogICAgIFtDb25k
aXRpb25hbD1NRURJQV9TRVNTSU9OXSB1bmRlZmluZWQgc2VuZE1lZGlhU2Vzc2lvbkFjdGlvbihN
ZWRpYVNlc3Npb24gc2Vzc2lvbiwgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBhY3Rpb25EZXRh
aWxzKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl0gUHJvbWlzZTxJbWFnZURhdGE+
IGxvYWRBcnR3b3JrSW1hZ2UoRE9NU3RyaW5nIHVybCk7CiAgICAgCisgICAgW0NvbmRpdGlvbmFs
PU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIHVuZGVmaW5lZCByZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTdHJpbmdD
YWxsYmFjayBjYWxsYmFjayk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1JdIHVuZGVmaW5lZCBzZXRNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21tYW5kc1No
b3VsZEZhaWwoYm9vbGVhbiBzaG91bGRGYWlsKTsKKwogICAgIERPTVN0cmluZyB0cmVlT3JkZXIo
Tm9kZSBhLCBOb2RlIGIsIG9wdGlvbmFsIFRyZWVUeXBlIHRyZWUgPSAiVHJlZSIpOwogICAgIERP
TVN0cmluZyB0cmVlT3JkZXJCb3VuZGFyeVBvaW50cyhOb2RlIGNvbnRhaW5lckEsIHVuc2lnbmVk
IGxvbmcgb2Zmc2V0QSwgTm9kZSBjb250YWluZXJCLCB1bnNpZ25lZCBsb25nIG9mZnNldEIsIG9w
dGlvbmFsIFRyZWVUeXBlIHRyZWUgPSAiVHJlZSIpOwogICAgIGJvb2xlYW4gcmFuZ2VDb250YWlu
c05vZGUoQWJzdHJhY3RSYW5nZSByYW5nZSwgTm9kZSBub2RlLCBvcHRpb25hbCBUcmVlVHlwZSB0
cmVlID0gIlRyZWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzc1ZmI2MTMyNTBkNzFkNzEx
NDU3Njc0OTQzYTVjMDE3ODUyOWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0wLDAgKzEsMTE0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgorI2luY2x1ZGUgIlN0cmluZ0NhbGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9VVUlELmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
PiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKGNvbnRleHQs
IFdURk1vdmUobGlzdGVuZXIpKSk7Cit9CisKK01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKKyAgICA6IG1fY29udGV4dChj
b250ZXh0KQorICAgICwgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyKFdURk1vdmUobGlzdGVuZXIpKQor
eworfQorCitPcHRpb25hbDxFeGNlcHRpb24+IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
cmVzdWx0KCkgY29uc3QKK3sKKyAgICBpZiAobV9mYWlsQ29tbWFuZHMpCisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3Vi
bGUgdGltZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlT
X0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKKyAgICBtX2NvbnRleHQtPnBv
c3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjayhyZXN1bHQoKSk7CisgICAg
fSk7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KFBsYXlDb21w
bGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUo
TE9HSURFTlRJRklFUik7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsK
KyAgICAgICAgY2FsbGJhY2socmVzdWx0KCkpOworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxi
YWNrKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAg
bV9jb250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0g
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2socmVz
dWx0KCkpOworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
c2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJh
Y2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBt
X2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjayhyZXN1
bHQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpw
b3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVBvc2l0aW9uU3RhdGU+KQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUo
TE9HSURFTlRJRklFUik7CisgICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxi
YWNrKG1fY29udGV4dC5nZXQoKSwgInBvc2l0aW9uU3RhdGVDaGFuZ2VkIik7Cit9CisKK3ZvaWQg
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZChQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQorewor
ICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgc3RhdGUpOworICAgIG1f
c3RhdGVDaGFuZ2VMaXN0ZW5lci0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCksICJy
ZWFkeVN0YXRlQ2hhbmdlZCIpOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BP
U1NJQkxFKExPR0lERU5USUZJRVIsIHN0YXRlKTsKKyAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXIt
PnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgpLCAicGxheWJhY2tTdGF0ZUNoYW5nZWQi
KTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NzBiYjRjYjBiZTk2Zjg1ZmQ0NTcwZThlMzkzYjcyMzZmZThm
MmIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1
ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFN0cmluZ0Nh
bGxiYWNrOworCitjbGFzcyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYm
KTsKKworICAgIHZvaWQgc2V0Q29tbWFuZHNTaG91bGRGYWlsKGJvb2wgc2hvdWxkRmFpbCkgeyBt
X2ZhaWxDb21tYW5kcyA9IHNob3VsZEZhaWw7IH0KKworcHJpdmF0ZToKKyAgICBNb2NrTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZlB0cjxTdHJpbmdD
YWxsYmFjaz4mJik7CisKKyAgICB2b2lkIHNlZWtUbyhkb3VibGUsIFNlZWtDb21wbGV0ZWRDYWxs
YmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYpIGZp
bmFsOworICAgIHZvaWQgcGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAg
ICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYm
KSBmaW5hbDsKKworICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQ
b3NpdGlvblN0YXRlPikgZmluYWw7CisgICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNl
c3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKKyAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpIGZpbmFsOworCisgICAgT3B0aW9uYWw8RXhjZXB0aW9u
PiByZXN1bHQoKSBjb25zdDsKKworICAgIFJlZjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX2Nv
bnRleHQ7CisgICAgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiBtX3N0YXRlQ2hhbmdlTGlzdGVuZXI7
CisgICAgYm9vbCBtX2ZhaWxDb21tYW5kcyB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZDYwZjcyNDg0N2Fh
NTE2YjZmZmNhMzY2NTk4MzQ5N2I2NjljZDkwLi45MTdkMjA0NGU3ZmJmODJhYmY4NWNkYjU4OTg1
OGZlMDZjZWRmNjg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhw
ZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83NDUwODg2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogbWVkaWEvbWVkaWEt
c2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
bWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWw6IEFkZGVkLgorCiAyMDIx
LTAzLTIzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQ
XSAyIHdlYiBhdWRpbyBXUFQgdGVzdHMgZmFpbCB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlz
IGVuYWJsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQxMGNmMzZhYmM5MzEwOTJmYWIwNzM5OTE1
NjdkOWU2MjFmOGFjODUuLjYzODkwMGVlZWRjOWFmMWEyYzI0NDEzM2U3YWRlM2I5MzQ1Y2YxMzcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDYzNyw2ICs0NjM3LDcgQEAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtYWZ0ZXItaW5pdGlhbC1s
YXlvdXQvd3IKICMgQ29jb2Etb25seQogaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWhkci1zd2l0
Y2guaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9tZWRpYS92aWRlby1jYW5wbGF5dGhyb3VnaC13
ZWJtLmh0bWwgWyBTa2lwIF0KK21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5o
dG1sIFsgU2tpcCBdCiAKICMgVGhlc2UgdGVzdHMgcmVseSBvbiB3ZWJraXQtdGVzdC1ydW5uZXIg
ZmxhZ3MgdGhhdCBhcmVuJ3QgaW1wbGVtZW50ZWQgZm9yIER1bXBSZW5kZXJUcmVlLCBzbyB0aGV5
IHdpbGwgZmFpbCB1bmRlciBsZWdhY3kgV2ViS2l0LgogZWRpdGluZy9zZWxlY3Rpb24vZXhwYW5k
by5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
c2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggZmVjNmQ2NDM4OWVk
ZTFjMjBkNGYyNjIzNTdmMTI2MmM3MTFhMDEzNS4uNzFkYmNjMzhkMzkxOWJiM2MwYjM2MjhjNGQx
MGRkMjY0NzkxNWNlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYXNlc3Npb24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFz
ZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMTIsMTAgKzEyLDE0IEBA
IFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbnRlbnRVdGlsczogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0
b3JQbHVnaW5zOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVk
ZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
UEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAorRkFJTCBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfZXF1YWxzOiBwcm90b3R5
cGUgb2Ygc2VsZidzIHByb3BlcnR5ICJNZWRpYVNlc3Npb24iIGlzIG5vdCBGdW5jdGlvbi5wcm90
b3R5cGUgZXhwZWN0ZWQgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICBbbmF0aXZlIGNvZGVd
Cit9IiBidXQgZ290IGZ1bmN0aW9uICJmdW5jdGlvbiBFdmVudFRhcmdldCgpIHsKKyAgICBbbmF0
aXZlIGNvZGVdCit9IgogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
IFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZSBvYmplY3QgbmFtZQotUEFTUyBNZWRpYVNlc3Np
b24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QKK0ZBSUwgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGFzc2VydF9lcXVhbHM6IHBy
b3RvdHlwZSBvZiBNZWRpYVNlc3Npb24ucHJvdG90eXBlIGlzIG5vdCBPYmplY3QucHJvdG90eXBl
IGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBPYmplY3RdIiBidXQgZ290IG9iamVjdCAiW29iamVj
dCBFdmVudFRhcmdldF0iCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3Rv
ciIgcHJvcGVydHkKIFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBw
cm9wZXJ0eQogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWV0YWRhdGEK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGlu
YXRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2st
Y29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0MDZmNDgyZjQ4OWM3MjZmNDcy
ODgwZWU2Njc2ZjkyNGQwNWU1NjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
ODEgQEAKKworKiogVGhlcmUgc2hvdWxkIGJlIG5vIG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciBp
bml0aWFsbHkuCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciA9
PSAndW5kZWZpbmVkJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbi5jb29yZGluYXRv
cmNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIGl0IGNoYW5nZXMuCitSVU4oaW50ZXJuYWxzLnJl
Z2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKGNoYW5nZUhhbmRsZXIpKQorRVZFTlQo
Y29vcmRpbmF0b3JjaGFuZ2UpCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29y
ZGluYXRvciAhPSAndW5kZWZpbmVkJykgT0sKKworKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0
b3IgbWV0aG9kcyBzdWNjZWVkLCBwcm9taXNlcyByZXNvbHZlIGFuZCBtZWRpYVNlc3Npb24gYWN0
aW9uIGhhbmRsZXJzIGFyZSBjYWxsZWQuCitUZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29v
cmRpbmF0b3IucGxheSgpCitBQ1RJT04ocGxheSkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0g
J3BsYXknKSBPSworCitUZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGF1
c2UoKQorQUNUSU9OKHBhdXNlKQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAncGF1c2UnKSBP
SworCitUZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla3RvKCkKK0FD
VElPTihzZWVrdG8pCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdzZWVrdG8nKSBPSworCisq
KiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIHN1Y2NlZWQsIHByb21pc2VzIHJl
amVjdCBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUgbm90IGNhbGxlZC4KK1Rl
c3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5KCkKK0VYUEVDVEVEIChs
YXRlc3RBY3Rpb24gPT0gJycpIE9LCisKK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29y
ZGluYXRvci5wYXVzZSgpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICcnKSBPSworCitUZXN0
IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla3RvKCkKK0VYUEVDVEVEIChs
YXRlc3RBY3Rpb24gPT0gJycpIE9LCisKKyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZp
ZXMgY29vcmRpbmF0b3Igd2hlbiBwb3NpdGlvblN0YXRlIGNoYW5nZXMuCitSVU4obmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKHsgZHVyYXRpb246IDEsIHBsYXliYWNrUmF0
ZTogMSwgcG9zaXRpb246IDAgfSkpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdwb3NpdGlv
blN0YXRlQ2hhbmdlZCcpIE9LCisKKyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMg
Y29vcmRpbmF0b3Igd2hlbiByZWFkeVN0YXRlIGNoYW5nZXMuCitFWFBFQ1RFRCAobmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTm90aGluZycpIE9LCitSVU4obmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVNZXRhZGF0YScpCitFWFBFQ1RFRCAo
bGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTWV0YWRhdGEnKSBPSworCitFWFBF
Q1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTWV0YWRhdGEn
KSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlQ3VycmVu
dERhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBP
SworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUN1
cnJlbnREYXRhJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlT
dGF0ZSA9PSAnaGF2ZUN1cnJlbnREYXRhJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnJlYWR5U3RhdGUgPSAnaGF2ZUZ1dHVyZURhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9
PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Np
b24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUZ1dHVyZURhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRnV0dXJlRGF0YScpIE9LCitSVU4o
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVFbm91Z2hEYXRhJykKK0VY
UEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3JlYWR5U3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVE
IChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVFbm91Z2hEYXRhJykg
T0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2
ZUVub3VnaERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9
ICdoYXZlTm90aGluZycpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hh
bmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09
ICdoYXZlTm90aGluZycpIE9LCisKKyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMg
Y29vcmRpbmF0b3Igd2hlbiBwbGF5YmFja1N0YXRlIGNoYW5nZXMuCitFWFBFQ1RFRCAobmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdub25lJykgT0sKK1JVTihuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAncGF1c2VkJykKK0VYUEVDVEVEIChsYXRl
c3RDaGFuZ2UgPT0gJ3BsYXliYWNrU3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BhdXNlZCcpIE9LCisKK0VYUEVDVEVE
IChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BhdXNlZCcpIE9LCitS
VU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ3BsYXlpbmcnKQorRVhQ
RUNURUQgKGxhdGVzdENoYW5nZSA9PSAncGxheWJhY2tTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNU
RUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGxheWluZycpIE9L
CisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3Bs
YXlpbmcnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICdu
b25lJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3BsYXliYWNrU3RhdGVDaGFuZ2VkJykg
T0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ25v
bmUnKSBPSworCisKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc4MTE0YThi
NTMwZjRkZDk5YzMxMThkOWE1NzJmZWI1ZTVjMTc0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCkBAIC0wLDAg
KzEsMTMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPm1v
Y2stbWVkaWFzZXNzaW9uLWNvb3JkaW5hdG9yPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
dmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKworICAgIGZ1bmN0aW9uIGNo
YW5nZUhhbmRsZXIoY2hhbmdlKQorICAgIHsKKyAgICAgICAgd2luZG93LmxhdGVzdENoYW5nZSA9
IGNoYW5nZTsKKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFz
eW5jIGV2ZW50ID0+IHsKKworICAgICAgICB3aW5kb3cubGF0ZXN0QWN0aW9uID0gJyc7CisgICAg
ICAgIHdpbmRvdy5sYXRlc3RDaGFuZ2UgPSAnJzsKKworICAgICAgICBpZiAoIXdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdUaGlzIHRlc3QgcmVxdWlyZXMgSW50ZXJu
YWxzJyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBj
aGFuZ2VQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICBuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2Nvb3JkaW5hdG9yY2hhbmdlJywg
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBFVkVOVCgke2V2ZW50
LnR5cGV9KWApOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xl
V3JpdGUoJyoqIFRoZXJlIHNob3VsZCBiZSBubyBtZWRpYVNlc3Npb24uY29vcmRpbmF0b3IgaW5p
dGlhbGx5LicpCisKKyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LmNvb3JkaW5hdG9yJywgdW5kZWZpbmVkKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOwor
ICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24uY29vcmRpbmF0
b3JjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiBpdCBjaGFuZ2VzLicpCisKKyAgICAgICAgcnVu
KCdpbnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY2hhbmdlSGFu
ZGxlciknKTsKKworICAgICAgICBhd2FpdCBjaGFuZ2VQcm9taXNlOworICAgICAgICAKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yJywgdW5k
ZWZpbmVkLCAnIT0nKTsKKworICAgICAgICBbJ3BsYXknLCAncGF1c2UnLCAnc2Vla3RvJ10uZm9y
RWFjaChhY3Rpb24gPT4geworICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRB
Y3Rpb25IYW5kbGVyKGFjdGlvbiwgYWN0aW9uRGV0YWlscyA9PiB7CisgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKGBBQ1RJT04oJHthY3Rpb25EZXRhaWxzLmFjdGlvbn0pYCk7CisgICAgICAg
ICAgICAgICAgbGF0ZXN0QWN0aW9uID0gYWN0aW9uRGV0YWlscy5hY3Rpb247CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgbGV0IHRlc3RBY3Rpb24gPSBhc3luYyAoYWN0
aW9uLCBmdW5jLCBmb3JjZUZhaWx1cmUpID0+IHsKKyAgICAgICAgICAgIGxhdGVzdEFjdGlvbiA9
ICcnOworCisgICAgICAgICAgICBsZXQgc3VjY2VlZGVkOworICAgICAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYFRlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5j
b29yZGluYXRvci4ke2FjdGlvbn0oKWApOworICAgICAgICAgICAgICAgIGF3YWl0IGZ1bmMoKTsK
KyAgICAgICAgICAgICAgICBpZiAoZm9yY2VGYWlsdXJlKQorICAgICAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoYEZBSUw6ICR7ZnVuYy50b1N0cmluZygpfSByZXNvbHZlZCBidXQgc2hvdWxk
IGhhdmUgcmVqZWN0ZWRgKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2xhdGVzdEFj
dGlvbicsIGFjdGlvbik7CisgICAgICAgICAgICB9IGNhdGNoIChleCkgeworICAgICAgICAgICAg
ICAgIGlmICghZm9yY2VGYWlsdXJlKQorICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
YEZBSUw6ICR7ZnVuYy50b1N0cmluZygpfSB0aHJldyAke2V4fWApOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0aW9uJywgJycpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICB9OworCisgICAgICAgIGxldCBhY3Rp
b25zID0gWyAKKyAgICAgICAgICAgIHsgYWN0aW9uOiAncGxheScsIGZ1bmMgOiAoKSA9PiB7IHJl
dHVybiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKSB9LCB9LAorICAg
ICAgICAgICAgeyBhY3Rpb246ICdwYXVzZScsIGZ1bmMgOiAoKSA9PiB7IHJldHVybiBuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBhdXNlKCkgfSwgfSwKKyAgICAgICAgICAgIHsg
YWN0aW9uOiAnc2Vla3RvJywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRvci5tZWRpYVNl
c3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEwKSB9LCB9LAorICAgICAgICBdOworCisgICAgICAg
IGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdo
ZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCAgcHJvbWlzZXMgcmVzb2x2ZSBhbmQgbWVk
aWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUgY2FsbGVkLicpCisgICAgICAgIGludGVybmFs
cy5zZXRNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21tYW5kc1Nob3VsZEZhaWwoZmFsc2Up
OworICAgICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykKKyAgICAgICAgICAgIGF3YWl0
IHRlc3RBY3Rpb24oYWN0aW9uLmFjdGlvbiwgYWN0aW9uLmZ1bmMsIGZhbHNlKTsKKworICAgICAg
ICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCB3aGVuIGNvb3JkaW5hdG9yIG1ldGhvZHMgc3Vj
Y2VlZCwgIHByb21pc2VzIHJlamVjdCBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBh
cmUgbm90IGNhbGxlZC4nKQorICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKHRydWUpOworICAgICAgICBmb3IgKGxldCBhY3Rp
b24gb2YgYWN0aW9ucykKKyAgICAgICAgICAgIGF3YWl0IHRlc3RBY3Rpb24oYWN0aW9uLmFjdGlv
biwgYWN0aW9uLmZ1bmMsIHRydWUpOworCisgICAgICAgIGNvbnNvbGVXcml0ZShgKiogVGVzdCB0
aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGluYXRvciB3aGVuIHBvc2l0aW9uU3RhdGUg
Y2hhbmdlcy5gKQorICAgICAgICBydW4oJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uc2V0UG9zaXRp
b25TdGF0ZSh7IGR1cmF0aW9uOiAxLCBwbGF5YmFja1JhdGU6IDEsIHBvc2l0aW9uOiAwIH0pJyk7
CisgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2xhdGVzdENoYW5nZScsICdw
b3NpdGlvblN0YXRlQ2hhbmdlZCcsICc9PScsIDEwMCk7CisKKyAgICAgICAgY29uc29sZVdyaXRl
KCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uIG5v
dGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcmVhZHlTdGF0ZSBjaGFuZ2VzLicpCisgICAgICAgIGxl
dCBwcmV2aW91c1N0YXRlID0gJ2hhdmVOb3RoaW5nJzsKKyAgICAgICAgZm9yIChsZXQgc3RhdGUg
b2YgWydoYXZlTWV0YWRhdGEnLCAnaGF2ZUN1cnJlbnREYXRhJywgJ2hhdmVGdXR1cmVEYXRhJywg
J2hhdmVFbm91Z2hEYXRhJywgJ2hhdmVOb3RoaW5nJ10pIHsKKyAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlJywgcHJldmlvdXNTdGF0ZSk7
CisKKyAgICAgICAgICAgIGxhdGVzdENoYW5nZSA9ICcnOworICAgICAgICAgICAgcnVuKGBuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnJHtzdGF0ZX0nYCk7CisKKyAgICAgICAg
ICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2xhdGVzdENoYW5nZScsICdyZWFkeVN0
YXRlQ2hhbmdlZCcsICc9PScsIDEwMCk7CisKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlJywgc3RhdGUpOworICAgICAgICAgICAgcHJl
dmlvdXNTdGF0ZSA9IHN0YXRlOworICAgICAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAg
ICAgfTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24g
bm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwbGF5YmFja1N0YXRlIGNoYW5nZXMuJykKKyAgICAg
ICAgcHJldmlvdXNTdGF0ZSA9ICdub25lJzsKKyAgICAgICAgZm9yIChsZXQgc3RhdGUgb2YgWydw
YXVzZWQnLCAncGxheWluZycsICdub25lJ10pIHsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUnLCBwcmV2aW91c1N0YXRlKTsK
KworICAgICAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7CisgICAgICAgICAgICBydW4oYG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICcke3N0YXRlfSdgKTsKKworICAgICAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3BsYXli
YWNrU3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUnLCBzdGF0ZSk7CisgICAgICAg
ICAgICBwcmV2aW91c1N0YXRlID0gc3RhdGU7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycp
OworICAgICAgICB9OworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGVuZFRl
c3QoKTsKKyAgICB9LCB7b25jZTogdHJ1ZX0pOworCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424149</attachid>
            <date>2021-03-24 10:09:01 -0700</date>
            <delta_ts>2021-03-24 11:06:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222158-20210324100859.patch</filename>
            <type>text/plain</type>
            <size>120699</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmYzczYWI5YzdiZWUzNDEzMjkxOGE5
NDVhYTQ3NDVkZjM2NDE1ZWUuLjY1MzUzNDNjZmY1YmY1YmU4NzIzMWYzMjJjODBhMDRjZmUyM2U5
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAzLTIzICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlcXVpcmUgVk1fRkxBR1NfUEVS
TUFORU5UIG9uIHRoZSBzaW11bGF0b3IgYnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkxZDM5NzM5ODU0
YWQ2YmY0NmQ0YzhkZGIyYmJjNjY4OGNlZTViYS4uY2E0NjcyMTFjODU3MjY4YTY2NmVmNWRmMDVm
MGYwM2IyN2UzYjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAyMS0wMi0xOCAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2Fd
IEFkZCBFeHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9y
LCBhbiBvYmplY3QgdGhhdCBwcm92aWRlcyBhbiBpbnRlcmZhY2UKKyAgICAgICAgdGhhdCBhbGxv
d3Mgc2NyaXB0IHRvIGNvb3JkaW5hdGUgY2hhbmdlcyB0byBNZWRpYVNlc3Npb24gd2l0aCB0aGUg
VXNlciBBZ2VudC4gQWxzbworICAgICAgICBhZGQgYW4gZXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lv
biBwbGF5bGlzdCBpbnRlcmZhY2UuCisKKyAgICAgICAgVGhlIGNoYW5nZXMgYXJlIGJlaGluZCBu
ZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUgZmxhZ3MsCisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yRW5hYmxlZCBhbmQgTWVkaWFTZXNzaW9uUGxheWxpc3RFbmFibGVkLgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OiBBZGQgbmV3IElETCBmaWxlcy4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDogQWRkIG5ldyBkZXJp
dmVkIHNvdXJjZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkIG5ldyBJREwu
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6IFNldCB0cmFja0lkZW50aWZp
ZXIgZnJvbSBpbml0IGRhdGEuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRU
cmFja0lkZW50aWZpZXIpOiB0cmFja0lkZW50aWZpZXIgc2V0dGVyLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oOiBBZGQgdHJhY2tJZGVudGlmaWVyLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
OjpNZWRpYVNlc3Npb24pOiBJbml0aWFsaXplIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEpOiBtZXRhZGF0YVVw
ZGF0ZWQgLT4gbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb246OnNldFJlYWR5U3RhdGUpOiBTZXNzaW9uIHJlYWR5U3RhdGUgc2V0dGVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcik6IENvb3JkaW5hdG9y
IHNldHRlci4gUG9zdCAnY29vcmRpbmF0b3JjaGFuZ2UnCisgICAgICAgIGV2ZW50IGFmdGVyIGNo
YW5nZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0UGxheWxpc3QpOiBQbGF5
bGlzdCBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldEFjdGlvbkhh
bmRsZXIpOiBDYWxsIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNlcnZlcnMuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUpOiBDYWxsIG5vdGlmeVBvc2l0aW9u
U3RhdGVPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Om1ldGFkYXRh
VXBkYXRlZCk6IENhbGwgbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcik6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbjo6Zm9yRWFjaE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycyk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5QWN0aW9uSGFuZGxl
ck9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5
UmVhZHlTdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRp
bmF0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGw6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsOgor
CisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHByb3hpZXMgY2FsbHMgdGhyb3VnaCB0
aGUgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciwKKyAgICAgICAgYW5kIHRoZW4gY2Fs
bHMgdGhlIGVxdWl2YWxlbnQgTWVkaWFTZXNzaW9uIG1ldGhvZGUgaWYgdGhlIHBsYXRmb3JtIGNv
b3JkaW5hdG9yIAorICAgICAgICBpcyBzdWNjZXNzZnVsLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOiBOZXcuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDbGFzc05hbWUpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlk
bDogTmV3LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFT
ZXNzaW9uLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW46CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TG9nZ2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlclB0ciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsIGNvbnN0KToKKworICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOiBSZWdpc3RlciB0aGUgbW9jawor
ICAgICAgICBtZWRpYSBzZXNzaW9uIGNvb3JkaW5hdG9yIGZvciB0ZXN0aW5nLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmg6IE5ldy4KKwogMjAyMS0wMy0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlYmFzZWxpbmUgYmluZGluZ3MgdGVz
dHMgYWZ0ZXIgcjI3NDkwNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZWNhYjYz
NjJlMDBhOGMwMzg1MzYxNzRhOTMzMGYxNWUyZTdlOTViOS4uM2JjMzA5NjUwZjZjYmQ5MzM5OTEy
YjE1OWE4MDEyZDYwMjhiZmQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTYz
Miw2ICs2MzIsMTkgQEAgTWVkaWFSZWNvcmRlckVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAg
IGRlZmF1bHQ6IGZhbHNlCiAKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZDoKKyAgdHlw
ZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24g
Y29vcmRpbmF0b3IgQVBJIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhw
ZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvciBBUEkiCisgIGNvbmRpdGlvbjogRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJL
aXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIE1lZGlhU2Vz
c2lvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJNZWRpYSBT
ZXNzaW9uIEFQSSIKQEAgLTY0NSw2ICs2NTgsMTkgQEAgTWVkaWFTZXNzaW9uRW5hYmxlZDoKICAg
ICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorTWVkaWFTZXNzaW9uUGxheWxpc3RF
bmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFs
IE1lZGlhU2Vzc2lvbiBwbGF5bGlzdCBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIHBsYXlsaXN0IEFQSSIKKyAgY29uZGl0
aW9uOiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgZGVmYXVsdFZhbHVlOgorICAg
IFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTW9k
ZWxFbGVtZW50RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkhU
TUwgPG1vZGVsPiBlbGVtZW50IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1F
bmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4
IGM3YWRjNGU5ZjM2ODEwY2EzYWM4NGJjNzhjMmI3OWQ4ODRjNjY5NGUuLjMwZDNmOWQzMGJiYzdh
MzFmZjYwZjUzNjBiYmM2MzMxOWI2NGE3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNv
Y29hLmgKQEAgLTMyOCw2ICszMjgsMTQgQEAKICNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUFYX0FMTE9XRUQgPj0gMTIwMDAwCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fUExB
WUxJU1QpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VE
ID49IDEyMDAwMAorI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCAxCisjZW5k
aWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAmJiAhUExBVEZPUk0oV0FU
Q0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9O
IDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMTllOWQ0Y2YxZmY2YmE0ZWFlZGNm
YTliNzE4MWY5MTc5ZWUwZmRhLi4zYjFhY2EyMzMzNTFmMTBhYjUwMTRiNDA5MjRjOTU3MDZkNTdh
ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzMxLDEyICszMzEsMTcgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdl
LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAgICAgTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25B
Y3Rpb24uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5k
bGVyLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4
aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGlu
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKIAog
ICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRlNTg4
YTI0OTQ5NzNhNzkwZTE2NWMwYWExNGE0NWFhZDJkOGM4ZGYuLjE2OWIyMWExYjAxMWRlOTM4Mzc0
Y2ZkNWU3NjkyYzJlZjAzOTJkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDEyICsxNzMsMTcgQEAgJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKyQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkFjdGlvbkhhbmRsZXIuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhp
bi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJl
YWR5U3RhdGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0
b3IrTWVkaWFTZXNzaW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNvdXJjZS9B
dWRpb1RyYWNrK01lZGlhU291cmNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNv
dXJjZS9ET01VUkwrTWVkaWFTb3VyY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGY3YTYzOGFhOTM5MDU3ZDczNDgwOTFhYjQy
ODEzOWM5OTRkMGQzMGIuLjcxNmE4YzVhNzI3ZTU5OWNjYWI2NjkxODgwMGM3NzY4NjVlZDc3ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CkBAIC0xMjk4LDYgKzEyOTgsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYU1ldGFkYXRhSW5pdC5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YUlu
aXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YU1ldGFkYXRhUGxheWxpc3RNaXhpbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVBvc2l0aW9uU3RhdGUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
UG9zaXRpb25TdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMTMxNiw4ICsxMzE4LDE2IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFj
dGlvbkhhbmRsZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvck1peGluLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4
aW4uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YVNlc3Npb25SZWFkeVN0YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU291cmNlLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW0uY3Bw
CkBAIC0xMzUyLDYgKzEzNjIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vY2tDRE1GYWN0b3J5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb2NrQ0RNRmFjdG9yeS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01vY2tQYWdlT3ZlcmxheS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTW9ja1BhZ2VPdmVybGF5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja1BheW1lbnRBZGRyZXNzLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggM2VkYTEwYThjNjdjODFmMDdjNTVjZTNhOTBjMWQ2MTNmMDkz
ZGJkMS4uNTE4ZWRmMWZkNjQ1NDM4OGY2OGU3NGU3YTIyMmIwYTcxMTEyY2I1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMDcsMTIgKzIwNywxNyBAQCBKU19CSU5ESU5HX0lE
TFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGFQbGF5bGlzdE1peGluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVBvc2l0aW9uU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNaXhpbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Eb3VibGVSYW5nZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCBlMTBkYWQwN2QzMjU0Y2ExMDkzMWRi
MDY1NzE3ZmFmYTBkZmM5OWIzLi4zNDZiMjdhYmExNzE3MzhjYjQzOWQ0ZjE5MmNlYTkzMDUwNGFm
NDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmNwcApAQCAtOTYsNiArOTYsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFN
ZXRhZGF0YT4+IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
bwogICAgICAgICBtZXRhZGF0YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRh
ZGF0YS0+c2V0QXJ0aXN0KGluaXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1
bShpbml0LT5hbGJ1bSk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAg
ICAgIG1ldGFkYXRhLT5zZXRUcmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsK
KyNlbmRpZgogICAgICAgICBhdXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFy
dHdvcmsoY29udGV4dCwgV1RGTW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3Nz
aWJsZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBwb3NzaWJsZUV4Y2VwdGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTg4LDYgKzE5MSwxNyBA
QCB2b2lkIE1lZGlhTWV0YWRhdGE6OnNldEFydHdvcmtJbWFnZShJbWFnZSogaW1hZ2UpCiAgICAg
bV9hcnR3b3JrSW1hZ2UgPSBpbWFnZTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQordm9pZCBNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIoY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyKQoreworICAgIGlmIChtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllciA9
PSBpZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21ldGFkYXRhLnRyYWNrSWRl
bnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgbWV0YWRhdGFVcGRhdGVkKCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBNZWRpYU1ldGFkYXRhOjptZXRhZGF0YVVwZGF0ZWQoKQogewogICAgIGlmIChtX3Nl
c3Npb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmgKaW5kZXggYTdiZTc4NTkwMDA5MGVkMTdiY2MzYTk5ZWIxZjFmNzg0Y2ZkNmI1
NC4uMjk2MGI0NGE4NjNiYzgyYjRmOTIzYWNiMzVhNmNlMWIwZDEzODIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaApAQCAt
OTEsNiArOTEsMTEgQEAgcHVibGljOgogCiAgICAgY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRhdGEm
IG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YTsgfQogCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllcjsgfQorICAgIHZvaWQg
c2V0VHJhY2tJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgTWVkaWFNZXRhZGF0YSgpOwogICAgIHZvaWQgc2V0QXJ0d29ya0ltYWdlKEltYWdlKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFk
YXRhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGEuaWRsCmluZGV4IGMyYjU3N2NmNWJiMjI5YzJhNmZiMzE2NzlkM2ZlNTljNzhjZDEyNmQuLmQw
NWYyYjBiNjk0YmM0OGZmYWE3MTM1YTVhZTlmNDBjYTYyZmNkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCkBAIC0z
Myw0ICszMyw4IEBACiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhcnRpc3Q7CiAgICAgYXR0cmli
dXRlIERPTVN0cmluZyBhbGJ1bTsKICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhSW1hZ2U+IGFydHdvcms7CisKKyAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1N
ZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7
CiB9OworCitNZWRpYU1ldGFkYXRhIGluY2x1ZGVzIE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGlu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGFJbml0LmgKaW5kZXggNjY5ZGVmZmEyZDY5NDA4NWYwOGYxMGRmMWI5MTZlZjQ0ZTg4
NWUwZC4uZDY5MmQyZDk0ODI3NTNmMGFjMGE4NDMyYTQ2MGY5MDE0YTBjZmJhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRh
SW5pdC5oCkBAIC0zNSw2ICszNSw5IEBAIHN0cnVjdCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAgICAg
U3RyaW5nIHRpdGxlOwogICAgIFN0cmluZyBhcnRpc3Q7CiAgICAgU3RyaW5nIGFsYnVtOworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFN0cmluZyB0cmFja0lkZW50aWZp
ZXI7CisjZW5kaWYKICAgICBWZWN0b3I8TWVkaWFJbWFnZT4gYXJ0d29yazsKIAogICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTQzLDI4
ICs0Niw1MSBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0YUluaXQgewogCiB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRpYU1ldGFkYXRhSW5pdDo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0g
PDwgYXJ0d29yazsKKyAgICBlbmNvZGVyIDw8IHRpdGxlIDw8IGFydGlzdCA8PCBhbGJ1bQorI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIDw8IHRyYWNrSWRlbnRpZmllcgor
I2VuZGlmCisgICAgPDwgYXJ0d29yazsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5s
aW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRhdGFJbml0PiBNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgU3RyaW5nIHRpdGxlOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodGl0bGUpKQorICAgIE9wdGlvbmFsPFN0cmluZz4gdGl0bGU7CisgICAgZGVjb2Rl
ciA+PiB0aXRsZTsKKyAgICBpZiAodGl0bGUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBT
dHJpbmcgYXJ0aXN0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0aXN0KSkKKyAgICBPcHRp
b25hbDxTdHJpbmc+IGFydGlzdDsKKyAgICBkZWNvZGVyID4+IGFydGlzdDsKKyAgICBpZiAoIWFy
dGlzdCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFsYnVtKSkKKyAgICBPcHRpb25hbDxTdHJpbmc+IGFsYnVtOworICAg
IGRlY29kZXIgPj4gYWxidW07CisgICAgaWYgKCFhbGJ1bSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIFZlY3RvcjxNZWRpYUltYWdlPiBhcnR3b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoYXJ0d29yaykpCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgT3B0
aW9uYWw8U3RyaW5nPiB0cmFja0lkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiB0cmFja0lkZW50
aWZpZXI7CisgICAgaWYgKCF0cmFja0lkZW50aWZpZXIpCisgICAgICAgIHJldHVybiB7IH07Cisj
ZW5kaWYKKworICAgIE9wdGlvbmFsPFZlY3RvcjxNZWRpYUltYWdlPj4gYXJ0d29yazsKKyAgICBk
ZWNvZGVyID4+IGFydHdvcms7CisgICAgaWYgKCFhcnR3b3JrKQogICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgcmV0dXJuIE1lZGlhTWV0YWRhdGFJbml0IHsgV1RGTW92ZSh0aXRsZSksIFdURk1v
dmUoYXJ0aXN0KSwgV1RGTW92ZShhbGJ1bSksIFdURk1vdmUoYXJ0d29yaykgfTsKKyAgICByZXR1
cm4geyB7CisgICAgICAgIFdURk1vdmUoKnRpdGxlKSwKKyAgICAgICAgV1RGTW92ZSgqYXJ0aXN0
KSwKKyAgICAgICAgV1RGTW92ZSgqYWxidW0pLAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQorICAgICAgICBXVEZNb3ZlKCp0cmFja0lkZW50aWZpZXIpLAorI2VuZGlmCisgICAg
ICAgIFdURk1vdmUoKmFydHdvcmspCisgICAgfSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwK
aW5kZXggOGIwZjU1Y2YxNGE1ODM4Y2I1NDg5NTY1ZDAyNzJkYWZhZDllMTIzZC4uMGRjOGVmMDA3
YjEwOTUxYjBkNTkxOWViMDMxMjQzNGYzZjY0NDYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbApAQCAt
MzAsNSArMzAsNiBAQAogICAgIERPTVN0cmluZyB0aXRsZSA9ICIiOwogICAgIERPTVN0cmluZyBh
cnRpc3QgPSAiIjsKICAgICBET01TdHJpbmcgYWxidW0gPSAiIjsKKyAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5
bGlzdF0gRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllciA9ICIiOwogICAgIHNlcXVlbmNlPE1lZGlh
SW1hZ2U+IGFydHdvcmsgPSBbXTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2E3MjE1ZDk3OTVjYWE4NTc1N2NlOGEyZjQ1NjlmZjJhYWI3N2VjYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPUVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNULAorICAg
IEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxheWxpc3QsCitdIGludGVyZmFjZSBtaXhp
biBNZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbiB7CisgICAgYXR0cmlidXRlIERPTVN0cmluZyB0
cmFja0lkZW50aWZpZXI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKaW5kZXggMzJiMDhlMWE3MWRlOTQzMGQxMjIwZTBi
ZTZhMjFjZDhlMmI1NzBhZS4uZThhOWNhZWVhZDQ2MWNiODk2MDdjMzRjMzE4YmEyNGEzYmQ0MDE1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb24uY3BwCkBAIC0yOSw4ICsyOSwxMCBAQAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
KQogCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYU1ldGFkYXRhLmgiCisjaW5jbHVkZSAi
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKIApAQCAtNzYsNyArNzgsMTEgQEAg
UmVmPE1lZGlhU2Vzc2lvbj4gTWVkaWFTZXNzaW9uOjpjcmVhdGUoTmF2aWdhdG9yJiBuYXZpZ2F0
b3IpCiB9CiAKIE1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKE5hdmlnYXRvciYgbmF2aWdhdG9y
KQotICAgIDogbV9uYXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9yKSkKKyAgICA6IENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyKG5hdmlnYXRvci5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CisgICAgLCBtX25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgICwgbV9hc3luY0V2ZW50UXVldWUoTWFpblRo
cmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQorI2VuZGlmCiB7CiAgICAgbV9s
b2dnZXIgPSBtYWtlUmVmUHRyKERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSk7CiAgICAgbV9sb2dJ
ZGVudGlmaWVyID0gbmV4dExvZ0lkZW50aWZpZXIoKTsKQEAgLTg5LDE1ICs5NSw2NyBAQCBNZWRp
YVNlc3Npb246On5NZWRpYVNlc3Npb24oKSA9IGRlZmF1bHQ7CiB2b2lkIE1lZGlhU2Vzc2lvbjo6
c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+JiYgbWV0YWRhdGEpCiB7CiAgICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSKTsKLQogICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBt
X21ldGFkYXRhLT5yZXNldE1lZGlhU2Vzc2lvbigpOwogICAgIG1fbWV0YWRhdGEgPSBXVEZNb3Zl
KG1ldGFkYXRhKTsKICAgICBpZiAobV9tZXRhZGF0YSkKICAgICAgICAgbV9tZXRhZGF0YS0+c2V0
TWVkaWFTZXNzaW9uKCp0aGlzKTsKLSAgICBtZXRhZGF0YVVwZGF0ZWQoKTsKKyAgICBub3RpZnlN
ZXRhZGF0YU9ic2VydmVycygpOworfQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCit2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0UmVhZHlTdGF0ZShNZWRpYVNlc3Npb25SZWFk
eVN0YXRlIHN0YXRlKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gc3RhdGUpCisgICAgICAg
IHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgc3RhdGUpOworCisgICAg
bV9yZWFkeVN0YXRlID0gc3RhdGU7CisgICAgbm90aWZ5UmVhZHlTdGF0ZU9ic2VydmVycygpOwog
fQogCit2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0Q29vcmRpbmF0b3IoTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IqIGNvb3JkaW5hdG9yKQoreworICAgIGlmIChtX2Nvb3JkaW5hdG9yID09IGNvb3JkaW5h
dG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwor
CisgICAgaWYgKG1fY29vcmRpbmF0b3IpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldE1lZGlh
U2Vzc2lvbihudWxscHRyKTsKKworICAgIG1fY29vcmRpbmF0b3IgPSBjb29yZGluYXRvcjsKKwor
ICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAgICAgICBtX2Nvb3JkaW5hdG9yLT5zZXRNZWRpYVNl
c3Npb24odGhpcyk7CisKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmNvb3JkaW5hdG9yY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5C
dWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorI2VuZGlmCisKKyNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU2Vz
c2lvbjo6c2V0UGxheWxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVmVjdG9y
PFJlZlB0cjxNZWRpYU1ldGFkYXRhPj4mJiBwbGF5bGlzdCkKK3sKKyAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIpOworCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4gcmVzb2x2ZWRQ
bGF5bGlzdDsKKyAgICByZXNvbHZlZFBsYXlsaXN0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocGxh
eWxpc3Quc2l6ZSgpKTsKKworICAgIGZvciAoYXV0byYgZW50cnkgOiBwbGF5bGlzdCkgeworICAg
ICAgICBhdXRvIHJlc29sdmVkRW50cnkgPSBNZWRpYU1ldGFkYXRhOjpjcmVhdGUoY29udGV4dCwg
eyBlbnRyeS0+bWV0YWRhdGEoKSB9KTsKKyAgICAgICAgaWYgKHJlc29sdmVkRW50cnkuaGFzRXhj
ZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZWRFbnRyeS5yZWxlYXNlRXhjZXB0
aW9uKCk7CisgICAgICAgIAorICAgICAgICByZXNvbHZlZFBsYXlsaXN0LnVuY2hlY2tlZEFwcGVu
ZChyZXNvbHZlZEVudHJ5LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKyAgICB9CisKKyAgICBtX3Bs
YXlsaXN0ID0gV1RGTW92ZShyZXNvbHZlZFBsYXlsaXN0KTsKKworICAgIHJldHVybiB7IH07Cit9
CisjZW5kaWYKKwogdm9pZCBNZWRpYVNlc3Npb246OnNldFBsYXliYWNrU3RhdGUoTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKIHsKICAgICBpZiAobV9wbGF5YmFja1N0YXRlID09IHN0
YXRlKQpAQCAtMTExLDYgKzE2OSw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRQbGF5YmFja1N0
YXRlKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCiAgICAgICAgIG1fdGltZUF0TGFz
dFBvc2l0aW9uVXBkYXRlID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgfQogICAgIG1fcGxh
eWJhY2tTdGF0ZSA9IHN0YXRlOworICAgIG5vdGlmeVBsYXliYWNrU3RhdGVPYnNlcnZlcnMoKTsK
IH0KIAogdm9pZCBNZWRpYVNlc3Npb246OnNldEFjdGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0
aW9uIGFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+JiYgaGFuZGxlcikK
QEAgLTEyOSw3ICsxODgsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0QWN0aW9uSGFuZGxlcihN
ZWRpYVNlc3Npb25BY3Rpb24gYWN0aW9uLCBSZWZQdHI8TWVkaWFTZXNzaQogICAgICAgICBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1vdmVTdXBwb3J0ZWRD
b21tYW5kKHBsYXRmb3JtQ29tbWFuZEZvck1lZGlhU2Vzc2lvbkFjdGlvbihhY3Rpb24pKTsKICAg
ICB9CiAKLSAgICBhY3Rpb25IYW5kbGVyc1VwZGF0ZWQoKTsKKyAgICBub3RpZnlBY3Rpb25IYW5k
bGVyT2JzZXJ2ZXJzKCk7CiB9CiAKIGJvb2wgTWVkaWFTZXNzaW9uOjpoYXNBY3Rpb25IYW5kbGVy
KE1lZGlhU2Vzc2lvbkFjdGlvbiBhY3Rpb24pIGNvbnN0CkBAIC0xNDIsMTIgKzIwMSwxOSBAQCBS
ZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4gTWVkaWFTZXNzaW9uOjpoYW5kbGVyRm9y
QWN0aW9uKE1lZGlhU2Vzc2lvbkFjdAogICAgIHJldHVybiBtX2FjdGlvbkhhbmRsZXJzLmdldChh
Y3Rpb24pOwogfQogCit2b2lkIE1lZGlhU2Vzc2lvbjo6Y2FsbEFjdGlvbkhhbmRsZXIoY29uc3Qg
TWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYgYWN0aW9uRGV0YWlscykKK3sKKyAgICBpZiAoYXV0
byBoYW5kbGVyID0gbV9hY3Rpb25IYW5kbGVycy5nZXQoYWN0aW9uRGV0YWlscy5hY3Rpb24pKQor
ICAgICAgICBoYW5kbGVyLT5oYW5kbGVFdmVudChhY3Rpb25EZXRhaWxzKTsKK30KKwogRXhjZXB0
aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uOjpzZXRQb3NpdGlvblN0YXRlKE9wdGlvbmFsPE1lZGlh
UG9zaXRpb25TdGF0ZT4mJiBzdGF0ZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIp
OwogCiAgICAgaWYgKCFzdGF0ZSkgewogICAgICAgICBtX3Bvc2l0aW9uU3RhdGUgPSBXVEY6Om51
bGxvcHQ7CisgICAgICAgIG5vdGlmeVBvc2l0aW9uU3RhdGVPYnNlcnZlcnMoKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTE2MSw2ICsyMjcsOCBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0
YXRlPiYmCiAgICAgbV9wb3NpdGlvblN0YXRlID0gV1RGTW92ZShzdGF0ZSk7CiAgICAgbV9sYXN0
UmVwb3J0ZWRQb3NpdGlvbiA9IG1fcG9zaXRpb25TdGF0ZS0+cG9zaXRpb247CiAgICAgbV90aW1l
QXRMYXN0UG9zaXRpb25VcGRhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBub3RpZnlQ
b3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCk7CisKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xODUs
MTEgKzI1Myw2NCBAQCBEb2N1bWVudCogTWVkaWFTZXNzaW9uOjpkb2N1bWVudCgpIGNvbnN0CiAK
IHZvaWQgTWVkaWFTZXNzaW9uOjptZXRhZGF0YVVwZGF0ZWQoKQogeworICAgIG5vdGlmeU1ldGFk
YXRhT2JzZXJ2ZXJzKCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjphZGRPYnNlcnZlcihPYnNl
cnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX29i
c2VydmVycy5hZGQob2JzZXJ2ZXIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6cmVtb3ZlT2Jz
ZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKK30KKwordm9pZCBNZWRpYVNlc3Np
b246OmZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JiBhcHBs
eSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGF1dG8gcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpOworICAgIG1fb2JzZXJ2ZXJzLmZvckVhY2goYXBwbHkpOworfQor
Cit2b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMoKQoreworICAgIGZv
ckVhY2hPYnNlcnZlcihbdGhpc10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIu
bWV0YWRhdGFDaGFuZ2VkKG1fbWV0YWRhdGEpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vz
c2lvbjo6bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9ic2Vy
dmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5wb3NpdGlvblN0
YXRlQ2hhbmdlZChtX3Bvc2l0aW9uU3RhdGUpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vz
c2lvbjo6bm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9ic2Vy
dmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5wbGF5YmFja1N0
YXRlQ2hhbmdlZChtX3BsYXliYWNrU3RhdGUpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vz
c2lvbjo6bm90aWZ5QWN0aW9uSGFuZGxlck9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9ic2Vy
dmVyKFtdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLmFjdGlvbkhhbmRsZXJz
Q2hhbmdlZCgpOworICAgIH0pOwogfQogCi12b2lkIE1lZGlhU2Vzc2lvbjo6YWN0aW9uSGFuZGxl
cnNVcGRhdGVkKCkKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKK3ZvaWQg
TWVkaWFTZXNzaW9uOjpub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCkKIHsKKyAgICBmb3JFYWNo
T2JzZXJ2ZXIoW3RoaXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnJlYWR5
U3RhdGVDaGFuZ2VkKG1fcmVhZHlTdGF0ZSk7CisgICAgfSk7CiB9CisjZW5kaWYKIAogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5o
CmluZGV4IDc2NzJlMzJmYzcwNmUzNzgxMTZkNWVmNzM1NDJiMWRjZjNmYWI3NmYuLjhkMDUwN2Nm
MDk5MGZkNTVjNTFjN2QxYTk3ZDhiNWQxOWNkOGMzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBAIC0yNyw2ICsyNyw5IEBA
CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIAorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJHZW5l
cmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkpTTWVkaWFQb3NpdGlvblN0YXRlLmgiCiAjaW5j
bHVkZSAiSlNNZWRpYVNlc3Npb25BY3Rpb24uaCIKICNpbmNsdWRlICJKU01lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGUuaCIKQEAgLTM0LDYgKzM3LDcgQEAKICNpbmNsdWRlICJNZWRpYVNlc3Npb25B
Y3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90
b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTQ0LDM4ICs0OCw5MCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFNZXRh
ZGF0YTsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgTmF2aWdhdG9yOwog
Ci1jbGFzcyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb24+LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPiB7CitjbGFzcyBNZWRpYVNlc3Npb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb24+ICwgcHVibGljIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFTZXNz
aW9uPiBjcmVhdGUoTmF2aWdhdG9yJik7CiAgICAgfk1lZGlhU2Vzc2lvbigpOwogCiAgICAgTWVk
aWFNZXRhZGF0YSogbWV0YWRhdGEoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmdldCgpOyB9
OwogICAgIHZvaWQgc2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+JiYpOworICAgIHZv
aWQgbWV0YWRhdGFVcGRhdGVkKCk7CiAKICAgICBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBs
YXliYWNrU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3BsYXliYWNrU3RhdGU7IH07CiAgICAgdm9p
ZCBzZXRQbGF5YmFja1N0YXRlKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOwogCiAgICAgdm9p
ZCBzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vzc2lvbkFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXI+JiYpOworCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UG9zaXRpb25T
dGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYpOworICAgIE9wdGlvbmFsPE1lZGlh
UG9zaXRpb25TdGF0ZT4gcG9zaXRpb25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb25T
dGF0ZTsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8ZG91YmxlPiBjdXJyZW50UG9z
aXRpb24oKSBjb25zdDsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogICAgIAot
ICAgIHZvaWQgbWV0YWRhdGFVcGRhdGVkKCk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCisgICAgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9OworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVNl
c3Npb25SZWFkeVN0YXRlKTsKKworICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKiBjb29yZGlu
YXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fY29vcmRpbmF0b3IuZ2V0KCk7IH0KKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldENvb3JkaW5hdG9yKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKik7Cisj
ZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIGNvbnN0IFZl
Y3RvcjxSZWY8TWVkaWFNZXRhZGF0YT4+JiBwbGF5bGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxh
eWxpc3Q7IH0KKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQbGF5bGlzdChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgVmVjdG9yPFJlZlB0cjxNZWRpYU1ldGFkYXRhPj4mJik7CisjZW5kaWYKIAot
ICAgIHZvaWQgYWN0aW9uSGFuZGxlcnNVcGRhdGVkKCk7CiAgICAgYm9vbCBoYXNBY3Rpb25IYW5k
bGVyKE1lZGlhU2Vzc2lvbkFjdGlvbikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRy
PE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+IGhhbmRsZXJGb3JBY3Rpb24oTWVkaWFTZXNzaW9u
QWN0aW9uKSBjb25zdDsKICAgICBib29sIGhhc0FjdGl2ZUFjdGlvbkhhbmRsZXJzKCkgY29uc3Qg
eyByZXR1cm4gIW1fYWN0aW9uSGFuZGxlcnMuaXNFbXB0eSgpOyB9CiAKKyAgICB2b2lkIGNhbGxB
Y3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMmKTsKKworICAgIGNv
bnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4gKm1fbG9nZ2VyLmdldCgpOyB9CisK
KyAgICAvLyBFdmVudFRhcmdldAorICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2lu
ZyBSZWZDb3VudGVkOjpkZXJlZjsKKworICAgIGNsYXNzIE9ic2VydmVyIDogcHVibGljIENhbk1h
a2VXZWFrUHRyPE9ic2VydmVyPiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5PYnNl
cnZlcigpID0gZGVmYXVsdDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFDaGFuZ2Vk
KFJlZlB0cjxNZWRpYU1ldGFkYXRhPikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlv
blN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+KSB7IH0KKyAgICAgICAg
dmlydHVhbCB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGUpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgYWN0aW9uSGFuZGxlcnNDaGFuZ2VkKCkgeyB9
CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICAgICAgdmlydHVh
bCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpIHsgfQorI2Vu
ZGlmCisgICAgfTsKKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CisgICAgdm9pZCBy
ZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlh
U2Vzc2lvbihOYXZpZ2F0b3ImKTsKIAotICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3Qg
eyByZXR1cm4gKm1fbG9nZ2VyLmdldCgpOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQogCisgICAgdm9pZCBmb3JFYWNo
T2JzZXJ2ZXIoY29uc3QgRnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYpOworICAgIHZvaWQgbm90
aWZ5TWV0YWRhdGFPYnNlcnZlcnMoKTsKKyAgICB2b2lkIG5vdGlmeVBvc2l0aW9uU3RhdGVPYnNl
cnZlcnMoKTsKKyAgICB2b2lkIG5vdGlmeVBsYXliYWNrU3RhdGVPYnNlcnZlcnMoKTsKKyAgICB2
b2lkIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNlcnZlcnMoKTsKKyAgICB2b2lkIG5vdGlmeVJlYWR5
U3RhdGVPYnNlcnZlcnMoKTsKKworICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTWVkaWFTZXNzaW9uRXZlbnRUYXJnZXRJ
bnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKworICAgIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwg
eyBkZXJlZigpOyB9CisKICAgICBXZWFrUHRyPE5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAgICAg
UmVmUHRyPE1lZGlhTWV0YWRhdGE+IG1fbWV0YWRhdGE7CiAgICAgTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSBtX3BsYXliYWNrU3RhdGUgeyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25l
IH07CkBAIC04NSw2ICsxNDEsMTggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPE1lZGlhU2Vzc2lv
bkFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+LCBXVEY6OkludEhhc2g8
TWVkaWFTZXNzaW9uQWN0aW9uPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVNlc3Np
b25BY3Rpb24+PiBtX2FjdGlvbkhhbmRsZXJzOwogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1f
bG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKworICAgIFdlYWtIYXNo
U2V0PE9ic2VydmVyPiBtX29ic2VydmVyczsKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NP
T1JESU5BVE9SKQorICAgIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgTWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgfTsKKyAgICBSZWZQdHI8TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I+IG1fY29vcmRpbmF0b3I7CisgICAgVW5pcXVlUmVmPE1haW5UaHJlYWRH
ZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CisjZW5kaWYKKworI2lmIEVOQUJM
RShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFZlY3RvcjxSZWY8TWVkaWFNZXRhZGF0YT4+
IG1fcGxheWxpc3Q7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsCmluZGV4IGRlZDRhNzczOGEyM2Q5
MzFlYjNiMGE2ODJiZTU3M2YwODMyNGQ0MzcuLjYxYTg3NDQyNzRiMjIzOGE2Y2VlZTkwMjhlZmM5
MjI5YzNiYWVkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw5ICsyNiwxMCBAQAogWwogICAgIENvbmRpdGlvbmFs
PU1FRElBX1NFU1NJT04sCiAgICAgRXhwb3NlZD1XaW5kb3csCi0gICAgSW1wbGVtZW50YXRpb25M
YWNrc1ZUYWJsZSwKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNl
IE1lZGlhU2Vzc2lvbiB7CisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGludGVyZmFjZSBN
ZWRpYVNlc3Npb24gOiBFdmVudFRhcmdldAorewogICAgIGF0dHJpYnV0ZSBNZWRpYU1ldGFkYXRh
PyBtZXRhZGF0YTsKIAogICAgIGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBs
YXliYWNrU3RhdGU7CkBAIC0zNywzICszOCw2IEBACiAKICAgICB1bmRlZmluZWQgc2V0UG9zaXRp
b25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0aW9uU3RhdGU/IHN0YXRlID0gbnVsbCk7CiB9Owor
CitNZWRpYVNlc3Npb24gaW5jbHVkZXMgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbjsKK01l
ZGlhU2Vzc2lvbiBpbmNsdWRlcyBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGluOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rp
b24uaAppbmRleCA1Y2I2NDRmZjM2MmRlZDczNzAyYjEzM2YzZjIwYWQ4NjcwYjdmZjYxLi45YmM0
ZjAwMTNiNDZiNTJhODFjMDAwNzk3MjJhMzYwMTJmN2NjMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
OSw2ICszOSw3IEBAIGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uQWN0aW9uIHsKICAgICBTa2lwYWQs
CiAgICAgU3RvcCwKICAgICBTZWVrdG8sCisgICAgU2V0dHJhY2ssCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkBAIC01Niw3ICs1Nyw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uPiB7CiAgICAgICAgIFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkFjdGlvbjo6TmV4dHRyYWNrLAogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25B
Y3Rpb246OlNraXBhZCwKICAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTdG9w
LAotICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bworICAgICAgICBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFTZXNzaW9uQWN0aW9uOjpTZXR0cmFjawogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bAppbmRleCA0NjM1ZTY5NzM0ZWRhMTlkYzJhN2NhZWQ5YTVmYzcxMDc0NTk4Y2Q0Li44Zjc2NWY2
NGUzZGFjYmU3MTcxM2E0Zjg2YmI5YmEyYWI4MmY0M2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzUsNCArMzUsNyBAQAogICAgICJza2lwYWQiLAogICAgICJzdG9wIiwKICAgICAic2Vla3RvIgor
I2lmIGRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1QpICYmIEVOQUJMRV9NRURJ
QV9TRVNTSU9OX1BMQVlMSVNUCisgICAgLCAic2V0dHJhY2siCisjZW5kaWYKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rp
b25EZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmgKaW5kZXggNjQxZWE3MjRhY2E2NzA1ZDczNTA3ZTI4NzFjNTE3
NDE3OTY5NmQ3Yy4uZjU5MDlkNDZmOGVhYzY2ZDBmM2M5ZGQ3ZTc1MzJlMzYwNDY4ZDZhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
QWN0aW9uRGV0YWlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw5IEBAIHN0cnVjdCBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzIHsKICAgICBPcHRpb25hbDxkb3VibGU+IHNlZWtPZmZzZXQ7CiAg
ICAgT3B0aW9uYWw8ZG91YmxlPiBzZWVrVGltZTsKICAgICBPcHRpb25hbDxib29sPiBmYXN0U2Vl
azsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBTdHJpbmcgdHJhY2tJ
ZGVudGlmaWVyOworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMu
aWRsCmluZGV4IDFhMWVmN2FlNzY1YWUwMmYyMWUzMjMyYTEzNjRhOTZhMWFkZjE1NDcuLjJkOGM2
MDczN2M2ZDY3ZmQxMjVlMTNlOTE2OThlY2ZhODAyNmMwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHMuaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMyLDQgKzMyLDYgQEAKICAgICBkb3VibGU/IHNlZWtPZmZzZXQ7CiAg
ICAgZG91YmxlPyBzZWVrVGltZTsKICAgICBib29sZWFuPyBmYXN0U2VlazsKKworICAgIFtDb25k
aXRpb25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vz
c2lvblBsYXlsaXN0XSBET01TdHJpbmc/IHRyYWNrSWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRmNGU5MjE1NWYxYWMwMTVlNmM1MTc0ZDRi
ZWY2NDgxZTU5MzU2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDI0MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbi5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3Qgdm9pZCogbmV4dENvb3JkaW5hdG9yTG9nSWRl
bnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIgPSBjcnlwdG9n
cmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNv
bnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitSZWY8TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29yZGluYXRvcikKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25Db29yZGluYXRvcihXVEZNb3ZlKHBsYXRmb3JtQ29v
cmRpbmF0b3IpKSk7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25D
b29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJiBwbGF0Zm9y
bUNvb3JkaW5hdG9yKQorICAgIDogbV9wbGF0Zm9ybUNvb3JkaW5hdG9yKFdURk1vdmUocGxhdGZv
cm1Db29yZGluYXRvcikpCisgICAgLCBtX2xvZ2dlcihtYWtlUmVmKERvY3VtZW50OjpzaGFyZWRM
b2dnZXIoKSkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4dENvb3JkaW5hdG9yTG9nSWRlbnRp
ZmllcigpKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBtX3BsYXRm
b3JtQ29vcmRpbmF0b3ItPnNldExvZ2dlcihtX2xvZ2dlci5jb3B5UmVmKCksIG1fbG9nSWRlbnRp
Zmllcik7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtU
byhkb3VibGUgdGltZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAg
ICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRp
ZmllciwgdGltZSk7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0co
aWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+c2Vla1RvKHRpbWUsIFt0aW1lLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAg
ICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5l
bCgpLCBpZGVudGlmaWVyLCAiY29vcmRpbmF0b3Iuc2Vla1RvIGZhaWxlZCEiKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFp
bHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpT
ZWVrdG8sCisgICAgICAgICAgICAuc2Vla1RpbWUgPSB0aW1lLAorICAgICAgICB9OworICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOwor
CisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlz
bid0IGEgcmVnaXN0ZXJlZCAnc2Vla1RvJyBhY3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlk
ZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisK
KyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1l
ZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1f
cGxhdGZvcm1Db29yZGluYXRvci0+cGxheShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRo
aXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXByb3RlY3RlZFRo
aXMtPm1fc2Vzc2lvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZN
b3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmxvZ2dlcigpLmVy
cm9yKHByb3RlY3RlZFRoaXMtPmxvZ0NoYW5uZWwoKSwgaWRlbnRpZmllciwgImNvb3JkaW5hdG9y
LnBsYXkgZmFpbGVkISIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rp
b24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBsYXksCisgICAgICAgIH07CisgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICAg
ICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSBy
ZWdpc3RlcmVkICdwbGF5JyBhY3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZl
KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0byBpZGVudGlmaWVy
ID0gTE9HSURFTlRJRklFUjsKKyAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIpOworCisgICAgaWYg
KCFtX3Nlc3Npb24pIHsKKyAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICJNZWRpYVNlc3Np
b24gaXMgTlVMTCEiKTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3Jt
Q29vcmRpbmF0b3ItPnBhdXNlKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlk
ZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9u
PiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9z
ZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4
Y2VwdGlvbikpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJv
dGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBpZGVudGlmaWVyLCAiY29vcmRpbmF0b3IucGF1c2Ug
ZmFpbGVkISIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVk
aWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBN
ZWRpYVNlc3Npb25BY3Rpb246OlBhdXNlLAorICAgICAgICB9OworICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOworCisgICAgICAgIC8v
IEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0
ZXJlZCAncGF1c2UnIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsK
KyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29u
c3QgU3RyaW5nJiB0cmFjaywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sK
KyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRl
bnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRl
bnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+c2V0VHJhY2sodHJhY2ssIFt0cmFjaywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFi
bGUgeworICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgeworICAgICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Cisg
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPmxvZ2dlcigpLmVycm9yKHByb3RlY3RlZFRoaXMtPmxvZ0NoYW5u
ZWwoKSwgaWRlbnRpZmllciwgImNvb3JkaW5hdG9yLnNldFRyYWNrIGZhaWxlZCEiKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRl
dGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9u
OjpTZXR0cmFjaywKKyAgICAgICAgICAgIC50cmFja0lkZW50aWZpZXIgPSB0cmFjaywKKyAgICAg
ICAgfTsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxl
cihkZXRhaWxzKTsKKworICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVj
dCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3NldFRyYWNrJyBhY3Rpb24gaGFuZGxlcj8K
KyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24qIHNlc3Npb24pCit7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBtX3Nlc3Npb24gPSBtYWtlV2Vh
a1B0cihzZXNzaW9uKTsKKworICAgIGlmIChtX3Nlc3Npb24pCisgICAgICAgIG1fc2Vzc2lvbi0+
YWRkT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpw
b3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+IHN0YXRlKQor
eworICAgIGlmICghc3RhdGUpIHsKKyAgICAgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3Np
dGlvblN0YXRlQ2hhbmdlZCh7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9w
bGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVBvc2l0aW9uU3RhdGUgeyBzdGF0ZS0+ZHVyYXRpb24sIHN0
YXRlLT5wbGF5YmFja1JhdGUsIHN0YXRlLT5wb3NpdGlvbiB9KTsKK30KKwordm9pZCBNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGU6Ok5vbmUpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSBpcyBub3QgUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9u
ZSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4o
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlOjpQYXVzZWQpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkIGlzIG5vdCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
OjpQYXVzZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpID09IHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGU6OlBsYXlpbmcpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWlu
ZyBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZTo6UGxheWluZyBhcyBleHBlY3RlZCIpOworCisgICAgbV9wbGF0Zm9ybUNvb3Jk
aW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChzdGF0aWNfY2FzdDxQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlPihzdGF0ZSkpOworfQor
Cit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNl
c3Npb25SZWFkeVN0YXRlIHN0YXRlKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcpID09IHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lv
blJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVO
b3RoaW5nIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3Nl
cnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFk
YXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEpLCAiTWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEgYXMgZXhwZWN0ZWQi
KTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1
cnJlbnREYXRhKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSBpcyBu
b3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZUN1cnJlbnREYXRhIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSkg
PT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEpLCAiTWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhIGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVu
b3VnaERhdGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEgaXMgbm90
IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVFbm91Z2hEYXRhIGFzIGV4cGVjdGVkIik7CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0
b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRpY19jYXN0PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU+KHN0YXRlKSk7Cit9CisKK1dURkxvZ0No
YW5uZWwmIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkKK3sKKyAgICByZXR1
cm4gTG9nTWVkaWE7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NP
T1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ3Y2VjODgw
YjM1M2Y0NmJjYmQ4NzBmZjVkYmMxOTJjOTk5N2M5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgK
QEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+Cisj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNl
RGVmZXJyZWQ7CisKK2NsYXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CitjbGFz
cyBNZWRpYVNlc3Npb247CisKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGlj
IFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+LCBwdWJsaWMgTWVkaWFTZXNzaW9u
OjpPYnNlcnZlciB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRp
YVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRlKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Io
KTsKKworICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYp
OworICAgIHZvaWQgcGxheShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBw
YXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBzZXRUcmFjayhjb25z
dCBTdHJpbmcmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisKKyAgICB2b2lkIHNldE1l
ZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24qKTsKKworICAgIC8vIE1lZGlhU2Vzc2lvbjo6T2JzZXJ2
ZXIKKyAgICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25T
dGF0ZT4pIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZSkgZmluYWw7CisgICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNl
c3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBNZWRpYVNl
c3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7
CisKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nZ2VyOyB9
CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRl
bnRpZmllcjsgfQorICAgIHN0YXRpYyBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCk7CisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIHsgcmV0dXJuICJNZWRpYVNlc3Npb25D
b29yZGluYXRvciI7IH0KKworICAgIFdlYWtQdHI8TWVkaWFTZXNzaW9uPiBtX3Nlc3Npb247Cisg
ICAgUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fcGxhdGZvcm1Db29yZGlu
YXRvcjsKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBt
X2xvZ0lkZW50aWZpZXI7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+PiBtX3NlZWtUb1Byb21pc2U7CisgICAgc3RkOjp1bmlxdWVfcHRyPERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPj4gbV9wbGF5UHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+PiBtX3BhdXNlUHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3NldFRyYWNrUHJvbWlzZTsKK307CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMDVhYjg5MGVhMTgyNmQwZmU3MTMwYjVkMzJi
NDJkN2I0NjIzZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKQEAgLTAsMCArMSwzNiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
LAorICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IsCisgICAgRXhw
b3NlZD1XaW5kb3csCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCitdIGludGVyZmFj
ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvciB7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNlZWtU
byh1bnJlc3RyaWN0ZWQgZG91YmxlIHRpbWUpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBwbGF5
KCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBhdXNlKCk7CisgICAgUHJvbWlzZTx1bmRlZmlu
ZWQ+IHNldFRyYWNrKERPTVN0cmluZyB0cmFja0lkZW50aWZpZXIpOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yTWl4aW4uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE0OGVjOGY4OTYyNjVmYjY1
MWJmY2IxMWFhMDE4YjI1YWJkYzc1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCkBA
IC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9RU5BQkxFX01F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IsCisgICAgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Np
b25Db29yZGluYXRvciwKK10gaW50ZXJmYWNlIG1peGluIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
TWl4aW4geworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvcj8g
Y29vcmRpbmF0b3I7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmNvb3JkaW5hdG9yY2hh
bmdlOworICAgIGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHJlYWR5U3RhdGU7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oCmluZGV4IGQ0YWRiZDU0MTc5NGU1YTEwOTVi
ZTU0YTIzYmIzZWI5ZWJlNzQ3NTYuLjcwNjNjNzhlM2Q3OGJmYWQzODhkZjMwOTQ1NGE5Y2Y3YTM1
NGQyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgKQEAgLTI5LDcgKzI5LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGUgeworZW51bSBjbGFzcyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIDogdWludDhfdCB7
CiAgICAgTm9uZSwKICAgICBQYXVzZWQsCiAgICAgUGxheWluZywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4u
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxh
eWxpc3RNaXhpbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmVjNGI5NTdhNWQ1MWU2Y2M3NDEzZjc4Y2Q4ZWI5
NGEyMDlmMWYyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsCkBAIC0wLDAgKzEsMzEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9RU5BQkxFX01FRElBX1NFU1NJT05fUExB
WUxJU1QsCisgICAgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdCwKK10gaW50
ZXJmYWNlIG1peGluIE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4geworICAgIFtTZXR0ZXJDYWxs
V2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8TWVkaWFN
ZXRhZGF0YT4gcGxheWxpc3Q7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY0NTIzZGQ1NGE3MWU2NjU0YTE3YmIwYzc3NGY3ODgxNjMzN2Y0NjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFk
eVN0YXRlLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZW51bSBjbGFzcyBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIDogdWludDhfdCB7CisgICAg
SGF2ZU5vdGhpbmcsCisgICAgSGF2ZU1ldGFkYXRhLAorICAgIEhhdmVDdXJyZW50RGF0YSwKKyAg
ICBIYXZlRnV0dXJlRGF0YSwKKyAgICBIYXZlRW5vdWdoRGF0YSwKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTczZjJhYTU0Yzg2OGYz
YjQ2NWY5YjU1ZTYxOTA1ZDVlYzRiOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwKQEAgLTAs
MCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SLAorXSBlbnVtIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgeworICAgICJoYXZl
Tm90aGluZyIsCisgICAgImhhdmVNZXRhZGF0YSIsCisgICAgImhhdmVDdXJyZW50RGF0YSIsCisg
ICAgImhhdmVGdXR1cmVEYXRhIiwKKyAgICAiaGF2ZUVub3VnaERhdGEiCit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRp
YVNlc3Npb24uaAppbmRleCAwNDIxOTYxN2MyMzg2OTMwMTA4YTY4NjBiMjEwMTI2OWNlNTM2ODll
Li43ZDJiZjMwNjhiZjU2N2MxYzZmOGEzYzJlODk1NGZhYWI0ZDIzM2QzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRp
YVNlc3Npb24uaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgTmF2aWdh
dG9yTWVkaWFTZXNzaW9uKE5hdmlnYXRvciYpOwogICAgIH5OYXZpZ2F0b3JNZWRpYVNlc3Npb24o
KTsKIAotICAgIHN0YXRpYyBNZWRpYVNlc3Npb24mIG1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oTmF2
aWdhdG9yJik7CiAgICAgTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oKTsKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggNGI0MTVlOWZjYmQ0YjhkODY3ZGY1ZGE3ZTdjNjEzM2Y5YjE5NDBl
Yy4uYTc1YTJmMzM1ZGRhNTU3MzI4NDNkYWIwMGE2MzE4OTg0Yjg0NGE2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKQEAgLTEzMSw2ICsxMzEsNyBAQCBNb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL01lZGlhQ2Fw
YWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYWNhcGFiaWxpdGllcy9OYXZpZ2F0b3JNZWRpYUNh
cGFiaWxpdGllcy5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuY3BwCiBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCitNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmln
YXRvck1lZGlhU2Vzc2lvbi5jcHAKIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xz
SG9zdC5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9CbG9iRXZlbnQuY3BwCkBAIC0xOTk4LDYg
KzE5OTksNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
UGF0aFRyYXZlcnNhbFN0YXRlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1UaW1lUmFuZ2VzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwCkBAIC0zMjI2LDYg
KzMyMjgsNyBAQCBKU01lZGlhS2V5cy5jcHAKIEpTTWVkaWFLZXlzUmVxdWlyZW1lbnQuY3BwCiBK
U01lZGlhTGlzdC5jcHAKIEpTTWVkaWFNZXRhZGF0YS5jcHAKK0pTTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwCiBKU01lZGlhTWV0YWRhdGFJbml0LmNwcAogSlNNZWRpYVBvc2l0aW9uU3RhdGUu
Y3BwCiBKU01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMzIzNiw2ICszMjM5LDcgQEAgSlNNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmNwcAogSlNNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmNwcAog
SlNNZWRpYVNlc3Npb25BY3Rpb24uY3BwCiBKU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuY3Bw
CitKU01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuY3BwCiBKU01lZGlhU2Vzc2lvbi5jcHAKIEpTTWVk
aWFTb3VyY2UuY3BwCiBKU01lZGlhU3RyZWFtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVjYWU1MDAzNGVhYTJjNjZjYWI2
Y2YyNzJiYjcwMWZkOThiODQ0MjUuLjY1ODQ5ODE1OGFmYmU4Mjc0ZmUxZTQyMjMwMzQ3OGM0MDgy
NWJjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTkwLDYgKzkwLDcgQEAKIAkJMDcwNzU2RDQxNDIzOUE0RjAwNDE0MTYxIC8q
IEpTSFRNTFRyYWNrRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcwNzU2RDIxNDIzOUE0RTAwNDE0MTYxIC8qIEpTSFRNTFRyYWNrRWxlbWVu
dC5oICovOyB9OwogCQkwNzA3NTZERTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkQ4
MTQyMzlCNEIwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZS5oICovOyB9OwogCQkwNzA3NTZFMDE0
MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3NTZEQTE0MjM5QjRFMDA0MTQxNjEgLyog
SlNUZXh0VHJhY2tDdWVMaXN0LmggKi87IH07CisJCTA3MDhGMkI2MjVEREU0NUQwMDRGOTA4NiAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyogUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovOyB9OwogCQkwNzA5RDc4RjFBRTU1NTU0
MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOUQ3OEQxQUU1NTU1NDAwNEU0MkY4IC8qIFdl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzA5RDc5MjFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNz
aW9uTWFuYWdlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYy5jcHAgKi87IH07CiAJCTA3MDlENzkzMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNl
c3Npb25NYW5hZ2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzA5RDc5MTFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0xMjMsNiArMTI0LDcgQEAKIAkJMDczQTE1NTQyMTc3QTQyNjAwRUEwOEYyIC8qIFJlbW90ZVZp
ZGVvU2FtcGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2NzFFNDM4
NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyog
QXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxl
RGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NDBCMTQ0
MjVERTMxRjgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0MEIxNDMyNURFMzFB
OTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi87IH07CiAJCTA3
NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU4MkI5MThBNjlGMEUwMDdF
RjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUwMzNBODI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9Q
bGF5YmFja1F1YWxpdHlNZXRyaWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzUwMzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1
YWxpdHlNZXRyaWNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4
OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovOyB9OwpAQCAtNTY5Miw2ICs1Njk0
LDcgQEAKIAkJMDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDc1NkQ5MTQyMzlCNEMwMDQxNDE2MSAvKiBKU1RleHRU
cmFja0N1ZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNU
ZXh0VHJhY2tDdWVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2
REExNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFja0N1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzA5RDc4QzFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OEQxQUU1NTU1
NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9u
TWFuYWdlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU3ODMsNiArNTc4NiwxNCBAQAogCQkwNzJBRTFFMzE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFF1aWNrVGlt
ZVBsdWdpblJlcGxhY2VtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcy
QUUxRTQxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkNBODYwMTZDQjRE
QzMwMDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDMyNURDNkJEMzAwQTEzNTBFIC8q
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA1MjVEQzZC
RDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTA3MkRCQzA2MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDcyNURDNkVEQTAwQTEzNTBFIC8qIEpTTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzZCNzMw
MjYwOTRBMzcwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMDczNkI3MzIyNjA5NTU1NDAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvblBsYXlsaXN0
TWl4aW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNzM2QjczMzI2MEE3QjY0MDBFMDY5OTQgLyogTWVkaWFNZXRh
ZGF0YVBsYXlsaXN0TWl4aW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0REMxOUVFMkM1MjAwRTVBMDQ1
IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSVENPZmZlckFuc3dlck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDczNzk0RTMxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ0NvbmZpZ3VyYXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTRFNDE5RUUyRkYyMDBFNUEwNDUg
LyogSlNSVENDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTUlRDQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTgw
NCw2ICs1ODE1LDEwIEBACiAJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1w
bGVCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0
Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1NhbXBsZURhdGFTb3VyY2UubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRp
b1NhbXBsZURhdGFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVk
aW9TYW1wbGVEYXRhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDBC
MTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA3NDBCMTQzMjVERTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0NDcxRkQyNUUx
ODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3NDRFQ0VCMUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrQXVkaW9TaGFyZWRVbml0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tBdWRpb1NoYXJlZFVuaXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NEVDRUMxRTBDNEFFNTAwMEQwOTQ0IC8qIE1v
Y2tBdWRpb1NoYXJlZFVuaXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBNb2NrQXVkaW9TaGFyZWRVbml0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzQ2RDMwQTIxNDZFQTM3MDAzRERGODQgLyogSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTIwLDYgKzU5MzUsNyBA
QAogCQkwN0UxMTZCMDE0ODlDOUExMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UxMTcwNjE0ODlFQkVCMDBFQzVBQ0Ug
LyogSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXliYWNrVGFyZ2V0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3RTVGMzkyMjVFQUE5MUYwMEE4NTNBRCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFu
ZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQ
cml2YXRlQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluYmFu
ZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05Nzk3LDEwICs5
ODEzLDEwIEBACiAJCTZFMEU1NjlBMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0Um91bmRlZFJlY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8q
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNkUyMUM2QzExMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dEdM
Q0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFMjQyQjI2MjMzNTkz
RDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcDsgcGF0aCA9IC4uLy4uLy4u
Ly4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJH
TENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NkUyNDJCMjgyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuaDsgcGF0aCA9IC4u
Ly4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTZFMjQyQjI5MjMzNTkzRDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVF
VEMxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEu
Y3BwOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyNDJCMkEyMzM1OTNEODAwMkNBREQ0IC8qIEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUVUQzEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJHTENvbXByZXNzZWRU
ZXh0dXJlRVRDMS5oOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMjQyQjI2MjMzNTkzRDcwMDJDQURENCAvKiBK
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJH
TENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NkUyNDJCMjgyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUyNDJCMjkyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlRVRDMS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMjQy
QjJBMjMzNTkzRDgwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZF
MjdGMjQzMjI5QzlGODQwMEYxRjYzMiAvKiBFeHRlbnNpb25zR0xBTkdMRS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeHRlbnNpb25zR0xBTkdMRS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjdGMjQ0MjI5QzlGOEQwMEYxRjYzMiAvKiBFeHRl
bnNpb25zR0xBTkdMRS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRlbnNp
b25zR0xBTkdMRS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk2MDMsNiArMTk2
MTksOCBAQAogCQkJCTUxMDU4QURBMUQ2NzkyNTcwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3Zp
ZGVyLmggKi8sCiAJCQkJNDE1N0VCRjkxRTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNDE1N0VCRjgxRTNBQjA2ODAwQUM5RkU5IC8qIE1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oICovLAorCQkJCTA3NDBCMTQzMjVERTMxQTkwMEUz
OERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3NDBCMTQx
MjVERTMxQTgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJ
CQkyRDZGM0U4QTFDMUVDQjFDMDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5LmNwcCAqLywKIAkJ
CQkyRDZGM0U4QjFDMUVDQjFDMDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5LmggKi8sCiAJCQkJ
MkQ2RjNFOEMxQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5pZGwgKi8sCkBAIC0y
NjkxMiw2ICsyNjkzMCw4IEBACiAJCQkJNTUwNjQwQUQyNDA3NTZEQTAwQUFFMDQ1IC8qIFBsYXRm
b3JtSW1hZ2VCdWZmZXJCYWNrZW5kLmggKi8sCiAJCQkJMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2
IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLywKIAkJCQlDRUVGQ0Q3QjE5REIzM0RDMDAzODc2RDcgLyog
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJMDdFNUYzOTIyNUVBQTkxRjAw
QTg1M0FEIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3
MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmggKi8sCiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8qIFBsYXRmb3JtVGV4dFRyYWNr
LmggKi8sCiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdl
cy5jcHAgKi8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJh
bmdlcy5oICovLApAQCAtMjgzNTUsNiArMjgzNzUsNyBAQAogCQkJCUNERERFQTJDMjUzOENFMDQw
MEExMzAwQyAvKiBNZWRpYU1ldGFkYXRhLmlkbCAqLywKIAkJCQlDRERERUEzMDI1MzhDRTFFMDBB
MTMwMEMgLyogTWVkaWFNZXRhZGF0YUluaXQuaCAqLywKIAkJCQlDRERERUEyRjI1MzhDRTFFMDBB
MTMwMEMgLyogTWVkaWFNZXRhZGF0YUluaXQuaWRsICovLAorCQkJCTA3MzZCNzMzMjYwQTdCNjQw
MEUwNjk5NCAvKiBNZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwgKi8sCiAJCQkJQ0REREVB
MzQyNTM4Q0U2MjAwQTEzMDBDIC8qIE1lZGlhUG9zaXRpb25TdGF0ZS5oICovLAogCQkJCUNERERF
QTMzMjUzOENFNjIwMEExMzAwQyAvKiBNZWRpYVBvc2l0aW9uU3RhdGUuaWRsICovLAogCQkJCUNE
RERFQTI0MjUzOENEODAwMEExMzAwQyAvKiBNZWRpYVNlc3Npb24uY3BwICovLApAQCAtMjgzNjYs
OCArMjgzODcsMTUgQEAKIAkJCQlDRERERUEzNTI1MzhDRTcwMDBBMTMwMEMgLyogTWVkaWFTZXNz
aW9uQWN0aW9uRGV0YWlscy5pZGwgKi8sCiAJCQkJQ0REREVBM0EyNTM4RTlDMjAwQTEzMDBDIC8q
IE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCAqLywKIAkJCQlDRERERUEzOTI1MzhFOUMyMDBB
MTMwMEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5pZGwgKi8sCisJCQkJMDcyREJDMDUy
NURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJCQkw
NzJEQkMwMzI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywK
KwkJCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aWRsICovLAorCQkJCTA3MzZCNzMwMjYwOTRBMzcwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25Db29y
ZGluYXRvck1peGluLmlkbCAqLywKIAkJCQlDRERERUEyOTI1MzhDRENCMDBBMTMwMEMgLyogTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJCUNERERFQTI4MjUzOENEQ0IwMEExMzAw
QyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbCAqLywKKwkJCQkwNzM2QjczMjI2MDk1
NTU0MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgKi8sCisJCQkJMDc0
NDcxRkQyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCAqLywKKwkJ
CQkwNzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwg
Ki8sCiAJCQkJQ0REREVBMjUyNTM4Q0RBQjAwQTEzMDBDIC8qIE5hdmlnYXRvcitNZWRpYVNlc3Np
b24uaWRsICovLAogCQkJCUNERERFQTI3MjUzOENEQUIwMEExMzAwQyAvKiBOYXZpZ2F0b3JNZWRp
YVNlc3Npb24uY3BwICovLAogCQkJCUNERERFQTI2MjUzOENEQUIwMEExMzAwQyAvKiBOYXZpZ2F0
b3JNZWRpYVNlc3Npb24uaCAqLywKQEAgLTI4Mzk0LDYgKzI4NDIyLDggQEAKIAkJCQlDRERERUE0
MDI1MzkxMURCMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmggKi8sCiAJ
CQkJQ0REREVBNEQyNTM5MTNCQjAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxl
ci5jcHAgKi8sCiAJCQkJQ0REREVBNEUyNTM5MTNCQzAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9u
QWN0aW9uSGFuZGxlci5oICovLAorCQkJCTA3MkRCQzA3MjVEQzZFREEwMEExMzUwRSAvKiBKU01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJCQkwNzJEQkMwNjI1REM2RURBMDBBMTM1
MEUgLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovLAogCQkJCUNERERFQTQ2MjUzOTEx
REQwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuY3BwICovLAogCQkJCUNE
RERFQTQyMjUzOTExREMwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCAq
LywKIAkJCSk7CkBAIC0zNDI5MSw2ICszNDMyMSw3IEBACiAJCQkJRjU0NEY3ODkxNUNGQjJBODAw
QUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QzE5
REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwNzBFMDkxOTE4NzVFRUZDMDAzQTFEM0MgLyogUGxhdGZvcm1NZWRpYVNlc3Np
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTA3MDhGMkI2MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0Y5NDQx
NjE4NjREMDQ2MDA1RDMxQ0IgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzVDNDc2OTA5QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTk4OTA1ODE0RTlDMjk5MDBFOEQxOEIgLyogUGxh
dGZvcm1QYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLywKQEAgLTM2MTkyLDYgKzM2MjIzLDcgQEAK
IAkJCQk1MTA1OEFEQjFENjc5MkMxMDA5QTUzOEMgLyogTW9ja0dhbWVwYWQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTEwNThBREQxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkUHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE1N0VCRkExRTNBQjY3OTAwQUM5RkU5IC8qIE1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzQwQjE0
NDI1REUzMUY4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJENkYzRTkwMUMxRUNCMjcwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJs
YXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5N0YwNDcxOURENDEzQzAwMUVFOUMzIC8qIE1v
Y2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUFGRURFNzFGOEJG
RjZEMDA4NzAxM0YgLyogTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApp
bmRleCA2MDg4ZTYyMmJkYTVlZDM0YjFhMmYwYzNjZjIyZDVjNDY0YzA2ZjBkLi44NmVhYWEwMGYx
NmJiYjZmNWJmZmE0Yjg5OGFhZjE3OTFhZTM3ODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0xNzEsNiArMTcxLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKE1lZGlhUXVlcnlMaXN0RXZlbnQpIFwKICAgICBt
YWNybyhNZWRpYVJlY29yZGVyKSBcCiAgICAgbWFjcm8oTWVkaWFSZWNvcmRlckVycm9yRXZlbnQp
IFwKKyAgICBtYWNybyhNZWRpYVNlc3Npb25Db29yZGluYXRvcikgXAogICAgIG1hY3JvKE1lZGlh
U291cmNlKSBcCiAgICAgbWFjcm8oTWVkaWFTdHJlYW0pIFwKICAgICBtYWNybyhNZWRpYVN0cmVh
bVRyYWNrKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCAxMzk0NDQzOTgxNDYwOTA5ZWYy
YTBmZTViYzdkNzlhOTliNzJlNTU1Li4yYzY4MDdkY2E2NTdmNjUwMmIyMGY0MWM1YWRhMmVlNjFi
M2YyZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oY29ubmVjdGluZykgXAogICAgIG1hY3JvKGNvbnRl
eHRtZW51KSBcCiAgICAgbWFjcm8oY29udHJvbGxlcmNoYW5nZSkgXAorICAgIG1hY3JvKGNvb3Jk
aW5hdG9yY2hhbmdlKSBcCiAgICAgbWFjcm8oY29weSkgXAogICAgIG1hY3JvKGN1ZWNoYW5nZSkg
XAogICAgIG1hY3JvKGN1dCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3Rvcnku
aW4KaW5kZXggNjk2ZWE5Y2ViZDIxZDE0OWFlYTVlMGJiNjQzN2FjZWZiOGNhMjAzNC4uMzllMzU3
YzkyODBkMjkyZWIzZmM3MzZlODY4ZjU4ZGFlMWJmZGI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC0yMyw2ICsyMyw3IEBAIE1lZGlhRGV2aWNlcyBjb25k
aXRpb25hbD1NRURJQV9TVFJFQU0KIE1lZGlhS2V5U2Vzc2lvbiBjb25kaXRpb25hbD1FTkNSWVBU
RURfTUVESUEKIE1lZGlhUXVlcnlMaXN0CiBNZWRpYVJlY29yZGVyIGNvbmRpdGlvbmFsPU1FRElB
X1NUUkVBTQorTWVkaWFTZXNzaW9uCiBNZWRpYVNvdXJjZSBjb25kaXRpb25hbD1NRURJQV9TT1VS
Q0UKIE1lZGlhU3RyZWFtIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogTWVkaWFTdHJlYW1UcmFj
ayBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHJpbmdDYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgK
aW5kZXggY2UxYzNhNTY4MmZmMWI3ZGEzOThmOWMzYTQ0MGE3NDk3ZDkzMmYxOS4uNjc5ZmI5Yzg5
ZGFhNzg4YmJiZjVhNzU3NWQ5Y2QyMTE5MDQ2MjU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0Nh
bGxiYWNrLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQ2FsbGJhY2tS
ZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoY29uc3QgU3RyaW5nJiBkYXRhKSA9IDA7CiAKICAgICAv
LyBIZWxwZXIgdG8gcG9zdCBjYWxsYmFjayB0YXNrLgotICAgIHZvaWQgc2NoZWR1bGVDYWxsYmFj
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBkYXRhKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IGNvbnN0IFN0cmluZyYgZGF0YSk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMTc4NTExMzk5
ZjQxNWY3ODFiMzJhYWVlNzZjMTEzZWIxN2ViY2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUgc3RhdGUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlTm90
aGluZyIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZU1ldGFkYXRhIiks
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlQ3VycmVudERhdGEiKSwKKyAg
ICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVGdXR1cmVEYXRhIiksCisgICAgICAg
IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlRW5vdWdoRGF0YSIpLAorICAgIH07CisgICAg
c3RhdGljX2Fzc2VydCghc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyksICJNZWRpYVNl
c3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyBpcyBub3QgMCBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEpID09IDEsICJN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEgaXMgbm90IDEgYXMgZXhwZWN0ZWQi
KTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRh
KSA9PSAyLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhIGlzIG5vdCAy
IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6Okhh
dmVGdXR1cmVEYXRhKSA9PSAzLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURh
dGEgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0
PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEpID09IDQsICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlRW5vdWdoRGF0YSBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNf
Y2FzdDxzaXplX3Q+KHN0YXRlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0
dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KHN0YXRlKV07Cit9CisKK1N0cmluZyBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRlKQoreworICAgIHN0YXRpYyBjb25zdCBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJ
TkdfSU1QTCgiTm9uZSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGF1c2Vk
IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJQbGF5aW5nIiksCisgICAgfTsK
KyAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUpLCAiTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSBpcyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQpID09IDEsICJNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZykgPT0gMiwgIk1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZh
bHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSldOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45MTBkYzUxZDJhNmY4MGFiYzk3YWE2MDdkOWU5YTUxMDE1MGYzMmVkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2lu
Y2x1ZGUgIkV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYv
TG9nZ2VyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1
ZVJlZi5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4geworcHVibGljOgorICAgIHZpcnR1
YWwgflBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKKyAgICB1
c2luZyBTZWVrQ29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPEV4Y2VwdGlvbj4mJik+OworICAgIHZpcnR1YWwgdm9pZCBzZWVrVG8oZG91YmxlLCBTZWVr
Q29tcGxldGVkQ2FsbGJhY2smJikgPSAwOworCisgICAgdXNpbmcgUGxheUNvbXBsZXRlZENhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPjsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJikgPSAwOworCisgICAg
dXNpbmcgUGF1c2VDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8RXhjZXB0aW9uPiYmKT47CisgICAgdmlydHVhbCB2b2lkIHBhdXNlKFBhdXNlQ29tcGxl
dGVkQ2FsbGJhY2smJikgPSAwOworCisgICAgdXNpbmcgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47CisgICAg
dmlydHVhbCB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxs
YmFjayYmKSA9IDA7CisKKyAgICB2b2lkIHNldExvZ2dlcihjb25zdCBMb2dnZXImIGxvZ2dlciwg
Y29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIG1fbG9nZ2VyID0gbWFr
ZVJlZlB0cihsb2dnZXIpOworICAgICAgICBtX2xvZ0lkZW50aWZpZXIgPSBsb2dJZGVudGlmaWVy
OworICAgIH0KKworICAgIHN0cnVjdCBNZWRpYVBvc2l0aW9uU3RhdGUgeworICAgICAgICBkb3Vi
bGUgZHVyYXRpb24gPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7Cisg
ICAgICAgIGRvdWJsZSBwbGF5YmFja1JhdGUgPSAxOworICAgICAgICBkb3VibGUgcG9zaXRpb24g
PSAwOworICAgIH07CisKKyAgICBlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgOiB1
aW50OF90IHsKKyAgICAgICAgSGF2ZU5vdGhpbmcsCisgICAgICAgIEhhdmVNZXRhZGF0YSwKKyAg
ICAgICAgSGF2ZUN1cnJlbnREYXRhLAorICAgICAgICBIYXZlRnV0dXJlRGF0YSwKKyAgICAgICAg
SGF2ZUVub3VnaERhdGEsCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZSA6IHVpbnQ4X3QgeworICAgICAgICBOb25lLAorICAgICAgICBQYXVzZWQsCisg
ICAgICAgIFBsYXlpbmcsCisgICAgfTsKKworICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRl
Q2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+KSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZSkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvcigpID0gZGVmYXVsdDsKKworICAgIGNvbnN0IExvZ2dlciogbG9nZ2VyUHRyKCkg
Y29uc3QgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgY29uc3QgY2hh
ciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgeyByZXR1cm4gIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IiOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IHsgcmV0
dXJuIExvZ01lZGlhOyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9s
b2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworfTsKKworU3RyaW5nIGNv
bnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpOworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3Ry
aW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGUpOworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3NjM0MDlmNjYxYTI3MTlk
YWJmMDkzM2UwZjg5ZDJlMDJjZWM2NGY3Li43NDJlZTdkZjdiMjkwNzAwZTA3OGQ0ZmMwNDY5YmEz
ZTE4YTExNzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMzcsNiAr
MzM3LDEyIEBACiAjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyNpbmNsdWRlICJNZWRp
YVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1ZGUgIk1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oIgorI2luY2x1ZGUgIk5hdmlnYXRvck1lZGlhU2Vzc2lvbi5oIgorI2VuZGlmCisKICNp
ZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKICNpbmNsdWRlICJJbWFnZUV4dHJhY3Rpb25SZXN1
bHQuaCIKICNlbmRpZgpAQCAtNjExMiw5ICs2MTE4LDQwIEBAIHZvaWQgSW50ZXJuYWxzOjpsb2Fk
QXJ0d29ya0ltYWdlKFN0cmluZyYmIHVybCwgQXJ0d29ya0ltYWdlUHJvbWlzZSYmIHByb21pc2Up
CiAgICAgfSk7CiAgICAgbV9hcnR3b3JrTG9hZGVyLT5yZXF1ZXN0SW1hZ2VSZXNvdXJjZSgpOwog
fQotCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorRXhj
ZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpyZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8U3RyaW5nQ2FsbGJh
Y2s+JiYgbGlzdGVuZXIpCit7CisgICAgaWYgKG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5kb21XaW5kb3coKSkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgaWYgKCFk
b2N1bWVudC0+c2V0dGluZ3MoKS5tZWRpYVNlc3Npb25Db29yZGluYXRvckVuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgYXV0
byYgc2Vzc2lvbiA9IE5hdmlnYXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uKGRvY3VtZW50
LT5kb21XaW5kb3coKS0+bmF2aWdhdG9yKCkpOworICAgIGF1dG8gbW9jayA9IE1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKGNvbnRleHQsIFdURk1vdmUobGlzdGVuZXIpKTsKKyAg
ICBtX21vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciA9IG1vY2sucHRyKCk7CisgICAgbV9tZWRp
YVNlc3Npb25Db29yZGluYXRvciA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUobW9j
ay5nZXQoKSk7CisgICAgc2Vzc2lvbi5zZXRDb29yZGluYXRvcihtX21lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmdldCgpKTsKKworICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+
IEludGVybmFsczo6c2V0TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRG
YWlsKGJvb2wgc2hvdWxkRmFpbCkKK3sKKyAgICBpZiAoIW1fbW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsK
KworICAgIG1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLT5zZXRDb21tYW5kc1Nob3VsZEZh
aWwoc2hvdWxkRmFpbCk7CisgICAgcmV0dXJuIHsgfTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU0VTU0lPTikKKwogY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzdHJpbmcoUGFydGlhbE9yZGVy
aW5nIG9yZGVyaW5nKQogewogICAgIGlmIChpc19sdChvcmRlcmluZykpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAppbmRleCA2MGVjYzQ4OGI0MzIwNzdlYjJlMzYxMmMwNmZiNGU5OGRhNmFk
NjZiLi4yMTNkODdjZWY2NGFkNWFkZTZiYTAyNTgwNzQ4MWU1OTg5MDk3ODk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTEzNiw2ICsxMzYsMTAgQEAgY2xhc3MgV2ViWFJUZXN0
OwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogY2xhc3MgTWVkaWFTZXNzaW9uOwogc3RydWN0
IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHM7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCitjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKK2NsYXNzIE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcjsKKyNlbmRpZgogI2VuZGlmCiAKIHRlbXBsYXRlPHR5cGVuYW1l
IElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKQEAgLTEwOTMsMTAgKzEwOTcsMTcg
QEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIEV4Y2VwdGlvbk9yPGRv
dWJsZT4gY3VycmVudE1lZGlhU2Vzc2lvblBvc2l0aW9uKGNvbnN0IE1lZGlhU2Vzc2lvbiYpOwog
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNlbmRNZWRpYVNlc3Npb25BY3Rpb24oTWVkaWFTZXNzaW9u
JiwgY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYpOwotICAgIHVzaW5nIEFydHdvcmtJ
bWFnZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEltYWdlRGF0YT4+
OworCisgICAgICAgIHVzaW5nIEFydHdvcmtJbWFnZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMSW50ZXJmYWNlPEltYWdlRGF0YT4+OwogICAgIHZvaWQgbG9hZEFydHdvcmtJbWFnZShT
dHJpbmcmJiwgQXJ0d29ya0ltYWdlUHJvbWlzZSYmKTsKKworI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlZ2lzdGVyTW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5n
Q2FsbGJhY2s+JiYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChib29sKTsKICNlbmRpZgogCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NFU1NJT04pCisKICAgICBlbnVtIFRyZWVUeXBlIDogdWludDhfdCB7IFRy
ZWUsIFNoYWRvd0luY2x1ZGluZ1RyZWUsIENvbXBvc2VkVHJlZSB9OwogICAgIFN0cmluZyB0cmVl
T3JkZXIoTm9kZSYsIE5vZGUmLCBUcmVlVHlwZSk7CiAgICAgU3RyaW5nIHRyZWVPcmRlckJvdW5k
YXJ5UG9pbnRzKE5vZGUmIGNvbnRhaW5lckEsIHVuc2lnbmVkIG9mZnNldEEsIE5vZGUmIGNvbnRh
aW5lckIsIHVuc2lnbmVkIG9mZnNldEIsIFRyZWVUeXBlKTsKQEAgLTExNDAsNiArMTE1MSwxMSBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJYUikKICAgICBSZWZQdHI8V2ViWFJUZXN0PiBtX3hy
VGVzdDsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisg
ICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX21lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOworICAgIFJlZlB0cjxNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fbW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZTg1ZTA4ZGY4OGNkOTU4MDE5
ZGJlNDYxM2UzNmQ0OWRiODYxMTY4My4uMmM5NDhiMjJiNzcxNGMxOTczZjJjMzRmODFkZWU3MDhj
MjM2Y2IxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtOTkxLDYgKzk5
MSw5IEBAIGVudW0gVHJlZVR5cGUgewogICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OXSB1
bmRlZmluZWQgc2VuZE1lZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNlc3Npb24gc2Vzc2lvbiwgTWVk
aWFTZXNzaW9uQWN0aW9uRGV0YWlscyBhY3Rpb25EZXRhaWxzKTsKICAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl0gUHJvbWlzZTxJbWFnZURhdGE+IGxvYWRBcnR3b3JrSW1hZ2UoRE9NU3Ry
aW5nIHVybCk7CiAgICAgCisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IsIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHVuZGVmaW5lZCByZWdpc3Rlck1v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTdHJpbmdDYWxsYmFjayBjYWxsYmFjayk7CisgICAg
W0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1JdIHVuZGVmaW5lZCBzZXRNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21tYW5kc1Nob3VsZEZhaWwoYm9vbGVhbiBzaG91bGRG
YWlsKTsKKwogICAgIERPTVN0cmluZyB0cmVlT3JkZXIoTm9kZSBhLCBOb2RlIGIsIG9wdGlvbmFs
IFRyZWVUeXBlIHRyZWUgPSAiVHJlZSIpOwogICAgIERPTVN0cmluZyB0cmVlT3JkZXJCb3VuZGFy
eVBvaW50cyhOb2RlIGNvbnRhaW5lckEsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0QSwgTm9kZSBjb250
YWluZXJCLCB1bnNpZ25lZCBsb25nIG9mZnNldEIsIG9wdGlvbmFsIFRyZWVUeXBlIHRyZWUgPSAi
VHJlZSIpOwogICAgIGJvb2xlYW4gcmFuZ2VDb250YWluc05vZGUoQWJzdHJhY3RSYW5nZSByYW5n
ZSwgTm9kZSBub2RlLCBvcHRpb25hbCBUcmVlVHlwZSB0cmVlID0gIlRyZWUiKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMzc1ZmI2MTMyNTBkNzFkNzExNDU3Njc0OTQzYTVjMDE3ODUyOWZhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlN0cmlu
Z0NhbGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVk
ZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgor
I2luY2x1ZGUgPHd0Zi9VVUlELmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitSZWY8TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8U3Ry
aW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9j
a01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKGNvbnRleHQsIFdURk1vdmUobGlzdGVuZXIpKSk7Cit9
CisKK01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZlB0cjxTdHJpbmdDYWxsYmFj
az4mJiBsaXN0ZW5lcikKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9zdGF0ZUNo
YW5nZUxpc3RlbmVyKFdURk1vdmUobGlzdGVuZXIpKQoreworfQorCitPcHRpb25hbDxFeGNlcHRp
b24+IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVzdWx0KCkgY29uc3QKK3sKKyAgICBp
ZiAobV9mYWlsQ29tbWFuZHMpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9OworCisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKwordm9pZCBNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgU2Vla0NvbXBsZXRlZENh
bGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVO
VElGSUVSLCB0aW1lKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewor
ICAgICAgICBjYWxsYmFjayhyZXN1bHQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KFBsYXlDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNr
KQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9j
b250ZXh0LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2socmVzdWx0
KCkpOworICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1
c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0df
SUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhbdGhp
cywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2socmVzdWx0KCkpOworICAgIH0pOworfQorCit2
b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nLCBT
ZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19J
Rl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlz
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
IG11dGFibGUgeworICAgICAgICBjYWxsYmFjayhyZXN1bHQoKSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRp
b25hbDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVBvc2l0aW9uU3RhdGU+
KQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9z
dGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInBv
c2l0aW9uU3RhdGVDaGFuZ2VkIik7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpyZWFkeVN0YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lC
TEUoTE9HSURFTlRJRklFUiwgc3RhdGUpOworICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lci0+c2No
ZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCksICJyZWFkeVN0YXRlQ2hhbmdlZCIpOworfQor
Cit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQo
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZSBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHN0
YXRlKTsKKyAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250
ZXh0LmdldCgpLCAicGxheWJhY2tTdGF0ZUNoYW5nZWQiKTsKK30KKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzBi
YjRjYjBiZTk2Zjg1ZmQ0NTcwZThlMzkzYjcyMzZmZThmMmIzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAt
MCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFN0cmluZ0NhbGxiYWNrOworCitjbGFzcyBNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKKworICAgIHZvaWQgc2V0Q29tbWFu
ZHNTaG91bGRGYWlsKGJvb2wgc2hvdWxkRmFpbCkgeyBtX2ZhaWxDb21tYW5kcyA9IHNob3VsZEZh
aWw7IH0KKworcHJpdmF0ZToKKyAgICBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJik7CisKKyAgICB2b2lk
IHNlZWtUbyhkb3VibGUsIFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lk
IHBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcGF1c2UoUGF1
c2VDb21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0
cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKworICAgIHZvaWQgcG9z
aXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgZmluYWw7Cisg
ICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsK
KyAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUp
IGZpbmFsOworCisgICAgT3B0aW9uYWw8RXhjZXB0aW9uPiByZXN1bHQoKSBjb25zdDsKKworICAg
IFJlZjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX2NvbnRleHQ7CisgICAgUmVmUHRyPFN0cmlu
Z0NhbGxiYWNrPiBtX3N0YXRlQ2hhbmdlTGlzdGVuZXI7CisgICAgYm9vbCBtX2ZhaWxDb21tYW5k
cyB7IGZhbHNlIH07Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA0ZDYwZjcyNDg0N2FhNTE2YjZmZmNhMzY2NTk4MzQ5N2I2Njlj
ZDkwLi45MTdkMjA0NGU3ZmJmODJhYmY4NWNkYjU4OTg1OGZlMDZjZWRmNjg3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBj
b29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9y
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2Nr
LWNvb3JkaW5hdG9yLmh0bWw6IEFkZGVkLgorCiAyMDIxLTAzLTIzICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQXSAyIHdlYiBhdWRpbyBXUFQgdGVzdHMg
ZmFpbCB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDQxMGNmMzZhYmM5MzEwOTJmYWIwNzM5OTE1NjdkOWU2MjFmOGFjODUuLjYzODkwMGVl
ZWRjOWFmMWEyYzI0NDEzM2U3YWRlM2I5MzQ1Y2YxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDYzNyw2ICs0NjM3LDcgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXNjcm9sbC1zbmFwL3NuYXAtYWZ0ZXItaW5pdGlhbC1sYXlvdXQvd3IKICMgQ29jb2Etb25seQog
aHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWhkci1zd2l0Y2guaHRtbCBbIFNraXAgXQogaHR0cC90
ZXN0cy9tZWRpYS92aWRlby1jYW5wbGF5dGhyb3VnaC13ZWJtLmh0bWwgWyBTa2lwIF0KK21lZGlh
L21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sIFsgU2tpcCBdCiAKICMgVGhlc2Ug
dGVzdHMgcmVseSBvbiB3ZWJraXQtdGVzdC1ydW5uZXIgZmxhZ3MgdGhhdCBhcmVuJ3QgaW1wbGVt
ZW50ZWQgZm9yIER1bXBSZW5kZXJUcmVlLCBzbyB0aGV5IHdpbGwgZmFpbCB1bmRlciBsZWdhY3kg
V2ViS2l0LgogZWRpdGluZy9zZWxlY3Rpb24vZXhwYW5kby5odG1sIFsgRmFpbHVyZSBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
c2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRv
dy1leHBlY3RlZC50eHQKaW5kZXggZmVjNmQ2NDM4OWVkZTFjMjBkNGYyNjIzNTdmMTI2MmM3MTFh
MDEzNS4uNzFkYmNjMzhkMzkxOWJiM2MwYjM2MjhjNGQxMGRkMjY0NzkxNWNlOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYXNlc3Np
b24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93
LWV4cGVjdGVkLnR4dApAQCAtMTIsMTAgKzEyLDE0IEBAIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVz
IE5hdmlnYXRvckNvbnRlbnRVdGlsczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2
aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JQbHVnaW5zOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhh
cmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAorRkFJTCBN
ZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdCBhc3NlcnRfZXF1YWxzOiBwcm90b3R5cGUgb2Ygc2VsZidzIHByb3BlcnR5ICJN
ZWRpYVNlc3Npb24iIGlzIG5vdCBGdW5jdGlvbi5wcm90b3R5cGUgZXhwZWN0ZWQgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiBidXQgZ290IGZ1bmN0aW9uICJm
dW5jdGlvbiBFdmVudFRhcmdldCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IgogUEFTUyBNZWRp
YVNlc3Npb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgTWVkaWFTZXNzaW9uIGludGVy
ZmFjZSBvYmplY3QgbmFtZQotUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK0ZBSUwgTWVkaWFT
ZXNzaW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0IGFzc2VydF9lcXVhbHM6IHByb3RvdHlwZSBvZiBNZWRpYVNlc3Npb24u
cHJvdG90eXBlIGlzIG5vdCBPYmplY3QucHJvdG90eXBlIGV4cGVjdGVkIG9iamVjdCAiW29iamVj
dCBPYmplY3RdIiBidXQgZ290IG9iamVjdCAiW29iamVjdCBFdmVudFRhcmdldF0iCiBQQVNTIE1l
ZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKIFBBU1MgTWVkaWFT
ZXNzaW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQogUEFTUyBNZWRpYVNlc3Np
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWV0YWRhdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk0MDZmNDgyZjQ4OWM3MjZmNDcyODgwZWU2Njc2ZjkyNGQwNWU1NjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29v
cmRpbmF0b3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsODEgQEAKKworKiogVGhlcmUgc2hvdWxk
IGJlIG5vIG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciBpbml0aWFsbHkuCitFWFBFQ1RFRCAobmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciA9PSAndW5kZWZpbmVkJykgT0sKKworKiog
VGVzdCB0aGF0IG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcmNoYW5nZSBldmVudCBpcyBmaXJlZCB3
aGVuIGl0IGNoYW5nZXMuCitSVU4oaW50ZXJuYWxzLnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKGNoYW5nZUhhbmRsZXIpKQorRVZFTlQoY29vcmRpbmF0b3JjaGFuZ2UpCitFWFBF
Q1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciAhPSAndW5kZWZpbmVkJykg
T0sKKworKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCBwcm9t
aXNlcyByZXNvbHZlIGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBjYWxsZWQu
CitUZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpCitBQ1RJT04o
cGxheSkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3BsYXknKSBPSworCitUZXN0IG5hdmln
YXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGF1c2UoKQorQUNUSU9OKHBhdXNlKQorRVhQ
RUNURUQgKGxhdGVzdEFjdGlvbiA9PSAncGF1c2UnKSBPSworCitUZXN0IG5hdmlnYXRvci5tZWRp
YVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla3RvKCkKK0FDVElPTihzZWVrdG8pCitFWFBFQ1RFRCAo
bGF0ZXN0QWN0aW9uID09ICdzZWVrdG8nKSBPSworCisqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGlu
YXRvciBtZXRob2RzIHN1Y2NlZWQsIHByb21pc2VzIHJlamVjdCBhbmQgbWVkaWFTZXNzaW9uIGFj
dGlvbiBoYW5kbGVycyBhcmUgbm90IGNhbGxlZC4KK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5jb29yZGluYXRvci5wbGF5KCkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisK
K1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpCitFWFBFQ1RF
RCAobGF0ZXN0QWN0aW9uID09ICcnKSBPSworCitUZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
Y29vcmRpbmF0b3Iuc2Vla3RvKCkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisK
KyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwb3Np
dGlvblN0YXRlIGNoYW5nZXMuCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlv
blN0YXRlKHsgZHVyYXRpb246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSkpCitF
WFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdwb3NpdGlvblN0YXRlQ2hhbmdlZCcpIE9LCisKKyoq
IFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiByZWFkeVN0
YXRlIGNoYW5nZXMuCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRl
ID09ICdoYXZlTm90aGluZycpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0
YXRlID0gJ2hhdmVNZXRhZGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0
YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0
YXRlID09ICdoYXZlTWV0YWRhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTWV0YWRhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRp
YVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlQ3VycmVudERhdGEnKQorRVhQRUNURUQgKGxhdGVz
dENoYW5nZSA9PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUN1cnJlbnREYXRhJykgT0sKKworRVhQRUNU
RUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUN1cnJlbnREYXRh
JykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUZ1dHVy
ZURhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBP
SworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUZ1
dHVyZURhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0
YXRlID09ICdoYXZlRnV0dXJlRGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5y
ZWFkeVN0YXRlID0gJ2hhdmVFbm91Z2hEYXRhJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0g
J3JlYWR5U3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnJlYWR5U3RhdGUgPT0gJ2hhdmVFbm91Z2hEYXRhJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUVub3VnaERhdGEnKSBPSworUlVOKG5h
dmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlTm90aGluZycpCitFWFBFQ1RF
RCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTm90aGluZycpIE9LCisKKyoq
IFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwbGF5YmFj
a1N0YXRlIGNoYW5nZXMuCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFj
a1N0YXRlID09ICdub25lJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNr
U3RhdGUgPSAncGF1c2VkJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3BsYXliYWNrU3Rh
dGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNr
U3RhdGUgPT0gJ3BhdXNlZCcpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnBsYXliYWNrU3RhdGUgPT0gJ3BhdXNlZCcpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5wbGF5YmFja1N0YXRlID0gJ3BsYXlpbmcnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAn
cGxheWJhY2tTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Np
b24ucGxheWJhY2tTdGF0ZSA9PSAncGxheWluZycpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BsYXlpbmcnKSBPSworUlVOKG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICdub25lJykKK0VYUEVDVEVEIChsYXRlc3RD
aGFuZ2UgPT0gJ3BsYXliYWNrU3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSworCisKK0VORCBPRiBURVNU
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29y
ZGluYXRvci5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3Jk
aW5hdG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc4MTE0YThiNTMwZjRkZDk5YzMxMThkOWE1NzJmZWI1
ZTVjMTc0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Np
b24vbW9jay1jb29yZGluYXRvci5odG1sCkBAIC0wLDAgKzEsMTMyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPm1vY2stbWVkaWFzZXNzaW9uLWNvb3JkaW5h
dG9yPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdD4KKworICAgIGZ1bmN0aW9uIGNoYW5nZUhhbmRsZXIoY2hhbmdlKQorICAg
IHsKKyAgICAgICAgd2luZG93LmxhdGVzdENoYW5nZSA9IGNoYW5nZTsKKyAgICB9CisKKyAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKworICAgICAg
ICB3aW5kb3cubGF0ZXN0QWN0aW9uID0gJyc7CisgICAgICAgIHdpbmRvdy5sYXRlc3RDaGFuZ2Ug
PSAnJzsKKworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZh
aWxUZXN0KCdUaGlzIHRlc3QgcmVxdWlyZXMgSW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBjaGFuZ2VQcm9taXNlID0gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmFkZEV2
ZW50TGlzdGVuZXIoJ2Nvb3JkaW5hdG9yY2hhbmdlJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKGBFVkVOVCgke2V2ZW50LnR5cGV9KWApOworICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBj
b25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRoZXJlIHNob3VsZCBi
ZSBubyBtZWRpYVNlc3Npb24uY29vcmRpbmF0b3IgaW5pdGlhbGx5LicpCisKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yJywgdW5kZWZpbmVk
KTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJyoq
IFRlc3QgdGhhdCBtZWRpYVNlc3Npb24uY29vcmRpbmF0b3JjaGFuZ2UgZXZlbnQgaXMgZmlyZWQg
d2hlbiBpdCBjaGFuZ2VzLicpCisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMucmVnaXN0ZXJNb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY2hhbmdlSGFuZGxlciknKTsKKworICAgICAgICBhd2Fp
dCBjaGFuZ2VQcm9taXNlOworICAgICAgICAKKyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yJywgdW5kZWZpbmVkLCAnIT0nKTsKKworICAgICAg
ICBbJ3BsYXknLCAncGF1c2UnLCAnc2Vla3RvJ10uZm9yRWFjaChhY3Rpb24gPT4geworICAgICAg
ICAgICAgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRBY3Rpb25IYW5kbGVyKGFjdGlvbiwgYWN0
aW9uRGV0YWlscyA9PiB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBBQ1RJT04oJHth
Y3Rpb25EZXRhaWxzLmFjdGlvbn0pYCk7CisgICAgICAgICAgICAgICAgbGF0ZXN0QWN0aW9uID0g
YWN0aW9uRGV0YWlscy5hY3Rpb247CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAg
ICAgICAgbGV0IHRlc3RBY3Rpb24gPSBhc3luYyAoYWN0aW9uLCBmdW5jLCBmb3JjZUZhaWx1cmUp
ID0+IHsKKyAgICAgICAgICAgIGxhdGVzdEFjdGlvbiA9ICcnOworCisgICAgICAgICAgICBsZXQg
c3VjY2VlZGVkOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3Jp
dGUoYFRlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci4ke2FjdGlvbn0oKWAp
OworICAgICAgICAgICAgICAgIGF3YWl0IGZ1bmMoKTsKKyAgICAgICAgICAgICAgICBpZiAoZm9y
Y2VGYWlsdXJlKQorICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEZBSUw6ICR7ZnVu
Yy50b1N0cmluZygpfSByZXNvbHZlZCBidXQgc2hvdWxkIGhhdmUgcmVqZWN0ZWRgKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2xhdGVzdEFjdGlvbicsIGFjdGlvbik7CisgICAgICAg
ICAgICB9IGNhdGNoIChleCkgeworICAgICAgICAgICAgICAgIGlmICghZm9yY2VGYWlsdXJlKQor
ICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEZBSUw6ICR7ZnVuYy50b1N0cmluZygp
fSB0aHJldyAke2V4fWApOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0
aW9uJywgJycpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycp
OworICAgICAgICB9OworCisgICAgICAgIGxldCBhY3Rpb25zID0gWyAKKyAgICAgICAgICAgIHsg
YWN0aW9uOiAncGxheScsIGZ1bmMgOiAoKSA9PiB7IHJldHVybiBuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLmNvb3JkaW5hdG9yLnBsYXkoKSB9LCB9LAorICAgICAgICAgICAgeyBhY3Rpb246ICdwYXVz
ZScsIGZ1bmMgOiAoKSA9PiB7IHJldHVybiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5h
dG9yLnBhdXNlKCkgfSwgfSwKKyAgICAgICAgICAgIHsgYWN0aW9uOiAnc2Vla3RvJywgZnVuYyA6
ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1Rv
KDEwKSB9LCB9LAorICAgICAgICBdOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBz
dWNjZWVkLCAgcHJvbWlzZXMgcmVzb2x2ZSBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVy
cyBhcmUgY2FsbGVkLicpCisgICAgICAgIGludGVybmFscy5zZXRNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JDb21tYW5kc1Nob3VsZEZhaWwoZmFsc2UpOworICAgICAgICBmb3IgKGxldCBhY3Rp
b24gb2YgYWN0aW9ucykKKyAgICAgICAgICAgIGF3YWl0IHRlc3RBY3Rpb24oYWN0aW9uLmFjdGlv
biwgYWN0aW9uLmZ1bmMsIGZhbHNlKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3Qg
dGhhdCB3aGVuIGNvb3JkaW5hdG9yIG1ldGhvZHMgc3VjY2VlZCwgIHByb21pc2VzIHJlamVjdCBh
bmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUgbm90IGNhbGxlZC4nKQorICAgICAg
ICBpbnRlcm5hbHMuc2V0TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRG
YWlsKHRydWUpOworICAgICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykKKyAgICAgICAg
ICAgIGF3YWl0IHRlc3RBY3Rpb24oYWN0aW9uLmFjdGlvbiwgYWN0aW9uLmZ1bmMsIHRydWUpOwor
CisgICAgICAgIGNvbnNvbGVXcml0ZShgKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmll
cyBjb29yZGluYXRvciB3aGVuIHBvc2l0aW9uU3RhdGUgY2hhbmdlcy5gKQorICAgICAgICBydW4o
J25hdmlnYXRvci5tZWRpYVNlc3Npb24uc2V0UG9zaXRpb25TdGF0ZSh7IGR1cmF0aW9uOiAxLCBw
bGF5YmFja1JhdGU6IDEsIHBvc2l0aW9uOiAwIH0pJyk7CisgICAgICAgIGF3YWl0IHRlc3RFeHBl
Y3RlZEV2ZW50dWFsbHkoJ2xhdGVzdENoYW5nZScsICdwb3NpdGlvblN0YXRlQ2hhbmdlZCcsICc9
PScsIDEwMCk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdy
aXRlKCcqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4g
cmVhZHlTdGF0ZSBjaGFuZ2VzLicpCisgICAgICAgIGxldCBwcmV2aW91c1N0YXRlID0gJ2hhdmVO
b3RoaW5nJzsKKyAgICAgICAgZm9yIChsZXQgc3RhdGUgb2YgWydoYXZlTWV0YWRhdGEnLCAnaGF2
ZUN1cnJlbnREYXRhJywgJ2hhdmVGdXR1cmVEYXRhJywgJ2hhdmVFbm91Z2hEYXRhJywgJ2hhdmVO
b3RoaW5nJ10pIHsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5yZWFkeVN0YXRlJywgcHJldmlvdXNTdGF0ZSk7CisKKyAgICAgICAgICAgIGxhdGVzdENo
YW5nZSA9ICcnOworICAgICAgICAgICAgcnVuKGBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5
U3RhdGUgPSAnJHtzdGF0ZX0nYCk7CisKKyAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2
ZW50dWFsbHkoJ2xhdGVzdENoYW5nZScsICdyZWFkeVN0YXRlQ2hhbmdlZCcsICc9PScsIDEwMCk7
CisKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFk
eVN0YXRlJywgc3RhdGUpOworICAgICAgICAgICAgcHJldmlvdXNTdGF0ZSA9IHN0YXRlOworICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgfTsKKworICAgICAgICBjb25zb2xl
V3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hl
biBwbGF5YmFja1N0YXRlIGNoYW5nZXMuJykKKyAgICAgICAgcHJldmlvdXNTdGF0ZSA9ICdub25l
JzsKKyAgICAgICAgZm9yIChsZXQgc3RhdGUgb2YgWydwYXVzZWQnLCAncGxheWluZycsICdub25l
J10pIHsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnBsYXliYWNrU3RhdGUnLCBwcmV2aW91c1N0YXRlKTsKKworICAgICAgICAgICAgbGF0ZXN0Q2hh
bmdlID0gJyc7CisgICAgICAgICAgICBydW4oYG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJh
Y2tTdGF0ZSA9ICcke3N0YXRlfSdgKTsKKworICAgICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVk
RXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3BsYXliYWNrU3RhdGVDaGFuZ2VkJywgJz09Jywg
MTAwKTsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnBsYXliYWNrU3RhdGUnLCBzdGF0ZSk7CisgICAgICAgICAgICBwcmV2aW91c1N0YXRlID0gc3Rh
dGU7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICB9OworCisgICAgICAg
IGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9LCB7b25jZTogdHJ1
ZX0pOworCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="443737"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424159</attachid>
            <date>2021-03-24 11:01:50 -0700</date>
            <delta_ts>2021-03-24 14:46:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222158-20210324110148.patch</filename>
            <type>text/plain</type>
            <size>120725</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmYzczYWI5YzdiZWUzNDEzMjkxOGE5
NDVhYTQ3NDVkZjM2NDE1ZWUuLjY1MzUzNDNjZmY1YmY1YmU4NzIzMWYzMjJjODBhMDRjZmUyM2U5
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIxLTAzLTIzICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlcXVpcmUgVk1fRkxBR1NfUEVS
TUFORU5UIG9uIHRoZSBzaW11bGF0b3IgYnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkxZDM5NzM5ODU0
YWQ2YmY0NmQ0YzhkZGIyYmJjNjY4OGNlZTViYS4uY2E0NjcyMTFjODU3MjY4YTY2NmVmNWRmMDVm
MGYwM2IyN2UzYjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAyMS0wMi0xOCAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2Fd
IEFkZCBFeHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9y
LCBhbiBvYmplY3QgdGhhdCBwcm92aWRlcyBhbiBpbnRlcmZhY2UKKyAgICAgICAgdGhhdCBhbGxv
d3Mgc2NyaXB0IHRvIGNvb3JkaW5hdGUgY2hhbmdlcyB0byBNZWRpYVNlc3Npb24gd2l0aCB0aGUg
VXNlciBBZ2VudC4gQWxzbworICAgICAgICBhZGQgYW4gZXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lv
biBwbGF5bGlzdCBpbnRlcmZhY2UuCisKKyAgICAgICAgVGhlIGNoYW5nZXMgYXJlIGJlaGluZCBu
ZXcgZXhwZXJpbWVudGFsIGZlYXR1cmUgZmxhZ3MsCisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yRW5hYmxlZCBhbmQgTWVkaWFTZXNzaW9uUGxheWxpc3RFbmFibGVkLgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCisKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OiBBZGQgbmV3IElETCBmaWxlcy4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDogQWRkIG5ldyBkZXJp
dmVkIHNvdXJjZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkIG5ldyBJREwu
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OmNyZWF0ZSk6IFNldCB0cmFja0lkZW50aWZp
ZXIgZnJvbSBpbml0IGRhdGEuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYU1ldGFkYXRhOjpzZXRU
cmFja0lkZW50aWZpZXIpOiB0cmFja0lkZW50aWZpZXIgc2V0dGVyLgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGE6OnRyYWNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oOiBBZGQgdHJhY2tJZGVudGlmaWVyLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFNZXRhZGF0YUluaXQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
OjpNZWRpYVNlc3Npb24pOiBJbml0aWFsaXplIE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEpOiBtZXRhZGF0YVVw
ZGF0ZWQgLT4gbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb246OnNldFJlYWR5U3RhdGUpOiBTZXNzaW9uIHJlYWR5U3RhdGUgc2V0dGVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcik6IENvb3JkaW5hdG9y
IHNldHRlci4gUG9zdCAnY29vcmRpbmF0b3JjaGFuZ2UnCisgICAgICAgIGV2ZW50IGFmdGVyIGNo
YW5nZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0UGxheWxpc3QpOiBQbGF5
bGlzdCBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnNldEFjdGlvbkhh
bmRsZXIpOiBDYWxsIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNlcnZlcnMuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUpOiBDYWxsIG5vdGlmeVBvc2l0aW9u
U3RhdGVPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Om1ldGFkYXRh
VXBkYXRlZCk6IENhbGwgbm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcik6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbjo6Zm9yRWFjaE9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycyk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5QWN0aW9uSGFuZGxl
ck9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bm90aWZ5
UmVhZHlTdGF0ZU9ic2VydmVycyk6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6Y29vcmRp
bmF0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpwbGF5bGlzdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmxvZ2dlciBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGw6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsOgor
CisgICAgICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHByb3hpZXMgY2FsbHMgdGhyb3VnaCB0
aGUgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciwKKyAgICAgICAgYW5kIHRoZW4gY2Fs
bHMgdGhlIGVxdWl2YWxlbnQgTWVkaWFTZXNzaW9uIG1ldGhvZGUgaWYgdGhlIHBsYXRmb3JtIGNv
b3JkaW5hdG9yIAorICAgICAgICBpcyBzdWNjZXNzZnVsLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOiBOZXcuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDbGFzc05hbWUpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlk
bDogTmV3LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFT
ZXNzaW9uLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAqIGRvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW46CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TG9nZ2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ2dlclB0ciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsIGNvbnN0KToKKworICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOiBSZWdpc3RlciB0aGUgbW9jawor
ICAgICAgICBtZWRpYSBzZXNzaW9uIGNvb3JkaW5hdG9yIGZvciB0ZXN0aW5nLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6c2Vla1RvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6c2V0VHJhY2spOgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmg6IE5ldy4KKwogMjAyMS0wMy0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlYmFzZWxpbmUgYmluZGluZ3MgdGVz
dHMgYWZ0ZXIgcjI3NDkwNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZWNhYjYz
NjJlMDBhOGMwMzg1MzYxNzRhOTMzMGYxNWUyZTdlOTViOS4uM2JjMzA5NjUwZjZjYmQ5MzM5OTEy
YjE1OWE4MDEyZDYwMjhiZmQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTYz
Miw2ICs2MzIsMTkgQEAgTWVkaWFSZWNvcmRlckVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAg
IGRlZmF1bHQ6IGZhbHNlCiAKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZDoKKyAgdHlw
ZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIkV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24g
Y29vcmRpbmF0b3IgQVBJIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgZXhw
ZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvciBBUEkiCisgIGNvbmRpdGlvbjogRU5B
QkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJL
aXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1
bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIE1lZGlhU2Vz
c2lvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJNZWRpYSBT
ZXNzaW9uIEFQSSIKQEAgLTY0NSw2ICs2NTgsMTkgQEAgTWVkaWFTZXNzaW9uRW5hYmxlZDoKICAg
ICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorTWVkaWFTZXNzaW9uUGxheWxpc3RF
bmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFs
IE1lZGlhU2Vzc2lvbiBwbGF5bGlzdCBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIHBsYXlsaXN0IEFQSSIKKyAgY29uZGl0
aW9uOiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgZGVmYXVsdFZhbHVlOgorICAg
IFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTW9k
ZWxFbGVtZW50RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkhU
TUwgPG1vZGVsPiBlbGVtZW50IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1F
bmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4
IGM3YWRjNGU5ZjM2ODEwY2EzYWM4NGJjNzhjMmI3OWQ4ODRjNjY5NGUuLjMwZDNmOWQzMGJiYzdh
MzFmZjYwZjUzNjBiYmM2MzMxOWI2NGE3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNv
Y29hLmgKQEAgLTMyOCw2ICszMjgsMTQgQEAKICNkZWZpbmUgRU5BQkxFX01FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUFYX0FMTE9XRUQgPj0gMTIwMDAwCisjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fUExB
WUxJU1QpICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VE
ID49IDEyMDAwMAorI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCAxCisjZW5k
aWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAmJiAhUExBVEZPUk0oV0FU
Q0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9O
IDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMTllOWQ0Y2YxZmY2YmE0ZWFlZGNm
YTliNzE4MWY5MTc5ZWUwZmRhLi4zYjFhY2EyMzMzNTFmMTBhYjUwMTRiNDA5MjRjOTU3MDZkNTdh
ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzMxLDEyICszMzEsMTcgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdl
LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAgICAgTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25B
Y3Rpb24uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0
YWlscy5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5k
bGVyLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4
aW4uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGlu
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwKIAog
ICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvQXVkaW9UcmFjaytNZWRpYVNvdXJjZS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDRlNTg4
YTI0OTQ5NzNhNzkwZTE2NWMwYWExNGE0NWFhZDJkOGM4ZGYuLjE2OWIyMWExYjAxMWRlOTM4Mzc0
Y2ZkNWU3NjkyYzJlZjAzOTJkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTczLDEyICsxNzMsMTcgQEAgJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKyQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkFjdGlvbkhhbmRsZXIuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhp
bi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJl
YWR5U3RhdGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0
b3IrTWVkaWFTZXNzaW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNvdXJjZS9B
dWRpb1RyYWNrK01lZGlhU291cmNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNv
dXJjZS9ET01VUkwrTWVkaWFTb3VyY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGY3YTYzOGFhOTM5MDU3ZDczNDgwOTFhYjQy
ODEzOWM5OTRkMGQzMGIuLjcxNmE4YzVhNzI3ZTU5OWNjYWI2NjkxODgwMGM3NzY4NjVlZDc3ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CkBAIC0xMjk4LDYgKzEyOTgsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGEuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYU1ldGFkYXRhSW5pdC5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YUlu
aXQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YU1ldGFkYXRhUGxheWxpc3RNaXhpbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVBvc2l0aW9uU3RhdGUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
UG9zaXRpb25TdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMTMxNiw4ICsxMzE4LDE2IEBAICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkFj
dGlvbkhhbmRsZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvck1peGluLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uY3BwCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4
aW4uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YVNlc3Npb25SZWFkeVN0YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU291cmNlLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW0uY3Bw
CkBAIC0xMzUyLDYgKzEzNjIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vY2tDRE1GYWN0b3J5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb2NrQ0RNRmFjdG9yeS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01vY2tQYWdlT3ZlcmxheS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTW9ja1BhZ2VPdmVybGF5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja1BheW1lbnRBZGRyZXNzLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggM2VkYTEwYThjNjdjODFmMDdjNTVjZTNhOTBjMWQ2MTNmMDkz
ZGJkMS4uNTE4ZWRmMWZkNjQ1NDM4OGY2OGU3NGU3YTIyMmIwYTcxMTEyY2I1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMDcsMTIgKzIwNywxNyBAQCBKU19CSU5ESU5HX0lE
TFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGFQbGF5bGlzdE1peGluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVBvc2l0aW9uU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JNaXhpbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yK01lZGlhU2Vzc2lv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Eb3VibGVSYW5nZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCBlMTBkYWQwN2QzMjU0Y2ExMDkzMWRi
MDY1NzE3ZmFmYTBkZmM5OWIzLi4zNDZiMjdhYmExNzE3MzhjYjQzOWQ0ZjE5MmNlYTkzMDUwNGFm
NDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmNwcApAQCAtOTYsNiArOTYsOSBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFN
ZXRhZGF0YT4+IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
bwogICAgICAgICBtZXRhZGF0YS0+c2V0VGl0bGUoaW5pdC0+dGl0bGUpOwogICAgICAgICBtZXRh
ZGF0YS0+c2V0QXJ0aXN0KGluaXQtPmFydGlzdCk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRBbGJ1
bShpbml0LT5hbGJ1bSk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAg
ICAgIG1ldGFkYXRhLT5zZXRUcmFja0lkZW50aWZpZXIoaW5pdC0+dHJhY2tJZGVudGlmaWVyKTsK
KyNlbmRpZgogICAgICAgICBhdXRvIHBvc3NpYmxlRXhjZXB0aW9uID0gbWV0YWRhdGEtPnNldEFy
dHdvcmsoY29udGV4dCwgV1RGTW92ZShpbml0LT5hcnR3b3JrKSk7CiAgICAgICAgIGlmIChwb3Nz
aWJsZUV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBwb3NzaWJsZUV4Y2VwdGlvbi5leGNlcHRpb24oKSB9OwpAQCAtMTg4LDYgKzE5MSwxNyBA
QCB2b2lkIE1lZGlhTWV0YWRhdGE6OnNldEFydHdvcmtJbWFnZShJbWFnZSogaW1hZ2UpCiAgICAg
bV9hcnR3b3JrSW1hZ2UgPSBpbWFnZTsKIH0KIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQordm9pZCBNZWRpYU1ldGFkYXRhOjpzZXRUcmFja0lkZW50aWZpZXIoY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyKQoreworICAgIGlmIChtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllciA9
PSBpZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21ldGFkYXRhLnRyYWNrSWRl
bnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgbWV0YWRhdGFVcGRhdGVkKCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBNZWRpYU1ldGFkYXRhOjptZXRhZGF0YVVwZGF0ZWQoKQogewogICAgIGlmIChtX3Nl
c3Npb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmgKaW5kZXggYTdiZTc4NTkwMDA5MGVkMTdiY2MzYTk5ZWIxZjFmNzg0Y2ZkNmI1
NC4uMjk2MGI0NGE4NjNiYzgyYjRmOTIzYWNiMzVhNmNlMWIwZDEzODIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaApAQCAt
OTEsNiArOTEsMTEgQEAgcHVibGljOgogCiAgICAgY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRhdGEm
IG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YTsgfQogCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgU3RyaW5nJiB0cmFja0lkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLnRyYWNrSWRlbnRpZmllcjsgfQorICAgIHZvaWQg
c2V0VHJhY2tJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgTWVkaWFNZXRhZGF0YSgpOwogICAgIHZvaWQgc2V0QXJ0d29ya0ltYWdlKEltYWdlKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFk
YXRhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGEuaWRsCmluZGV4IGMyYjU3N2NmNWJiMjI5YzJhNmZiMzE2NzlkM2ZlNTljNzhjZDEyNmQuLmQw
NWYyYjBiNjk0YmM0OGZmYWE3MTM1YTVhZTlmNDBjYTYyZmNkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCkBAIC0z
Myw0ICszMyw4IEBACiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhcnRpc3Q7CiAgICAgYXR0cmli
dXRlIERPTVN0cmluZyBhbGJ1bTsKICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhSW1hZ2U+IGFydHdvcms7CisKKyAg
ICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1N
ZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7
CiB9OworCitNZWRpYU1ldGFkYXRhIGluY2x1ZGVzIE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGlu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFN
ZXRhZGF0YUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGFJbml0LmgKaW5kZXggNjY5ZGVmZmEyZDY5NDA4NWYwOGYxMGRmMWI5MTZlZjQ0ZTg4
NWUwZC4uZDY5MmQyZDk0ODI3NTNmMGFjMGE4NDMyYTQ2MGY5MDE0YTBjZmJhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRh
SW5pdC5oCkBAIC0zNSw2ICszNSw5IEBAIHN0cnVjdCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAgICAg
U3RyaW5nIHRpdGxlOwogICAgIFN0cmluZyBhcnRpc3Q7CiAgICAgU3RyaW5nIGFsYnVtOworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFN0cmluZyB0cmFja0lkZW50aWZp
ZXI7CisjZW5kaWYKICAgICBWZWN0b3I8TWVkaWFJbWFnZT4gYXJ0d29yazsKIAogICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTQzLDI4
ICs0Niw1MSBAQCBzdHJ1Y3QgTWVkaWFNZXRhZGF0YUluaXQgewogCiB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiBpbmxpbmUgdm9pZCBNZWRpYU1ldGFkYXRhSW5pdDo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZSA8PCBhcnRpc3QgPDwgYWxidW0g
PDwgYXJ0d29yazsKKyAgICBlbmNvZGVyIDw8IHRpdGxlIDw8IGFydGlzdCA8PCBhbGJ1bQorI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIDw8IHRyYWNrSWRlbnRpZmllcgor
I2VuZGlmCisgICAgPDwgYXJ0d29yazsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5s
aW5lIE9wdGlvbmFsPE1lZGlhTWV0YWRhdGFJbml0PiBNZWRpYU1ldGFkYXRhSW5pdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgU3RyaW5nIHRpdGxlOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUodGl0bGUpKQorICAgIE9wdGlvbmFsPFN0cmluZz4gdGl0bGU7CisgICAgZGVjb2Rl
ciA+PiB0aXRsZTsKKyAgICBpZiAodGl0bGUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBT
dHJpbmcgYXJ0aXN0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJ0aXN0KSkKKyAgICBPcHRp
b25hbDxTdHJpbmc+IGFydGlzdDsKKyAgICBkZWNvZGVyID4+IGFydGlzdDsKKyAgICBpZiAoIWFy
dGlzdCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIFN0cmluZyBhbGJ1bTsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGFsYnVtKSkKKyAgICBPcHRpb25hbDxTdHJpbmc+IGFsYnVtOworICAg
IGRlY29kZXIgPj4gYWxidW07CisgICAgaWYgKCFhbGJ1bSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIFZlY3RvcjxNZWRpYUltYWdlPiBhcnR3b3JrOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoYXJ0d29yaykpCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgT3B0
aW9uYWw8U3RyaW5nPiB0cmFja0lkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiB0cmFja0lkZW50
aWZpZXI7CisgICAgaWYgKCF0cmFja0lkZW50aWZpZXIpCisgICAgICAgIHJldHVybiB7IH07Cisj
ZW5kaWYKKworICAgIE9wdGlvbmFsPFZlY3RvcjxNZWRpYUltYWdlPj4gYXJ0d29yazsKKyAgICBk
ZWNvZGVyID4+IGFydHdvcms7CisgICAgaWYgKCFhcnR3b3JrKQogICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgcmV0dXJuIE1lZGlhTWV0YWRhdGFJbml0IHsgV1RGTW92ZSh0aXRsZSksIFdURk1v
dmUoYXJ0aXN0KSwgV1RGTW92ZShhbGJ1bSksIFdURk1vdmUoYXJ0d29yaykgfTsKKyAgICByZXR1
cm4geyB7CisgICAgICAgIFdURk1vdmUoKnRpdGxlKSwKKyAgICAgICAgV1RGTW92ZSgqYXJ0aXN0
KSwKKyAgICAgICAgV1RGTW92ZSgqYWxidW0pLAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BM
QVlMSVNUKQorICAgICAgICBXVEZNb3ZlKCp0cmFja0lkZW50aWZpZXIpLAorI2VuZGlmCisgICAg
ICAgIFdURk1vdmUoKmFydHdvcmspCisgICAgfSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwK
aW5kZXggOGIwZjU1Y2YxNGE1ODM4Y2I1NDg5NTY1ZDAyNzJkYWZhZDllMTIzZC4uMGRjOGVmMDA3
YjEwOTUxYjBkNTkxOWViMDMxMjQzNGYzZjY0NDYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbApAQCAt
MzAsNSArMzAsNiBAQAogICAgIERPTVN0cmluZyB0aXRsZSA9ICIiOwogICAgIERPTVN0cmluZyBh
cnRpc3QgPSAiIjsKICAgICBET01TdHJpbmcgYWxidW0gPSAiIjsKKyAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5
bGlzdF0gRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllciA9ICIiOwogICAgIHNlcXVlbmNlPE1lZGlh
SW1hZ2U+IGFydHdvcmsgPSBbXTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2E3MjE1ZDk3OTVjYWE4NTc1N2NlOGEyZjQ1NjlmZjJhYWI3N2VjYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPUVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNULAorICAg
IEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxheWxpc3QsCitdIGludGVyZmFjZSBtaXhp
biBNZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbiB7CisgICAgYXR0cmlidXRlIERPTVN0cmluZyB0
cmFja0lkZW50aWZpZXI7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKaW5kZXggMzJiMDhlMWE3MWRlOTQzMGQxMjIwZTBi
ZTZhMjFjZDhlMmI1NzBhZS4uZThhOWNhZWVhZDQ2MWNiODk2MDdjMzRjMzE4YmEyNGEzYmQ0MDE1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb24uY3BwCkBAIC0yOSw4ICsyOSwxMCBAQAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
KQogCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYU1ldGFkYXRhLmgiCisjaW5jbHVkZSAi
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKIApAQCAtNzYsNyArNzgsMTEgQEAg
UmVmPE1lZGlhU2Vzc2lvbj4gTWVkaWFTZXNzaW9uOjpjcmVhdGUoTmF2aWdhdG9yJiBuYXZpZ2F0
b3IpCiB9CiAKIE1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKE5hdmlnYXRvciYgbmF2aWdhdG9y
KQotICAgIDogbV9uYXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9yKSkKKyAgICA6IENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyKG5hdmlnYXRvci5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CisgICAgLCBtX25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgICwgbV9hc3luY0V2ZW50UXVldWUoTWFpblRo
cmVhZEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUoKnRoaXMpKQorI2VuZGlmCiB7CiAgICAgbV9s
b2dnZXIgPSBtYWtlUmVmUHRyKERvY3VtZW50OjpzaGFyZWRMb2dnZXIoKSk7CiAgICAgbV9sb2dJ
ZGVudGlmaWVyID0gbmV4dExvZ0lkZW50aWZpZXIoKTsKQEAgLTg5LDE1ICs5NSw2NyBAQCBNZWRp
YVNlc3Npb246On5NZWRpYVNlc3Npb24oKSA9IGRlZmF1bHQ7CiB2b2lkIE1lZGlhU2Vzc2lvbjo6
c2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+JiYgbWV0YWRhdGEpCiB7CiAgICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSKTsKLQogICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBt
X21ldGFkYXRhLT5yZXNldE1lZGlhU2Vzc2lvbigpOwogICAgIG1fbWV0YWRhdGEgPSBXVEZNb3Zl
KG1ldGFkYXRhKTsKICAgICBpZiAobV9tZXRhZGF0YSkKICAgICAgICAgbV9tZXRhZGF0YS0+c2V0
TWVkaWFTZXNzaW9uKCp0aGlzKTsKLSAgICBtZXRhZGF0YVVwZGF0ZWQoKTsKKyAgICBub3RpZnlN
ZXRhZGF0YU9ic2VydmVycygpOworfQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCit2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0UmVhZHlTdGF0ZShNZWRpYVNlc3Npb25SZWFk
eVN0YXRlIHN0YXRlKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gc3RhdGUpCisgICAgICAg
IHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgc3RhdGUpOworCisgICAg
bV9yZWFkeVN0YXRlID0gc3RhdGU7CisgICAgbm90aWZ5UmVhZHlTdGF0ZU9ic2VydmVycygpOwog
fQogCit2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0Q29vcmRpbmF0b3IoTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IqIGNvb3JkaW5hdG9yKQoreworICAgIGlmIChtX2Nvb3JkaW5hdG9yID09IGNvb3JkaW5h
dG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwor
CisgICAgaWYgKG1fY29vcmRpbmF0b3IpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldE1lZGlh
U2Vzc2lvbihudWxscHRyKTsKKworICAgIG1fY29vcmRpbmF0b3IgPSBjb29yZGluYXRvcjsKKwor
ICAgIGlmIChtX2Nvb3JkaW5hdG9yKQorICAgICAgICBtX2Nvb3JkaW5hdG9yLT5zZXRNZWRpYVNl
c3Npb24odGhpcyk7CisKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmNvb3JkaW5hdG9yY2hhbmdlRXZlbnQsIEV2ZW50OjpDYW5C
dWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworfQorI2VuZGlmCisKKyNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU2Vz
c2lvbjo6c2V0UGxheWxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVmVjdG9y
PFJlZlB0cjxNZWRpYU1ldGFkYXRhPj4mJiBwbGF5bGlzdCkKK3sKKyAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIpOworCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4gcmVzb2x2ZWRQ
bGF5bGlzdDsKKyAgICByZXNvbHZlZFBsYXlsaXN0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocGxh
eWxpc3Quc2l6ZSgpKTsKKworICAgIGZvciAoYXV0byYgZW50cnkgOiBwbGF5bGlzdCkgeworICAg
ICAgICBhdXRvIHJlc29sdmVkRW50cnkgPSBNZWRpYU1ldGFkYXRhOjpjcmVhdGUoY29udGV4dCwg
eyBlbnRyeS0+bWV0YWRhdGEoKSB9KTsKKyAgICAgICAgaWYgKHJlc29sdmVkRW50cnkuaGFzRXhj
ZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZWRFbnRyeS5yZWxlYXNlRXhjZXB0
aW9uKCk7CisgICAgICAgIAorICAgICAgICByZXNvbHZlZFBsYXlsaXN0LnVuY2hlY2tlZEFwcGVu
ZChyZXNvbHZlZEVudHJ5LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKyAgICB9CisKKyAgICBtX3Bs
YXlsaXN0ID0gV1RGTW92ZShyZXNvbHZlZFBsYXlsaXN0KTsKKworICAgIHJldHVybiB7IH07Cit9
CisjZW5kaWYKKwogdm9pZCBNZWRpYVNlc3Npb246OnNldFBsYXliYWNrU3RhdGUoTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKIHsKICAgICBpZiAobV9wbGF5YmFja1N0YXRlID09IHN0
YXRlKQpAQCAtMTExLDYgKzE2OSw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRQbGF5YmFja1N0
YXRlKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCiAgICAgICAgIG1fdGltZUF0TGFz
dFBvc2l0aW9uVXBkYXRlID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgfQogICAgIG1fcGxh
eWJhY2tTdGF0ZSA9IHN0YXRlOworICAgIG5vdGlmeVBsYXliYWNrU3RhdGVPYnNlcnZlcnMoKTsK
IH0KIAogdm9pZCBNZWRpYVNlc3Npb246OnNldEFjdGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0
aW9uIGFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+JiYgaGFuZGxlcikK
QEAgLTEyOSw3ICsxODgsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0QWN0aW9uSGFuZGxlcihN
ZWRpYVNlc3Npb25BY3Rpb24gYWN0aW9uLCBSZWZQdHI8TWVkaWFTZXNzaQogICAgICAgICBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1vdmVTdXBwb3J0ZWRD
b21tYW5kKHBsYXRmb3JtQ29tbWFuZEZvck1lZGlhU2Vzc2lvbkFjdGlvbihhY3Rpb24pKTsKICAg
ICB9CiAKLSAgICBhY3Rpb25IYW5kbGVyc1VwZGF0ZWQoKTsKKyAgICBub3RpZnlBY3Rpb25IYW5k
bGVyT2JzZXJ2ZXJzKCk7CiB9CiAKIGJvb2wgTWVkaWFTZXNzaW9uOjpoYXNBY3Rpb25IYW5kbGVy
KE1lZGlhU2Vzc2lvbkFjdGlvbiBhY3Rpb24pIGNvbnN0CkBAIC0xNDIsMTIgKzIwMSwxOSBAQCBS
ZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4gTWVkaWFTZXNzaW9uOjpoYW5kbGVyRm9y
QWN0aW9uKE1lZGlhU2Vzc2lvbkFjdAogICAgIHJldHVybiBtX2FjdGlvbkhhbmRsZXJzLmdldChh
Y3Rpb24pOwogfQogCit2b2lkIE1lZGlhU2Vzc2lvbjo6Y2FsbEFjdGlvbkhhbmRsZXIoY29uc3Qg
TWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYgYWN0aW9uRGV0YWlscykKK3sKKyAgICBpZiAoYXV0
byBoYW5kbGVyID0gbV9hY3Rpb25IYW5kbGVycy5nZXQoYWN0aW9uRGV0YWlscy5hY3Rpb24pKQor
ICAgICAgICBoYW5kbGVyLT5oYW5kbGVFdmVudChhY3Rpb25EZXRhaWxzKTsKK30KKwogRXhjZXB0
aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uOjpzZXRQb3NpdGlvblN0YXRlKE9wdGlvbmFsPE1lZGlh
UG9zaXRpb25TdGF0ZT4mJiBzdGF0ZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIp
OwogCiAgICAgaWYgKCFzdGF0ZSkgewogICAgICAgICBtX3Bvc2l0aW9uU3RhdGUgPSBXVEY6Om51
bGxvcHQ7CisgICAgICAgIG5vdGlmeVBvc2l0aW9uU3RhdGVPYnNlcnZlcnMoKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTE2MSw2ICsyMjcsOCBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0
YXRlPiYmCiAgICAgbV9wb3NpdGlvblN0YXRlID0gV1RGTW92ZShzdGF0ZSk7CiAgICAgbV9sYXN0
UmVwb3J0ZWRQb3NpdGlvbiA9IG1fcG9zaXRpb25TdGF0ZS0+cG9zaXRpb247CiAgICAgbV90aW1l
QXRMYXN0UG9zaXRpb25VcGRhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBub3RpZnlQ
b3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCk7CisKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xODUs
MTEgKzI1Myw2NCBAQCBEb2N1bWVudCogTWVkaWFTZXNzaW9uOjpkb2N1bWVudCgpIGNvbnN0CiAK
IHZvaWQgTWVkaWFTZXNzaW9uOjptZXRhZGF0YVVwZGF0ZWQoKQogeworICAgIG5vdGlmeU1ldGFk
YXRhT2JzZXJ2ZXJzKCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjphZGRPYnNlcnZlcihPYnNl
cnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX29i
c2VydmVycy5hZGQob2JzZXJ2ZXIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6cmVtb3ZlT2Jz
ZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKK30KKwordm9pZCBNZWRpYVNlc3Np
b246OmZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JiBhcHBs
eSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGF1dG8gcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpOworICAgIG1fb2JzZXJ2ZXJzLmZvckVhY2goYXBwbHkpOworfQor
Cit2b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5TWV0YWRhdGFPYnNlcnZlcnMoKQoreworICAgIGZv
ckVhY2hPYnNlcnZlcihbdGhpc10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIu
bWV0YWRhdGFDaGFuZ2VkKG1fbWV0YWRhdGEpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vz
c2lvbjo6bm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9ic2Vy
dmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5wb3NpdGlvblN0
YXRlQ2hhbmdlZChtX3Bvc2l0aW9uU3RhdGUpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vz
c2lvbjo6bm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9ic2Vy
dmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5wbGF5YmFja1N0
YXRlQ2hhbmdlZChtX3BsYXliYWNrU3RhdGUpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU2Vz
c2lvbjo6bm90aWZ5QWN0aW9uSGFuZGxlck9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9ic2Vy
dmVyKFtdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLmFjdGlvbkhhbmRsZXJz
Q2hhbmdlZCgpOworICAgIH0pOwogfQogCi12b2lkIE1lZGlhU2Vzc2lvbjo6YWN0aW9uSGFuZGxl
cnNVcGRhdGVkKCkKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKK3ZvaWQg
TWVkaWFTZXNzaW9uOjpub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCkKIHsKKyAgICBmb3JFYWNo
T2JzZXJ2ZXIoW3RoaXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnJlYWR5
U3RhdGVDaGFuZ2VkKG1fcmVhZHlTdGF0ZSk7CisgICAgfSk7CiB9CisjZW5kaWYKIAogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5o
CmluZGV4IDc2NzJlMzJmYzcwNmUzNzgxMTZkNWVmNzM1NDJiMWRjZjNmYWI3NmYuLjhkMDUwN2Nm
MDk5MGZkNTVjNTFjN2QxYTk3ZDhiNWQxOWNkOGMzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBAIC0yNyw2ICsyNyw5IEBA
CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIAorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJHZW5l
cmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkpTTWVkaWFQb3NpdGlvblN0YXRlLmgiCiAjaW5j
bHVkZSAiSlNNZWRpYVNlc3Npb25BY3Rpb24uaCIKICNpbmNsdWRlICJKU01lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGUuaCIKQEAgLTM0LDYgKzM3LDcgQEAKICNpbmNsdWRlICJNZWRpYVNlc3Npb25B
Y3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90
b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTQ0LDM4ICs0OCw5MCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFNZXRh
ZGF0YTsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgTmF2aWdhdG9yOwog
Ci1jbGFzcyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb24+LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNzaW9uPiB7CitjbGFzcyBNZWRpYVNlc3Npb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb24+ICwgcHVibGljIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyICwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFTZXNz
aW9uPiBjcmVhdGUoTmF2aWdhdG9yJik7CiAgICAgfk1lZGlhU2Vzc2lvbigpOwogCiAgICAgTWVk
aWFNZXRhZGF0YSogbWV0YWRhdGEoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmdldCgpOyB9
OwogICAgIHZvaWQgc2V0TWV0YWRhdGEoUmVmUHRyPE1lZGlhTWV0YWRhdGE+JiYpOworICAgIHZv
aWQgbWV0YWRhdGFVcGRhdGVkKCk7CiAKICAgICBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBs
YXliYWNrU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3BsYXliYWNrU3RhdGU7IH07CiAgICAgdm9p
ZCBzZXRQbGF5YmFja1N0YXRlKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOwogCiAgICAgdm9p
ZCBzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vzc2lvbkFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lv
bkFjdGlvbkhhbmRsZXI+JiYpOworCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UG9zaXRpb25T
dGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYpOworICAgIE9wdGlvbmFsPE1lZGlh
UG9zaXRpb25TdGF0ZT4gcG9zaXRpb25TdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb25T
dGF0ZTsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8ZG91YmxlPiBjdXJyZW50UG9z
aXRpb24oKSBjb25zdDsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogICAgIAot
ICAgIHZvaWQgbWV0YWRhdGFVcGRhdGVkKCk7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCisgICAgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9OworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVNl
c3Npb25SZWFkeVN0YXRlKTsKKworICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKiBjb29yZGlu
YXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fY29vcmRpbmF0b3IuZ2V0KCk7IH0KKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldENvb3JkaW5hdG9yKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKik7Cisj
ZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIGNvbnN0IFZl
Y3RvcjxSZWY8TWVkaWFNZXRhZGF0YT4+JiBwbGF5bGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxh
eWxpc3Q7IH0KKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQbGF5bGlzdChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgVmVjdG9yPFJlZlB0cjxNZWRpYU1ldGFkYXRhPj4mJik7CisjZW5kaWYKIAot
ICAgIHZvaWQgYWN0aW9uSGFuZGxlcnNVcGRhdGVkKCk7CiAgICAgYm9vbCBoYXNBY3Rpb25IYW5k
bGVyKE1lZGlhU2Vzc2lvbkFjdGlvbikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRy
PE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+IGhhbmRsZXJGb3JBY3Rpb24oTWVkaWFTZXNzaW9u
QWN0aW9uKSBjb25zdDsKICAgICBib29sIGhhc0FjdGl2ZUFjdGlvbkhhbmRsZXJzKCkgY29uc3Qg
eyByZXR1cm4gIW1fYWN0aW9uSGFuZGxlcnMuaXNFbXB0eSgpOyB9CiAKKyAgICB2b2lkIGNhbGxB
Y3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMmKTsKKworICAgIGNv
bnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4gKm1fbG9nZ2VyLmdldCgpOyB9CisK
KyAgICAvLyBFdmVudFRhcmdldAorICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2lu
ZyBSZWZDb3VudGVkOjpkZXJlZjsKKworICAgIGNsYXNzIE9ic2VydmVyIDogcHVibGljIENhbk1h
a2VXZWFrUHRyPE9ic2VydmVyPiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5PYnNl
cnZlcigpID0gZGVmYXVsdDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFDaGFuZ2Vk
KFJlZlB0cjxNZWRpYU1ldGFkYXRhPikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlv
blN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+KSB7IH0KKyAgICAgICAg
dmlydHVhbCB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGUpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgYWN0aW9uSGFuZGxlcnNDaGFuZ2VkKCkgeyB9
CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICAgICAgdmlydHVh
bCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpIHsgfQorI2Vu
ZGlmCisgICAgfTsKKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CisgICAgdm9pZCBy
ZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlh
U2Vzc2lvbihOYXZpZ2F0b3ImKTsKIAotICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3Qg
eyByZXR1cm4gKm1fbG9nZ2VyLmdldCgpOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQogCisgICAgdm9pZCBmb3JFYWNo
T2JzZXJ2ZXIoY29uc3QgRnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYpOworICAgIHZvaWQgbm90
aWZ5TWV0YWRhdGFPYnNlcnZlcnMoKTsKKyAgICB2b2lkIG5vdGlmeVBvc2l0aW9uU3RhdGVPYnNl
cnZlcnMoKTsKKyAgICB2b2lkIG5vdGlmeVBsYXliYWNrU3RhdGVPYnNlcnZlcnMoKTsKKyAgICB2
b2lkIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNlcnZlcnMoKTsKKyAgICB2b2lkIG5vdGlmeVJlYWR5
U3RhdGVPYnNlcnZlcnMoKTsKKworICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTWVkaWFTZXNzaW9uRXZlbnRUYXJnZXRJ
bnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKworICAgIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwg
eyBkZXJlZigpOyB9CisKICAgICBXZWFrUHRyPE5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAgICAg
UmVmUHRyPE1lZGlhTWV0YWRhdGE+IG1fbWV0YWRhdGE7CiAgICAgTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSBtX3BsYXliYWNrU3RhdGUgeyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25l
IH07CkBAIC04NSw2ICsxNDEsMTggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPE1lZGlhU2Vzc2lv
bkFjdGlvbiwgUmVmUHRyPE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI+LCBXVEY6OkludEhhc2g8
TWVkaWFTZXNzaW9uQWN0aW9uPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVNlc3Np
b25BY3Rpb24+PiBtX2FjdGlvbkhhbmRsZXJzOwogICAgIFJlZlB0cjxjb25zdCBMb2dnZXI+IG1f
bG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKworICAgIFdlYWtIYXNo
U2V0PE9ic2VydmVyPiBtX29ic2VydmVyczsKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NP
T1JESU5BVE9SKQorICAgIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgTWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgfTsKKyAgICBSZWZQdHI8TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I+IG1fY29vcmRpbmF0b3I7CisgICAgVW5pcXVlUmVmPE1haW5UaHJlYWRH
ZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CisjZW5kaWYKKworI2lmIEVOQUJM
RShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFZlY3RvcjxSZWY8TWVkaWFNZXRhZGF0YT4+
IG1fcGxheWxpc3Q7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsCmluZGV4IGRlZDRhNzczOGEyM2Q5
MzFlYjNiMGE2ODJiZTU3M2YwODMyNGQ0MzcuLjYxYTg3NDQyNzRiMjIzOGE2Y2VlZTkwMjhlZmM5
MjI5YzNiYWVkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw5ICsyNiwxMCBAQAogWwogICAgIENvbmRpdGlvbmFs
PU1FRElBX1NFU1NJT04sCiAgICAgRXhwb3NlZD1XaW5kb3csCi0gICAgSW1wbGVtZW50YXRpb25M
YWNrc1ZUYWJsZSwKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNl
IE1lZGlhU2Vzc2lvbiB7CisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGludGVyZmFjZSBN
ZWRpYVNlc3Npb24gOiBFdmVudFRhcmdldAorewogICAgIGF0dHJpYnV0ZSBNZWRpYU1ldGFkYXRh
PyBtZXRhZGF0YTsKIAogICAgIGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBs
YXliYWNrU3RhdGU7CkBAIC0zNywzICszOCw2IEBACiAKICAgICB1bmRlZmluZWQgc2V0UG9zaXRp
b25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0aW9uU3RhdGU/IHN0YXRlID0gbnVsbCk7CiB9Owor
CitNZWRpYVNlc3Npb24gaW5jbHVkZXMgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbjsKK01l
ZGlhU2Vzc2lvbiBpbmNsdWRlcyBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGluOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rp
b24uaAppbmRleCA1Y2I2NDRmZjM2MmRlZDczNzAyYjEzM2YzZjIwYWQ4NjcwYjdmZjYxLi45YmM0
ZjAwMTNiNDZiNTJhODFjMDAwNzk3MjJhMzYwMTJmN2NjMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
OSw2ICszOSw3IEBAIGVudW0gY2xhc3MgTWVkaWFTZXNzaW9uQWN0aW9uIHsKICAgICBTa2lwYWQs
CiAgICAgU3RvcCwKICAgICBTZWVrdG8sCisgICAgU2V0dHJhY2ssCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkBAIC01Niw3ICs1Nyw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uPiB7CiAgICAgICAgIFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkFjdGlvbjo6TmV4dHRyYWNrLAogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25B
Y3Rpb246OlNraXBhZCwKICAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0aW9uOjpTdG9w
LAotICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bworICAgICAgICBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywKKyAgICAgICAgV2ViQ29yZTo6TWVk
aWFTZXNzaW9uQWN0aW9uOjpTZXR0cmFjawogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlk
bAppbmRleCA0NjM1ZTY5NzM0ZWRhMTlkYzJhN2NhZWQ5YTVmYzcxMDc0NTk4Y2Q0Li44Zjc2NWY2
NGUzZGFjYmU3MTcxM2E0Zjg2YmI5YmEyYWI4MmY0M2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzUsNCArMzUsNyBAQAogICAgICJza2lwYWQiLAogICAgICJzdG9wIiwKICAgICAic2Vla3RvIgor
I2lmIGRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1QpICYmIEVOQUJMRV9NRURJ
QV9TRVNTSU9OX1BMQVlMSVNUCisgICAgLCAic2V0dHJhY2siCisjZW5kaWYKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rp
b25EZXRhaWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmgKaW5kZXggNjQxZWE3MjRhY2E2NzA1ZDczNTA3ZTI4NzFjNTE3
NDE3OTY5NmQ3Yy4uZjU5MDlkNDZmOGVhYzY2ZDBmM2M5ZGQ3ZTc1MzJlMzYwNDY4ZDZhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
QWN0aW9uRGV0YWlscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw5IEBAIHN0cnVjdCBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzIHsKICAgICBPcHRpb25hbDxkb3VibGU+IHNlZWtPZmZzZXQ7CiAg
ICAgT3B0aW9uYWw8ZG91YmxlPiBzZWVrVGltZTsKICAgICBPcHRpb25hbDxib29sPiBmYXN0U2Vl
azsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBTdHJpbmcgdHJhY2tJ
ZGVudGlmaWVyOworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMu
aWRsCmluZGV4IDFhMWVmN2FlNzY1YWUwMmYyMWUzMjMyYTEzNjRhOTZhMWFkZjE1NDcuLjJkOGM2
MDczN2M2ZDY3ZmQxMjVlMTNlOTE2OThlY2ZhODAyNmMwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFj
dGlvbkRldGFpbHMuaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMyLDQgKzMyLDYgQEAKICAgICBkb3VibGU/IHNlZWtPZmZzZXQ7CiAg
ICAgZG91YmxlPyBzZWVrVGltZTsKICAgICBib29sZWFuPyBmYXN0U2VlazsKKworICAgIFtDb25k
aXRpb25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vz
c2lvblBsYXlsaXN0XSBET01TdHJpbmc/IHRyYWNrSWRlbnRpZmllcjsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRmNGU5MjE1NWYxYWMwMTVlNmM1MTc0ZDRi
ZWY2NDgxZTU5MzU2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDI0MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbi5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3Qgdm9pZCogbmV4dENvb3JkaW5hdG9yTG9nSWRl
bnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIgPSBjcnlwdG9n
cmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNv
bnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitSZWY8TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I+IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I+JiYgcGxhdGZvcm1Db29yZGluYXRvcikKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBNZWRpYVNlc3Npb25Db29yZGluYXRvcihXVEZNb3ZlKHBsYXRmb3JtQ29v
cmRpbmF0b3IpKSk7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25D
b29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJiBwbGF0Zm9y
bUNvb3JkaW5hdG9yKQorICAgIDogbV9wbGF0Zm9ybUNvb3JkaW5hdG9yKFdURk1vdmUocGxhdGZv
cm1Db29yZGluYXRvcikpCisgICAgLCBtX2xvZ2dlcihtYWtlUmVmKERvY3VtZW50OjpzaGFyZWRM
b2dnZXIoKSkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIobmV4dENvb3JkaW5hdG9yTG9nSWRlbnRp
ZmllcigpKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBtX3BsYXRm
b3JtQ29vcmRpbmF0b3ItPnNldExvZ2dlcihtX2xvZ2dlci5jb3B5UmVmKCksIG1fbG9nSWRlbnRp
Zmllcik7Cit9CisKK01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtU
byhkb3VibGUgdGltZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAg
ICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRp
ZmllciwgdGltZSk7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0co
aWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+c2Vla1RvKHRpbWUsIFt0aW1lLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAg
ICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5l
bCgpLCBpZGVudGlmaWVyLCAiY29vcmRpbmF0b3Iuc2Vla1RvIGZhaWxlZCEiKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFp
bHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9uOjpT
ZWVrdG8sCisgICAgICAgICAgICAuc2Vla1RpbWUgPSB0aW1lLAorICAgICAgICB9OworICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOwor
CisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlz
bid0IGEgcmVnaXN0ZXJlZCAnc2Vla1RvJyBhY3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlk
ZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisK
KyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1l
ZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1f
cGxhdGZvcm1Db29yZGluYXRvci0+cGxheShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRo
aXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXByb3RlY3RlZFRo
aXMtPm1fc2Vzc2lvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZN
b3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmxvZ2dlcigpLmVy
cm9yKHByb3RlY3RlZFRoaXMtPmxvZ0NoYW5uZWwoKSwgaWRlbnRpZmllciwgImNvb3JkaW5hdG9y
LnBsYXkgZmFpbGVkISIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rp
b24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlBsYXksCisgICAgICAgIH07CisgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICAg
ICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSBy
ZWdpc3RlcmVkICdwbGF5JyBhY3Rpb24gaGFuZGxlcj8KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZl
KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0byBpZGVudGlmaWVy
ID0gTE9HSURFTlRJRklFUjsKKyAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIpOworCisgICAgaWYg
KCFtX3Nlc3Npb24pIHsKKyAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICJNZWRpYVNlc3Np
b24gaXMgTlVMTCEiKTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3Jt
Q29vcmRpbmF0b3ItPnBhdXNlKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlk
ZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9u
PiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9z
ZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4
Y2VwdGlvbikpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJv
dGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBpZGVudGlmaWVyLCAiY29vcmRpbmF0b3IucGF1c2Ug
ZmFpbGVkISIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVk
aWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBN
ZWRpYVNlc3Npb25BY3Rpb246OlBhdXNlLAorICAgICAgICB9OworICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMpOworCisgICAgICAgIC8v
IEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0
ZXJlZCAncGF1c2UnIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsK
KyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29u
c3QgU3RyaW5nJiB0cmFjaywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sK
KyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0coaWRl
bnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICBFUlJPUl9MT0coaWRl
bnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxMISIpOworICAgICAgICBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+c2V0VHJhY2sodHJhY2ssIFt0cmFjaywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFi
bGUgeworICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgeworICAgICAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Cisg
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPmxvZ2dlcigpLmVycm9yKHByb3RlY3RlZFRoaXMtPmxvZ0NoYW5u
ZWwoKSwgaWRlbnRpZmllciwgImNvb3JkaW5hdG9yLnNldFRyYWNrIGZhaWxlZCEiKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIE1lZGlhU2Vzc2lvbkFjdGlvbkRl
dGFpbHMgZGV0YWlscyB7CisgICAgICAgICAgICAuYWN0aW9uID0gTWVkaWFTZXNzaW9uQWN0aW9u
OjpTZXR0cmFjaywKKyAgICAgICAgICAgIC50cmFja0lkZW50aWZpZXIgPSB0cmFjaywKKyAgICAg
ICAgfTsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxl
cihkZXRhaWxzKTsKKworICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVj
dCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3NldFRyYWNrJyBhY3Rpb24gaGFuZGxlcj8K
KyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24qIHNlc3Npb24pCit7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBtX3Nlc3Npb24gPSBtYWtlV2Vh
a1B0cihzZXNzaW9uKTsKKworICAgIGlmIChtX3Nlc3Npb24pCisgICAgICAgIG1fc2Vzc2lvbi0+
YWRkT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpw
b3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+IHN0YXRlKQor
eworICAgIGlmICghc3RhdGUpIHsKKyAgICAgICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3Np
dGlvblN0YXRlQ2hhbmdlZCh7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9w
bGF0Zm9ybUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVBvc2l0aW9uU3RhdGUgeyBzdGF0ZS0+ZHVyYXRpb24sIHN0
YXRlLT5wbGF5YmFja1JhdGUsIHN0YXRlLT5wb3NpdGlvbiB9KTsKK30KKwordm9pZCBNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGU6Ok5vbmUpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSBpcyBub3QgUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9u
ZSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4o
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlOjpQYXVzZWQpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkIGlzIG5vdCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
OjpQYXVzZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlpbmcpID09IHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGU6OlBsYXlpbmcpLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWlu
ZyBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZTo6UGxheWluZyBhcyBleHBlY3RlZCIpOworCisgICAgbV9wbGF0Zm9ybUNvb3Jk
aW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChzdGF0aWNfY2FzdDxQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlPihzdGF0ZSkpOworfQor
Cit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNl
c3Npb25SZWFkeVN0YXRlIHN0YXRlKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcpID09IHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lv
blJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVO
b3RoaW5nIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlTm90aGluZyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3Nl
cnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFk
YXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEpLCAiTWVkaWFTZXNzaW9u
UmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEgYXMgZXhwZWN0ZWQi
KTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1
cnJlbnREYXRhKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSBpcyBu
b3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZUN1cnJlbnREYXRhIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSkg
PT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEpLCAiTWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhIGFzIGV4cGVjdGVk
Iik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVu
b3VnaERhdGEpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEgaXMgbm90
IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVFbm91Z2hEYXRhIGFzIGV4cGVjdGVkIik7CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0
b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRpY19jYXN0PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU+KHN0YXRlKSk7Cit9CisKK1dURkxvZ0No
YW5uZWwmIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkKK3sKKyAgICByZXR1
cm4gTG9nTWVkaWE7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NP
T1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ3Y2VjODgw
YjM1M2Y0NmJjYmQ4NzBmZjVkYmMxOTJjOTk5N2M5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgK
QEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+Cisj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNl
RGVmZXJyZWQ7CisKK2NsYXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CitjbGFz
cyBNZWRpYVNlc3Npb247CisKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGlj
IFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+LCBwdWJsaWMgTWVkaWFTZXNzaW9u
OjpPYnNlcnZlciB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRp
YVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRlKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Io
KTsKKworICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYp
OworICAgIHZvaWQgcGxheShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBw
YXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBzZXRUcmFjayhjb25z
dCBTdHJpbmcmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisKKyAgICB2b2lkIHNldE1l
ZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24qKTsKKworICAgIC8vIE1lZGlhU2Vzc2lvbjo6T2JzZXJ2
ZXIKKyAgICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25T
dGF0ZT4pIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZSkgZmluYWw7CisgICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNl
c3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBNZWRpYVNl
c3Npb25Db29yZGluYXRvcihSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4mJik7
CisKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nZ2VyOyB9
CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRl
bnRpZmllcjsgfQorICAgIHN0YXRpYyBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCk7CisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIHsgcmV0dXJuICJNZWRpYVNlc3Npb25D
b29yZGluYXRvciI7IH0KKworICAgIFdlYWtQdHI8TWVkaWFTZXNzaW9uPiBtX3Nlc3Npb247Cisg
ICAgUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fcGxhdGZvcm1Db29yZGlu
YXRvcjsKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBt
X2xvZ0lkZW50aWZpZXI7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+PiBtX3NlZWtUb1Byb21pc2U7CisgICAgc3RkOjp1bmlxdWVfcHRyPERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPj4gbV9wbGF5UHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+PiBtX3BhdXNlUHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+PiBtX3NldFRyYWNrUHJvbWlzZTsKK307CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMDVhYjg5MGVhMTgyNmQwZmU3MTMwYjVkMzJi
NDJkN2I0NjIzZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKQEAgLTAsMCArMSwzNiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
LAorICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IsCisgICAgRXhw
b3NlZD1XaW5kb3csCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCitdIGludGVyZmFj
ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvciB7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNlZWtU
byh1bnJlc3RyaWN0ZWQgZG91YmxlIHRpbWUpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBwbGF5
KCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBhdXNlKCk7CisgICAgUHJvbWlzZTx1bmRlZmlu
ZWQ+IHNldFRyYWNrKERPTVN0cmluZyB0cmFja0lkZW50aWZpZXIpOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yTWl4aW4uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE0OGVjOGY4OTYyNjVmYjY1
MWJmY2IxMWFhMDE4YjI1YWJkYzc1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCkBA
IC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9RU5BQkxFX01F
RElBX1NFU1NJT05fQ09PUkRJTkFUT1IsCisgICAgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Np
b25Db29yZGluYXRvciwKK10gaW50ZXJmYWNlIG1peGluIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
TWl4aW4geworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvcj8g
Y29vcmRpbmF0b3I7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmNvb3JkaW5hdG9yY2hh
bmdlOworICAgIGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHJlYWR5U3RhdGU7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oCmluZGV4IGQ0YWRiZDU0MTc5NGU1YTEwOTVi
ZTU0YTIzYmIzZWI5ZWJlNzQ3NTYuLjcwNjNjNzhlM2Q3OGJmYWQzODhkZjMwOTQ1NGE5Y2Y3YTM1
NGQyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgKQEAgLTI5LDcgKzI5LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIE1lZGlhU2Vzc2lvblBsYXliYWNr
U3RhdGUgeworZW51bSBjbGFzcyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIDogdWludDhfdCB7
CiAgICAgTm9uZSwKICAgICBQYXVzZWQsCiAgICAgUGxheWluZywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4u
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxh
eWxpc3RNaXhpbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmVjNGI5NTdhNWQ1MWU2Y2M3NDEzZjc4Y2Q4ZWI5
NGEyMDlmMWYyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsCkBAIC0wLDAgKzEsMzEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9RU5BQkxFX01FRElBX1NFU1NJT05fUExB
WUxJU1QsCisgICAgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdCwKK10gaW50
ZXJmYWNlIG1peGluIE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4geworICAgIFtTZXR0ZXJDYWxs
V2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8TWVkaWFN
ZXRhZGF0YT4gcGxheWxpc3Q7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY0NTIzZGQ1NGE3MWU2NjU0YTE3YmIwYzc3NGY3ODgxNjMzN2Y0NjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFk
eVN0YXRlLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZW51bSBjbGFzcyBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIDogdWludDhfdCB7CisgICAg
SGF2ZU5vdGhpbmcsCisgICAgSGF2ZU1ldGFkYXRhLAorICAgIEhhdmVDdXJyZW50RGF0YSwKKyAg
ICBIYXZlRnV0dXJlRGF0YSwKKyAgICBIYXZlRW5vdWdoRGF0YSwKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTczZjJhYTU0Yzg2OGYz
YjQ2NWY5YjU1ZTYxOTA1ZDVlYzRiOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwKQEAgLTAs
MCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SLAorXSBlbnVtIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgeworICAgICJoYXZl
Tm90aGluZyIsCisgICAgImhhdmVNZXRhZGF0YSIsCisgICAgImhhdmVDdXJyZW50RGF0YSIsCisg
ICAgImhhdmVGdXR1cmVEYXRhIiwKKyAgICAiaGF2ZUVub3VnaERhdGEiCit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRp
YVNlc3Npb24uaAppbmRleCAwNDIxOTYxN2MyMzg2OTMwMTA4YTY4NjBiMjEwMTI2OWNlNTM2ODll
Li43ZDJiZjMwNjhiZjU2N2MxYzZmOGEzYzJlODk1NGZhYWI0ZDIzM2QzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRp
YVNlc3Npb24uaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgTmF2aWdh
dG9yTWVkaWFTZXNzaW9uKE5hdmlnYXRvciYpOwogICAgIH5OYXZpZ2F0b3JNZWRpYVNlc3Npb24o
KTsKIAotICAgIHN0YXRpYyBNZWRpYVNlc3Npb24mIG1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oTmF2
aWdhdG9yJik7CiAgICAgTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oKTsKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggNGI0MTVlOWZjYmQ0YjhkODY3ZGY1ZGE3ZTdjNjEzM2Y5YjE5NDBl
Yy4uYTc1YTJmMzM1ZGRhNTU3MzI4NDNkYWIwMGE2MzE4OTg0Yjg0NGE2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKQEAgLTEzMSw2ICsxMzEsNyBAQCBNb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL01lZGlhQ2Fw
YWJpbGl0aWVzLmNwcAogTW9kdWxlcy9tZWRpYWNhcGFiaWxpdGllcy9OYXZpZ2F0b3JNZWRpYUNh
cGFiaWxpdGllcy5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuY3BwCiBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCitNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKIE1vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmln
YXRvck1lZGlhU2Vzc2lvbi5jcHAKIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xz
SG9zdC5jcHAKIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9CbG9iRXZlbnQuY3BwCkBAIC0xOTk4LDYg
KzE5OTksNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
UGF0aFRyYXZlcnNhbFN0YXRlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1UaW1lUmFuZ2VzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwCkBAIC0zMjI2LDYg
KzMyMjgsNyBAQCBKU01lZGlhS2V5cy5jcHAKIEpTTWVkaWFLZXlzUmVxdWlyZW1lbnQuY3BwCiBK
U01lZGlhTGlzdC5jcHAKIEpTTWVkaWFNZXRhZGF0YS5jcHAKK0pTTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwCiBKU01lZGlhTWV0YWRhdGFJbml0LmNwcAogSlNNZWRpYVBvc2l0aW9uU3RhdGUu
Y3BwCiBKU01lZGlhUXVlcnlMaXN0LmNwcApAQCAtMzIzNiw2ICszMjM5LDcgQEAgSlNNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmNwcAogSlNNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmNwcAog
SlNNZWRpYVNlc3Npb25BY3Rpb24uY3BwCiBKU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuY3Bw
CitKU01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuY3BwCiBKU01lZGlhU2Vzc2lvbi5jcHAKIEpTTWVk
aWFTb3VyY2UuY3BwCiBKU01lZGlhU3RyZWFtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVjYWU1MDAzNGVhYTJjNjZjYWI2
Y2YyNzJiYjcwMWZkOThiODQ0MjUuLjY1ODQ5ODE1OGFmYmU4Mjc0ZmUxZTQyMjMwMzQ3OGM0MDgy
NWJjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTkwLDYgKzkwLDcgQEAKIAkJMDcwNzU2RDQxNDIzOUE0RjAwNDE0MTYxIC8q
IEpTSFRNTFRyYWNrRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcwNzU2RDIxNDIzOUE0RTAwNDE0MTYxIC8qIEpTSFRNTFRyYWNrRWxlbWVu
dC5oICovOyB9OwogCQkwNzA3NTZERTE0MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkQ4
MTQyMzlCNEIwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZS5oICovOyB9OwogCQkwNzA3NTZFMDE0
MjM5QjRFMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA3NTZEQTE0MjM5QjRFMDA0MTQxNjEgLyog
SlNUZXh0VHJhY2tDdWVMaXN0LmggKi87IH07CisJCTA3MDhGMkI2MjVEREU0NUQwMDRGOTA4NiAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyogUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovOyB9OwogCQkwNzA5RDc4RjFBRTU1NTU0
MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwOUQ3OEQxQUU1NTU1NDAwNEU0MkY4IC8qIFdl
Yk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzA5RDc5MjFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNz
aW9uTWFuYWdlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYy5jcHAgKi87IH07CiAJCTA3MDlENzkzMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNl
c3Npb25NYW5hZ2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzA5RDc5MTFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0xMjMsNiArMTI0LDcgQEAKIAkJMDczQTE1NTQyMTc3QTQyNjAwRUEwOEYyIC8qIFJlbW90ZVZp
ZGVvU2FtcGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzNCODc2NzFFNDM4
NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyog
QXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxl
RGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NDBCMTQ0
MjVERTMxRjgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0MEIxNDMyNURFMzFB
OTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi87IH07CiAJCTA3
NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU4MkI5MThBNjlGMEUwMDdF
RjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUwMzNBODI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9Q
bGF5YmFja1F1YWxpdHlNZXRyaWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzUwMzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1
YWxpdHlNZXRyaWNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4
OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovOyB9OwpAQCAtNTY5Miw2ICs1Njk0
LDcgQEAKIAkJMDcwNzU2RDgxNDIzOUI0QjAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDc1NkQ5MTQyMzlCNEMwMDQxNDE2MSAvKiBKU1RleHRU
cmFja0N1ZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNU
ZXh0VHJhY2tDdWVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwNzU2
REExNDIzOUI0RTAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1RleHRUcmFja0N1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMDcwOEYyQjQyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzA5RDc4QzFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcwOUQ3OEQxQUU1NTU1
NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzA5RDc5MDFBRTU1NTdFMDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9u
TWFuYWdlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU3ODMsNiArNTc4NiwxNCBAQAogCQkwNzJBRTFFMzE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tU
aW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFF1aWNrVGlt
ZVBsdWdpblJlcGxhY2VtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcy
QUUxRTQxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkNBODYwMTZDQjRE
QzMwMDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDMyNURDNkJEMzAwQTEzNTBFIC8q
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MkRCQzA1MjVEQzZC
RDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTA3MkRCQzA2MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDcyNURDNkVEQTAwQTEzNTBFIC8qIEpTTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzZCNzMw
MjYwOTRBMzcwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMDczNkI3MzIyNjA5NTU1NDAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvblBsYXlsaXN0
TWl4aW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNzM2QjczMzI2MEE3QjY0MDBFMDY5OTQgLyogTWVkaWFNZXRh
ZGF0YVBsYXlsaXN0TWl4aW4uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczNzk0REMxOUVFMkM1MjAwRTVBMDQ1
IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSVENPZmZlckFuc3dlck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDczNzk0RTMxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ0NvbmZpZ3VyYXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTRFNDE5RUUyRkYyMDBFNUEwNDUg
LyogSlNSVENDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTUlRDQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTgw
NCw2ICs1ODE1LDEwIEBACiAJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1w
bGVCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY0MUU0
Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1NhbXBsZURhdGFTb3VyY2UubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRp
b1NhbXBsZURhdGFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVk
aW9TYW1wbGVEYXRhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDBC
MTQxMjVERTMxQTgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA3NDBCMTQzMjVERTMxQTkwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0NDcxRkQyNUUx
ODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3NDRFQ0VCMUUwQzRBRTUwMDBEMDk0NCAvKiBNb2NrQXVkaW9TaGFyZWRVbml0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tBdWRpb1NoYXJlZFVuaXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NEVDRUMxRTBDNEFFNTAwMEQwOTQ0IC8qIE1v
Y2tBdWRpb1NoYXJlZFVuaXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBNb2NrQXVkaW9TaGFyZWRVbml0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzQ2RDMwQTIxNDZFQTM3MDAzRERGODQgLyogSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEltYWdlVHJhbnNmZXJTZXNz
aW9uVlQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTIwLDYgKzU5MzUsNyBA
QAogCQkwN0UxMTZCMDE0ODlDOUExMDBFQzVBQ0UgLyogSlNUZXh0VHJhY2tDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0VHJhY2tDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0UxMTcwNjE0ODlFQkVCMDBFQzVBQ0Ug
LyogSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwN0UzREZEMDFBOUU3ODY1MDA3NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXliYWNrVGFyZ2V0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3RTVGMzkyMjVFQUE5MUYwMEE4NTNBRCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwN0U5RTEyRDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluYmFu
ZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwN0U5RTEyRjE4RjYyQjM3MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQ
cml2YXRlQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluYmFu
ZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3RUU3NkU5MUJFOTZEQjAwMEY4OTEzMyAvKiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05Nzk3LDEwICs5
ODEzLDEwIEBACiAJCTZFMEU1NjlBMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0Um91bmRlZFJlY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8q
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNkUyMUM2QzExMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dEdM
Q0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFMjQyQjI2MjMzNTkz
RDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcDsgcGF0aCA9IC4uLy4uLy4u
Ly4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJH
TENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NkUyNDJCMjgyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuaDsgcGF0aCA9IC4u
Ly4uLy4uLy4uLy4uLy4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTZFMjQyQjI5MjMzNTkzRDcwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVF
VEMxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEu
Y3BwOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyNDJCMkEyMzM1OTNEODAwMkNBREQ0IC8qIEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUVUQzEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNXZWJHTENvbXByZXNzZWRU
ZXh0dXJlRVRDMS5oOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vV2ViS2l0QnVpbGQvRGVidWcv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMjQyQjI2MjMzNTkzRDcwMDJDQURENCAvKiBK
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJH
TENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NkUyNDJCMjgyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUyNDJCMjkyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlRVRDMS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFMjQy
QjJBMjMzNTkzRDgwMDJDQURENCAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkUyN0YyNDIyMjk4Q0U0QjAwRjFGNjMyIC8qIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZF
MjdGMjQzMjI5QzlGODQwMEYxRjYzMiAvKiBFeHRlbnNpb25zR0xBTkdMRS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeHRlbnNpb25zR0xBTkdMRS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjdGMjQ0MjI5QzlGOEQwMEYxRjYzMiAvKiBFeHRl
bnNpb25zR0xBTkdMRS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRlbnNp
b25zR0xBTkdMRS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk2MDMsNiArMTk2
MTksOCBAQAogCQkJCTUxMDU4QURBMUQ2NzkyNTcwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZFByb3Zp
ZGVyLmggKi8sCiAJCQkJNDE1N0VCRjkxRTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNDE1N0VCRjgxRTNBQjA2ODAwQUM5RkU5IC8qIE1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oICovLAorCQkJCTA3NDBCMTQzMjVERTMxQTkwMEUz
OERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3NDBCMTQx
MjVERTMxQTgwMEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJ
CQkyRDZGM0U4QTFDMUVDQjFDMDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5LmNwcCAqLywKIAkJ
CQkyRDZGM0U4QjFDMUVDQjFDMDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5LmggKi8sCiAJCQkJ
MkQ2RjNFOEMxQzFFQ0IxQzAwNjFEQkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5pZGwgKi8sCkBAIC0y
NjkxMiw2ICsyNjkzMCw4IEBACiAJCQkJNTUwNjQwQUQyNDA3NTZEQTAwQUFFMDQ1IC8qIFBsYXRm
b3JtSW1hZ2VCdWZmZXJCYWNrZW5kLmggKi8sCiAJCQkJMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2
IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLywKIAkJCQlDRUVGQ0Q3QjE5REIzM0RDMDAzODc2RDcgLyog
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJMDdFNUYzOTIyNUVBQTkxRjAw
QTg1M0FEIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3
MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmggKi8sCiAJCQkJMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8qIFBsYXRmb3JtVGV4dFRyYWNr
LmggKi8sCiAJCQkJMDc0RTgyQjgxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdl
cy5jcHAgKi8sCiAJCQkJMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJh
bmdlcy5oICovLApAQCAtMjgzNTUsNiArMjgzNzUsNyBAQAogCQkJCUNERERFQTJDMjUzOENFMDQw
MEExMzAwQyAvKiBNZWRpYU1ldGFkYXRhLmlkbCAqLywKIAkJCQlDRERERUEzMDI1MzhDRTFFMDBB
MTMwMEMgLyogTWVkaWFNZXRhZGF0YUluaXQuaCAqLywKIAkJCQlDRERERUEyRjI1MzhDRTFFMDBB
MTMwMEMgLyogTWVkaWFNZXRhZGF0YUluaXQuaWRsICovLAorCQkJCTA3MzZCNzMzMjYwQTdCNjQw
MEUwNjk5NCAvKiBNZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwgKi8sCiAJCQkJQ0REREVB
MzQyNTM4Q0U2MjAwQTEzMDBDIC8qIE1lZGlhUG9zaXRpb25TdGF0ZS5oICovLAogCQkJCUNERERF
QTMzMjUzOENFNjIwMEExMzAwQyAvKiBNZWRpYVBvc2l0aW9uU3RhdGUuaWRsICovLAogCQkJCUNE
RERFQTI0MjUzOENEODAwMEExMzAwQyAvKiBNZWRpYVNlc3Npb24uY3BwICovLApAQCAtMjgzNjYs
OCArMjgzODcsMTUgQEAKIAkJCQlDRERERUEzNTI1MzhDRTcwMDBBMTMwMEMgLyogTWVkaWFTZXNz
aW9uQWN0aW9uRGV0YWlscy5pZGwgKi8sCiAJCQkJQ0REREVBM0EyNTM4RTlDMjAwQTEzMDBDIC8q
IE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCAqLywKIAkJCQlDRERERUEzOTI1MzhFOUMyMDBB
MTMwMEMgLyogTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5pZGwgKi8sCisJCQkJMDcyREJDMDUy
NURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJCQkw
NzJEQkMwMzI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywK
KwkJCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aWRsICovLAorCQkJCTA3MzZCNzMwMjYwOTRBMzcwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25Db29y
ZGluYXRvck1peGluLmlkbCAqLywKIAkJCQlDRERERUEyOTI1MzhDRENCMDBBMTMwMEMgLyogTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJCUNERERFQTI4MjUzOENEQ0IwMEExMzAw
QyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbCAqLywKKwkJCQkwNzM2QjczMjI2MDk1
NTU0MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgKi8sCisJCQkJMDc0
NDcxRkQyNUUxODAwNTAwNTRCMjMxIC8qIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCAqLywKKwkJ
CQkwNzQ0NzFGRjI1RTE4MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwg
Ki8sCiAJCQkJQ0REREVBMjUyNTM4Q0RBQjAwQTEzMDBDIC8qIE5hdmlnYXRvcitNZWRpYVNlc3Np
b24uaWRsICovLAogCQkJCUNERERFQTI3MjUzOENEQUIwMEExMzAwQyAvKiBOYXZpZ2F0b3JNZWRp
YVNlc3Npb24uY3BwICovLAogCQkJCUNERERFQTI2MjUzOENEQUIwMEExMzAwQyAvKiBOYXZpZ2F0
b3JNZWRpYVNlc3Npb24uaCAqLywKQEAgLTI4Mzk0LDYgKzI4NDIyLDggQEAKIAkJCQlDRERERUE0
MDI1MzkxMURCMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmggKi8sCiAJ
CQkJQ0REREVBNEQyNTM5MTNCQjAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxl
ci5jcHAgKi8sCiAJCQkJQ0REREVBNEUyNTM5MTNCQzAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9u
QWN0aW9uSGFuZGxlci5oICovLAorCQkJCTA3MkRCQzA3MjVEQzZFREEwMEExMzUwRSAvKiBKU01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKKwkJCQkwNzJEQkMwNjI1REM2RURBMDBBMTM1
MEUgLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovLAogCQkJCUNERERFQTQ2MjUzOTEx
REQwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuY3BwICovLAogCQkJCUNE
RERFQTQyMjUzOTExREMwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCAq
LywKIAkJCSk7CkBAIC0zNDI5MSw2ICszNDMyMSw3IEBACiAJCQkJRjU0NEY3ODkxNUNGQjJBODAw
QUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QzE5
REIzM0RDMDAzODc2RDcgLyogUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwNzBFMDkxOTE4NzVFRUZDMDAzQTFEM0MgLyogUGxhdGZvcm1NZWRpYVNlc3Np
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTA3MDhGMkI2MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0Y5NDQx
NjE4NjREMDQ2MDA1RDMxQ0IgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzVDNDc2OTA5QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTk4OTA1ODE0RTlDMjk5MDBFOEQxOEIgLyogUGxh
dGZvcm1QYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLywKQEAgLTM2MTkyLDYgKzM2MjIzLDcgQEAK
IAkJCQk1MTA1OEFEQjFENjc5MkMxMDA5QTUzOEMgLyogTW9ja0dhbWVwYWQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTEwNThBREQxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkUHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE1N0VCRkExRTNBQjY3OTAwQUM5RkU5IC8qIE1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzQwQjE0
NDI1REUzMUY4MDBFMzhEQkEgLyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJENkYzRTkwMUMxRUNCMjcwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJs
YXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5N0YwNDcxOURENDEzQzAwMUVFOUMzIC8qIE1v
Y2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUFGRURFNzFGOEJG
RjZEMDA4NzAxM0YgLyogTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApp
bmRleCA2MDg4ZTYyMmJkYTVlZDM0YjFhMmYwYzNjZjIyZDVjNDY0YzA2ZjBkLi44NmVhYWEwMGYx
NmJiYjZmNWJmZmE0Yjg5OGFhZjE3OTFhZTM3ODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0xNzEsNiArMTcxLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKE1lZGlhUXVlcnlMaXN0RXZlbnQpIFwKICAgICBt
YWNybyhNZWRpYVJlY29yZGVyKSBcCiAgICAgbWFjcm8oTWVkaWFSZWNvcmRlckVycm9yRXZlbnQp
IFwKKyAgICBtYWNybyhNZWRpYVNlc3Npb25Db29yZGluYXRvcikgXAogICAgIG1hY3JvKE1lZGlh
U291cmNlKSBcCiAgICAgbWFjcm8oTWVkaWFTdHJlYW0pIFwKICAgICBtYWNybyhNZWRpYVN0cmVh
bVRyYWNrKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCAxMzk0NDQzOTgxNDYwOTA5ZWYy
YTBmZTViYzdkNzlhOTliNzJlNTU1Li4yYzY4MDdkY2E2NTdmNjUwMmIyMGY0MWM1YWRhMmVlNjFi
M2YyZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oY29ubmVjdGluZykgXAogICAgIG1hY3JvKGNvbnRl
eHRtZW51KSBcCiAgICAgbWFjcm8oY29udHJvbGxlcmNoYW5nZSkgXAorICAgIG1hY3JvKGNvb3Jk
aW5hdG9yY2hhbmdlKSBcCiAgICAgbWFjcm8oY29weSkgXAogICAgIG1hY3JvKGN1ZWNoYW5nZSkg
XAogICAgIG1hY3JvKGN1dCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3Rvcnku
aW4KaW5kZXggNjk2ZWE5Y2ViZDIxZDE0OWFlYTVlMGJiNjQzN2FjZWZiOGNhMjAzNC4uMWE4MDFm
NDgwOWQ0NTE2ZjUxYjg5NTA4MmRlMDBlYjdjZDljNWFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC0yMyw2ICsyMyw3IEBAIE1lZGlhRGV2aWNlcyBjb25k
aXRpb25hbD1NRURJQV9TVFJFQU0KIE1lZGlhS2V5U2Vzc2lvbiBjb25kaXRpb25hbD1FTkNSWVBU
RURfTUVESUEKIE1lZGlhUXVlcnlMaXN0CiBNZWRpYVJlY29yZGVyIGNvbmRpdGlvbmFsPU1FRElB
X1NUUkVBTQorTWVkaWFTZXNzaW9uIGNvbmRpdGlvbmFsPU1FRElBX1NFU1NJT04KIE1lZGlhU291
cmNlIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQogTWVkaWFTdHJlYW0gY29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNCiBNZWRpYVN0cmVhbVRyYWNrIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaAppbmRleCBjZTFjM2E1NjgyZmYxYjdkYTM5OGY5YzNh
NDQwYTc0OTdkOTMyZjE5Li42NzlmYjljODlkYWE3ODhiYmJmNWE3NTc1ZDljZDIxMTkwNDYyNTY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaApAQCAtNDYsNyArNDYsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChjb25zdCBT
dHJpbmcmIGRhdGEpID0gMDsKIAogICAgIC8vIEhlbHBlciB0byBwb3N0IGNhbGxiYWNrIHRhc2su
Ci0gICAgdm9pZCBzY2hlZHVsZUNhbGxiYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25z
dCBTdHJpbmcmIGRhdGEpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVDYWxsYmFj
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBkYXRhKTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTExNzg1MTEzOTlmNDE1Zjc4MWIzMmFhZWU3NmMxMTNlYjE3ZWJjZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisK
KyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWMg
Y29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVOb3RoaW5nIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NU
UklOR19JTVBMKCJIYXZlTWV0YWRhdGEiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIkhhdmVDdXJyZW50RGF0YSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
SGF2ZUZ1dHVyZURhdGEiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVF
bm91Z2hEYXRhIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXpl
X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU6OkhhdmVOb3RoaW5nKSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIGlz
IG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU6OkhhdmVNZXRhZGF0YSkgPT0gMSwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRh
ZGF0YSBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEpID09IDIsICJNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlQ3VycmVudERhdGEgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEpID09IDMsICJNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSkgPT0gNCwg
Ik1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhIGlzIG5vdCA0IGFzIGV4cGVj
dGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpIDwgV1RGX0FSUkFZ
X0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4o
c3RhdGUpXTsKK30KKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUp
Cit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJOb25lIiksCisgICAgICAgIE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJQYXVzZWQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoIlBsYXlpbmciKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0
PHNpemVfdD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZTo6Tm9uZSksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGlzIG5v
dCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGU6OlBhdXNlZCkgPT0gMSwgIk1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCBpcyBu
b3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlOjpQbGF5aW5nKSA9PSAyLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZyBp
cyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KHN0
YXRlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0
aWNfY2FzdDxzaXplX3Q+KHN0YXRlKV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRp
YVNlc3Npb25Db29yZGluYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMGRjNTFkMmE2ZjgwYWJjOTdhYTYw
N2Q5ZTlhNTEwMTUwZjMyZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTAsMCAr
MSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAi
TG9nZ2luZy5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcigpID0gZGVmYXVsdDsKKworICAgIHVzaW5nIFNlZWtDb21wbGV0ZWRDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT47CisgICAgdmlydHVh
bCB2b2lkIHNlZWtUbyhkb3VibGUsIFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAg
ICB1c2luZyBQbGF5Q29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPEV4Y2VwdGlvbj4mJik+OworICAgIHZpcnR1YWwgdm9pZCBwbGF5KFBsYXlDb21wbGV0
ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2luZyBQYXVzZUNvbXBsZXRlZENhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPjsKKyAgICB2aXJ0
dWFsIHZvaWQgcGF1c2UoUGF1c2VDb21wbGV0ZWRDYWxsYmFjayYmKSA9IDA7CisKKyAgICB1c2lu
ZyBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxFeGNlcHRpb24+JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2soY29uc3QgU3Ry
aW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHZvaWQgc2V0TG9n
Z2VyKGNvbnN0IExvZ2dlciYgbG9nZ2VyLCBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKQorICAg
IHsKKyAgICAgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKGxvZ2dlcik7CisgICAgICAgIG1fbG9n
SWRlbnRpZmllciA9IGxvZ0lkZW50aWZpZXI7CisgICAgfQorCisgICAgc3RydWN0IE1lZGlhUG9z
aXRpb25TdGF0ZSB7CisgICAgICAgIGRvdWJsZSBkdXJhdGlvbiA9IHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKKyAgICAgICAgZG91YmxlIHBsYXliYWNrUmF0ZSA9IDE7
CisgICAgICAgIGRvdWJsZSBwb3NpdGlvbiA9IDA7CisgICAgfTsKKworICAgIGVudW0gY2xhc3Mg
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSA6IHVpbnQ4X3QgeworICAgICAgICBIYXZlTm90aGluZywK
KyAgICAgICAgSGF2ZU1ldGFkYXRhLAorICAgICAgICBIYXZlQ3VycmVudERhdGEsCisgICAgICAg
IEhhdmVGdXR1cmVEYXRhLAorICAgICAgICBIYXZlRW5vdWdoRGF0YSwKKyAgICB9OworCisgICAg
ZW51bSBjbGFzcyBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIDogdWludDhfdCB7CisgICAgICAg
IE5vbmUsCisgICAgICAgIFBhdXNlZCwKKyAgICAgICAgUGxheWluZywKKyAgICB9OworCisgICAg
dmlydHVhbCB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25T
dGF0ZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdl
ZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBleHBs
aWNpdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OworCisgICAg
Y29uc3QgTG9nZ2VyKiBsb2dnZXJQdHIoKSBjb25zdCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsg
fQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2xvZ0lk
ZW50aWZpZXI7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVy
biAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KKyAgICBXVEZMb2dDaGFubmVs
JiBsb2dDaGFubmVsKCkgY29uc3QgeyByZXR1cm4gTG9nTWVkaWE7IH0KKworcHJpdmF0ZToKKyAg
ICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lk
ZW50aWZpZXI7Cit9OworCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSk7CitTdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CisKK30KKworI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDc2MzQwOWY2NjFhMjcxOWRhYmYwOTMzZTBmODlkMmUwMmNlYzY0ZjcuLjc0MmVl
N2RmN2IyOTA3MDBlMDc4ZDRmYzA0NjliYTNlMThhMTE3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTMzNyw2ICszMzcsMTIgQEAKICNpbmNsdWRlIDx3dGYvc3BpL2Rh
cndpbi9TYW5kYm94U1BJLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NP
T1JESU5BVE9SKQorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisjaW5jbHVk
ZSAiTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yTWVk
aWFTZXNzaW9uLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogI2lu
Y2x1ZGUgIkltYWdlRXh0cmFjdGlvblJlc3VsdC5oIgogI2VuZGlmCkBAIC02MTEyLDkgKzYxMTgs
NDAgQEAgdm9pZCBJbnRlcm5hbHM6OmxvYWRBcnR3b3JrSW1hZ2UoU3RyaW5nJiYgdXJsLCBBcnR3
b3JrSW1hZ2VQcm9taXNlJiYgcHJvbWlzZSkKICAgICB9KTsKICAgICBtX2FydHdvcmtMb2FkZXIt
PnJlcXVlc3RJbWFnZVJlc291cmNlKCk7CiB9Ci0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IpCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnJlZ2lz
dGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKK3sKKyAgICBpZiAobV9t
ZWRpYVNlc3Npb25Db29yZGluYXRvcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8q
IGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9j
dW1lbnQtPmRvbVdpbmRvdygpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yIH07CisKKyAgICBpZiAoIWRvY3VtZW50LT5zZXR0aW5ncygpLm1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yIH07CisKKyAgICBhdXRvJiBzZXNzaW9uID0gTmF2aWdhdG9yTWVkaWFTZXNz
aW9uOjptZWRpYVNlc3Npb24oZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5uYXZpZ2F0b3IoKSk7Cisg
ICAgYXV0byBtb2NrID0gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoY29udGV4
dCwgV1RGTW92ZShsaXN0ZW5lcikpOworICAgIG1fbW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
ID0gbW9jay5wdHIoKTsKKyAgICBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShtb2NrLmdldCgpKTsKKyAgICBzZXNzaW9uLnNldENvb3Jk
aW5hdG9yKG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuZ2V0KCkpOworCisgICAgcmV0dXJuIHsg
fTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzZXRNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JDb21tYW5kc1Nob3VsZEZhaWwoYm9vbCBzaG91bGRGYWlsKQoreworICAgIGlm
ICghbV9tb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgbV9tb2NrTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3ItPnNldENvbW1hbmRzU2hvdWxkRmFpbChzaG91bGRGYWlsKTsKKyAgICByZXR1cm4geyB9
OworfQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCiBjb25zdGV4cHIgQVNDSUlM
aXRlcmFsIHN0cmluZyhQYXJ0aWFsT3JkZXJpbmcgb3JkZXJpbmcpCiB7CiAgICAgaWYgKGlzX2x0
KG9yZGVyaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDYwZWNjNDg4YjQz
MjA3N2ViMmUzNjEyYzA2ZmI0ZTk4ZGE2YWQ2NmIuLjIxM2Q4N2NlZjY0YWQ1YWRlNmJhMDI1ODA3
NDgxZTU5ODkwOTc4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTM2LDYg
KzEzNiwxMCBAQCBjbGFzcyBXZWJYUlRlc3Q7CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiBj
bGFzcyBNZWRpYVNlc3Npb247CiBzdHJ1Y3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlsczsKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKK2NsYXNzIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOworY2xhc3MgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOworI2VuZGlmCiAj
ZW5kaWYKIAogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVy
cmVkOwpAQCAtMTA5MywxMCArMTA5NywxNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT04pCiAgICAgRXhjZXB0aW9uT3I8ZG91YmxlPiBjdXJyZW50TWVkaWFTZXNzaW9uUG9zaXRp
b24oY29uc3QgTWVkaWFTZXNzaW9uJik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2VuZE1lZGlh
U2Vzc2lvbkFjdGlvbihNZWRpYVNlc3Npb24mLCBjb25zdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRh
aWxzJik7Ci0gICAgdXNpbmcgQXJ0d29ya0ltYWdlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJl
ZDxJRExJbnRlcmZhY2U8SW1hZ2VEYXRhPj47CisKKyAgICAgICAgdXNpbmcgQXJ0d29ya0ltYWdl
UHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8SW1hZ2VEYXRhPj47CiAg
ICAgdm9pZCBsb2FkQXJ0d29ya0ltYWdlKFN0cmluZyYmLCBBcnR3b3JrSW1hZ2VQcm9taXNlJiYp
OworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisgICAgRXhjZXB0aW9u
T3I8dm9pZD4gcmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJik7CisgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKGJv
b2wpOwogI2VuZGlmCiAKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikKKwogICAgIGVu
dW0gVHJlZVR5cGUgOiB1aW50OF90IHsgVHJlZSwgU2hhZG93SW5jbHVkaW5nVHJlZSwgQ29tcG9z
ZWRUcmVlIH07CiAgICAgU3RyaW5nIHRyZWVPcmRlcihOb2RlJiwgTm9kZSYsIFRyZWVUeXBlKTsK
ICAgICBTdHJpbmcgdHJlZU9yZGVyQm91bmRhcnlQb2ludHMoTm9kZSYgY29udGFpbmVyQSwgdW5z
aWduZWQgb2Zmc2V0QSwgTm9kZSYgY29udGFpbmVyQiwgdW5zaWduZWQgb2Zmc2V0QiwgVHJlZVR5
cGUpOwpAQCAtMTE0MCw2ICsxMTUxLDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQlhSKQog
ICAgIFJlZlB0cjxXZWJYUlRlc3Q+IG1feHJUZXN0OwogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I+IG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CisgICAgUmVmUHRyPE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvcj4gbV9tb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAppbmRleCBlODVlMDhkZjg4Y2Q5NTgwMTlkYmU0NjEzZTM2ZDQ5ZGI4NjExNjgzLi4yYzk0OGIy
MmI3NzE0YzE5NzNmMmMzNGY4MWRlZTcwOGMyMzZjYjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCkBAIC05OTEsNiArOTkxLDkgQEAgZW51bSBUcmVlVHlwZSB7CiAgICAgW0Nv
bmRpdGlvbmFsPU1FRElBX1NFU1NJT05dIHVuZGVmaW5lZCBzZW5kTWVkaWFTZXNzaW9uQWN0aW9u
KE1lZGlhU2Vzc2lvbiBzZXNzaW9uLCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGFjdGlvbkRl
dGFpbHMpOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OXSBQcm9taXNlPEltYWdlRGF0
YT4gbG9hZEFydHdvcmtJbWFnZShET01TdHJpbmcgdXJsKTsKICAgICAKKyAgICBbQ29uZGl0aW9u
YWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gdW5kZWZpbmVkIHJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFN0cmlu
Z0NhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUl0gdW5kZWZpbmVkIHNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRz
U2hvdWxkRmFpbChib29sZWFuIHNob3VsZEZhaWwpOworCiAgICAgRE9NU3RyaW5nIHRyZWVPcmRl
cihOb2RlIGEsIE5vZGUgYiwgb3B0aW9uYWwgVHJlZVR5cGUgdHJlZSA9ICJUcmVlIik7CiAgICAg
RE9NU3RyaW5nIHRyZWVPcmRlckJvdW5kYXJ5UG9pbnRzKE5vZGUgY29udGFpbmVyQSwgdW5zaWdu
ZWQgbG9uZyBvZmZzZXRBLCBOb2RlIGNvbnRhaW5lckIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0Qiwg
b3B0aW9uYWwgVHJlZVR5cGUgdHJlZSA9ICJUcmVlIik7CiAgICAgYm9vbGVhbiByYW5nZUNvbnRh
aW5zTm9kZShBYnN0cmFjdFJhbmdlIHJhbmdlLCBOb2RlIG5vZGUsIG9wdGlvbmFsIFRyZWVUeXBl
IHRyZWUgPSAiVHJlZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNzVmYjYxMzI1MGQ3MWQ3
MTE0NTc2NzQ5NDNhNWMwMTc4NTI5ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKQEAgLTAsMCArMSwxMTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9ja01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUikKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCisjaW5jbHVkZSAiU3RyaW5nQ2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CisjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1VVSUQuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3I+IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY29udGV4
dCwgV1RGTW92ZShsaXN0ZW5lcikpKTsKK30KKworTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmIGxpc3RlbmVyKQorICAgIDogbV9jb250ZXh0
KGNvbnRleHQpCisgICAgLCBtX3N0YXRlQ2hhbmdlTGlzdGVuZXIoV1RGTW92ZShsaXN0ZW5lcikp
Cit7Cit9CisKK09wdGlvbmFsPEV4Y2VwdGlvbj4gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpyZXN1bHQoKSBjb25zdAoreworICAgIGlmIChtX2ZhaWxDb21tYW5kcykKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRv
dWJsZSB0aW1lLCBTZWVrQ29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBTFdB
WVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHRpbWUpOworICAgIG1fY29udGV4dC0+
cG9zdFRhc2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdCgpKTsKKyAg
ICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoUGxheUNv
bXBsZXRlZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJM
RShMT0dJREVOVElGSUVSKTsKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUg
eworICAgICAgICBjYWxsYmFjayhyZXN1bHQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYgY2Fs
bGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKKyAg
ICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjayhy
ZXN1bHQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2smJiBjYWxs
YmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAg
IG1fY29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
IChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNrKHJl
c3VsdCgpKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhUG9zaXRpb25TdGF0ZT4pCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJM
RShMT0dJREVOVElGSUVSKTsKKyAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2Fs
bGJhY2sobV9jb250ZXh0LmdldCgpLCAicG9zaXRpb25TdGF0ZUNoYW5nZWQiKTsKK30KKwordm9p
ZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUpCit7
CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisgICAg
bV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwg
InJlYWR5U3RhdGVDaGFuZ2VkIik7Cit9CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZf
UE9TU0lCTEUoTE9HSURFTlRJRklFUiwgc3RhdGUpOworICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5l
ci0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCksICJwbGF5YmFja1N0YXRlQ2hhbmdl
ZCIpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3MGJiNGNiMGJlOTZmODVmZDQ1NzBlOGUzOTNiNzIzNmZl
OGYyYjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5j
bHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU3RyaW5n
Q2FsbGJhY2s7CisKK2NsYXNzIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciA6IHB1YmxpYyBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
cj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+
JiYpOworCisgICAgdm9pZCBzZXRDb21tYW5kc1Nob3VsZEZhaWwoYm9vbCBzaG91bGRGYWlsKSB7
IG1fZmFpbENvbW1hbmRzID0gc2hvdWxkRmFpbDsgfQorCitwcml2YXRlOgorICAgIE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPFN0cmlu
Z0NhbGxiYWNrPiYmKTsKKworICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgU2Vla0NvbXBsZXRlZENh
bGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcGxheShQbGF5Q29tcGxldGVkQ2FsbGJhY2smJikg
ZmluYWw7CisgICAgdm9pZCBwYXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYpIGZpbmFsOwor
ICAgIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nLCBTZXRUcmFja0NvbXBsZXRlZENhbGxiYWNr
JiYpIGZpbmFsOworCisgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxNZWRp
YVBvc2l0aW9uU3RhdGU+KSBmaW5hbDsKKyAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlh
U2Vzc2lvblJlYWR5U3RhdGUpIGZpbmFsOworICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQo
TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CisKKyAgICBPcHRpb25hbDxFeGNlcHRp
b24+IHJlc3VsdCgpIGNvbnN0OworCisgICAgUmVmPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1f
Y29udGV4dDsKKyAgICBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IG1fc3RhdGVDaGFuZ2VMaXN0ZW5l
cjsKKyAgICBib29sIG1fZmFpbENvbW1hbmRzIHsgZmFsc2UgfTsKK307CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRkNjBmNzI0ODQ3
YWE1MTZiNmZmY2EzNjY1OTgzNDk3YjY2OWNkOTAuLjkxN2QyMDQ0ZTdmYmY4MmFiZjg1Y2RiNTg5
ODU4ZmUwNmNlZGY2ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0xOCAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBF
eHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNTgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzc0NTA4ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcGxhdGZvcm0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBtZWRpYS9tZWRp
YS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBtZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbDogQWRkZWQuCisKIDIw
MjEtMDMtMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQ
VVBdIDIgd2ViIGF1ZGlvIFdQVCB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3Mg
aXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDEwY2YzNmFiYzkzMTA5MmZhYjA3Mzk5
MTU2N2Q5ZTYyMWY4YWM4NS4uNjM4OTAwZWVlZGM5YWYxYTJjMjQ0MTMzZTdhZGUzYjkzNDVjZjEz
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NjM3LDYgKzQ2MzcsNyBAQCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1hZnRlci1pbml0aWFs
LWxheW91dC93cgogIyBDb2NvYS1vbmx5CiBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtaGRyLXN3
aXRjaC5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNhbnBsYXl0aHJvdWdo
LXdlYm0uaHRtbCBbIFNraXAgXQorbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9y
Lmh0bWwgWyBTa2lwIF0KIAogIyBUaGVzZSB0ZXN0cyByZWx5IG9uIHdlYmtpdC10ZXN0LXJ1bm5l
ciBmbGFncyB0aGF0IGFyZW4ndCBpbXBsZW1lbnRlZCBmb3IgRHVtcFJlbmRlclRyZWUsIHNvIHRo
ZXkgd2lsbCBmYWlsIHVuZGVyIGxlZ2FjeSBXZWJLaXQuCiBlZGl0aW5nL3NlbGVjdGlvbi9leHBh
bmRvLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBmZWM2ZDY0Mzg5
ZWRlMWMyMGQ0ZjI2MjM1N2YxMjYyYzcxMWEwMTM1Li43MWRiY2MzOGQzOTE5YmIzYzBiMzYyOGM0
ZDEwZGQyNjQ3OTE1Y2U4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YXNlc3Npb24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xMiwxMCArMTIsMTQg
QEAgUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29va2ll
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmln
YXRvclBsdWdpbnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNs
dWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0CitGQUlMIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9lcXVhbHM6IHByb3Rv
dHlwZSBvZiBzZWxmJ3MgcHJvcGVydHkgIk1lZGlhU2Vzc2lvbiIgaXMgbm90IEZ1bmN0aW9uLnBy
b3RvdHlwZSBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUgY29k
ZV0KK30iIGJ1dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkgeworICAgIFtu
YXRpdmUgY29kZV0KK30iCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0
aAogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lCi1QQVNTIE1lZGlhU2Vz
c2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdAorRkFJTCBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2VxdWFsczog
cHJvdG90eXBlIG9mIE1lZGlhU2Vzc2lvbi5wcm90b3R5cGUgaXMgbm90IE9iamVjdC5wcm90b3R5
cGUgZXhwZWN0ZWQgb2JqZWN0ICJbb2JqZWN0IE9iamVjdF0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2Jq
ZWN0IEV2ZW50VGFyZ2V0XSIKIFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVj
dG9yIiBwcm9wZXJ0eQogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5CiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtZXRhZGF0
YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3Jk
aW5hdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9j
ay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQwNmY0ODJmNDg5YzcyNmY0
NzI4ODBlZTY2NzZmOTI0ZDA1ZTU2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw4MSBAQAorCisqKiBUaGVyZSBzaG91bGQgYmUgbm8gbWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9y
IGluaXRpYWxseS4KK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9y
ID09ICd1bmRlZmluZWQnKSBPSworCisqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uLmNvb3JkaW5h
dG9yY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gaXQgY2hhbmdlcy4KK1JVTihpbnRlcm5hbHMu
cmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY2hhbmdlSGFuZGxlcikpCitFVkVO
VChjb29yZGluYXRvcmNoYW5nZSkKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNv
b3JkaW5hdG9yICE9ICd1bmRlZmluZWQnKSBPSworCisqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGlu
YXRvciBtZXRob2RzIHN1Y2NlZWQsIHByb21pc2VzIHJlc29sdmUgYW5kIG1lZGlhU2Vzc2lvbiBh
Y3Rpb24gaGFuZGxlcnMgYXJlIGNhbGxlZC4KK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5j
b29yZGluYXRvci5wbGF5KCkKK0FDVElPTihwbGF5KQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9
PSAncGxheScpIE9LCisKK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5w
YXVzZSgpCitBQ1RJT04ocGF1c2UpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdwYXVzZScp
IE9LCisKK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrdG8oKQor
QUNUSU9OKHNlZWt0bykKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3NlZWt0bycpIE9LCisK
KyoqIFRlc3QgdGhhdCB3aGVuIGNvb3JkaW5hdG9yIG1ldGhvZHMgc3VjY2VlZCwgcHJvbWlzZXMg
cmVqZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBub3QgY2FsbGVkLgor
VGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKQorRVhQRUNURUQg
KGxhdGVzdEFjdGlvbiA9PSAnJykgT0sKKworVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNv
b3JkaW5hdG9yLnBhdXNlKCkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisKK1Rl
c3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrdG8oKQorRVhQRUNURUQg
KGxhdGVzdEFjdGlvbiA9PSAnJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3Rp
ZmllcyBjb29yZGluYXRvciB3aGVuIHBvc2l0aW9uU3RhdGUgY2hhbmdlcy4KK1JVTihuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnNldFBvc2l0aW9uU3RhdGUoeyBkdXJhdGlvbjogMSwgcGxheWJhY2tS
YXRlOiAxLCBwb3NpdGlvbjogMCB9KSkKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3Bvc2l0
aW9uU3RhdGVDaGFuZ2VkJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmll
cyBjb29yZGluYXRvciB3aGVuIHJlYWR5U3RhdGUgY2hhbmdlcy4KK0VYUEVDVEVEIChuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykgT0sKK1JVTihuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZU1ldGFkYXRhJykKK0VYUEVDVEVE
IChsYXRlc3RDaGFuZ2UgPT0gJ3JlYWR5U3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0YScpIE9LCisKK0VY
UEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0
YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVDdXJy
ZW50RGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcp
IE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZl
Q3VycmVudERhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFk
eVN0YXRlID09ICdoYXZlQ3VycmVudERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Np
b24ucmVhZHlTdGF0ZSA9ICdoYXZlRnV0dXJlRGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdl
ID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRnV0dXJlRGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVGdXR1cmVEYXRhJykgT0sKK1JV
TihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUVub3VnaERhdGEnKQor
RVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNU
RUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUVub3VnaERhdGEn
KSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdo
YXZlRW5vdWdoRGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRl
ID0gJ2hhdmVOb3RoaW5nJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3JlYWR5U3RhdGVD
aGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUg
PT0gJ2hhdmVOb3RoaW5nJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmll
cyBjb29yZGluYXRvciB3aGVuIHBsYXliYWNrU3RhdGUgY2hhbmdlcy4KK0VYUEVDVEVEIChuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSworUlVOKG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICdwYXVzZWQnKQorRVhQRUNURUQgKGxh
dGVzdENoYW5nZSA9PSAncGxheWJhY2tTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKKworRVhQRUNU
RUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sK
K1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAncGxheWluZycpCitF
WFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdwbGF5YmFja1N0YXRlQ2hhbmdlZCcpIE9LCitFWFBF
Q1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwbGF5aW5nJykg
T0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAn
cGxheWluZycpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0g
J25vbmUnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncGxheWJhY2tTdGF0ZUNoYW5nZWQn
KSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAn
bm9uZScpIE9LCisKKworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzgxMTRh
OGI1MzBmNGRkOTljMzExOGQ5YTU3MmZlYjVlNWMxNzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKQEAgLTAs
MCArMSwxMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+
bW9jay1tZWRpYXNlc3Npb24tY29vcmRpbmF0b3I8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIu
Li92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorCisgICAgZnVuY3Rpb24g
Y2hhbmdlSGFuZGxlcihjaGFuZ2UpCisgICAgeworICAgICAgICB3aW5kb3cubGF0ZXN0Q2hhbmdl
ID0gY2hhbmdlOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywg
YXN5bmMgZXZlbnQgPT4geworCisgICAgICAgIHdpbmRvdy5sYXRlc3RBY3Rpb24gPSAnJzsKKyAg
ICAgICAgd2luZG93LmxhdGVzdENoYW5nZSA9ICcnOworCisgICAgICAgIGlmICghd2luZG93Lmlu
dGVybmFscykgeworICAgICAgICAgICAgZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1aXJlcyBJbnRl
cm5hbHMnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0
IGNoYW5nZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIG5h
dmlnYXRvci5tZWRpYVNlc3Npb24uYWRkRXZlbnRMaXN0ZW5lcignY29vcmRpbmF0b3JjaGFuZ2Un
LCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZl
bnQudHlwZX0pYCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNv
bGVXcml0ZSgnKiogVGhlcmUgc2hvdWxkIGJlIG5vIG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciBp
bml0aWFsbHkuJykKKworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Np
b24uY29vcmRpbmF0b3InLCB1bmRlZmluZWQpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbi5jb29yZGlu
YXRvcmNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIGl0IGNoYW5nZXMuJykKKworICAgICAgICBy
dW4oJ2ludGVybmFscy5yZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihjaGFuZ2VI
YW5kbGVyKScpOworCisgICAgICAgIGF3YWl0IGNoYW5nZVByb21pc2U7CisgICAgICAgIAorICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3InLCB1
bmRlZmluZWQsICchPScpOworCisgICAgICAgIFsncGxheScsICdwYXVzZScsICdzZWVrdG8nXS5m
b3JFYWNoKGFjdGlvbiA9PiB7CisgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnNl
dEFjdGlvbkhhbmRsZXIoYWN0aW9uLCBhY3Rpb25EZXRhaWxzID0+IHsKKyAgICAgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoYEFDVElPTigke2FjdGlvbkRldGFpbHMuYWN0aW9ufSlgKTsKKyAgICAg
ICAgICAgICAgICBsYXRlc3RBY3Rpb24gPSBhY3Rpb25EZXRhaWxzLmFjdGlvbjsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBsZXQgdGVzdEFjdGlvbiA9IGFzeW5jIChh
Y3Rpb24sIGZ1bmMsIGZvcmNlRmFpbHVyZSkgPT4geworICAgICAgICAgICAgbGF0ZXN0QWN0aW9u
ID0gJyc7CisKKyAgICAgICAgICAgIGxldCBzdWNjZWVkZWQ7CisgICAgICAgICAgICB0cnkgewor
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LmNvb3JkaW5hdG9yLiR7YWN0aW9ufSgpYCk7CisgICAgICAgICAgICAgICAgYXdhaXQgZnVuYygp
OworICAgICAgICAgICAgICAgIGlmIChmb3JjZUZhaWx1cmUpCisgICAgICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZShgRkFJTDogJHtmdW5jLnRvU3RyaW5nKCl9IHJlc29sdmVkIGJ1dCBzaG91
bGQgaGF2ZSByZWplY3RlZGApOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0
QWN0aW9uJywgYWN0aW9uKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAg
ICAgICAgaWYgKCFmb3JjZUZhaWx1cmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZShgRkFJTDogJHtmdW5jLnRvU3RyaW5nKCl9IHRocmV3ICR7ZXh9YCk7CisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RBY3Rpb24nLCAnJyk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIH07CisKKyAgICAgICAgbGV0IGFj
dGlvbnMgPSBbIAorICAgICAgICAgICAgeyBhY3Rpb246ICdwbGF5JywgZnVuYyA6ICgpID0+IHsg
cmV0dXJuIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpIH0sIH0sCisg
ICAgICAgICAgICB7IGFjdGlvbjogJ3BhdXNlJywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmln
YXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGF1c2UoKSB9LCB9LAorICAgICAgICAgICAg
eyBhY3Rpb246ICdzZWVrdG8nLCBmdW5jIDogKCkgPT4geyByZXR1cm4gbmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5jb29yZGluYXRvci5zZWVrVG8oMTApIH0sIH0sCisgICAgICAgIF07CisKKyAgICAg
ICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQg
d2hlbiBjb29yZGluYXRvciBtZXRob2RzIHN1Y2NlZWQsICBwcm9taXNlcyByZXNvbHZlIGFuZCBt
ZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBjYWxsZWQuJykKKyAgICAgICAgaW50ZXJu
YWxzLnNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChmYWxz
ZSk7CisgICAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKQorICAgICAgICAgICAgYXdh
aXQgdGVzdEFjdGlvbihhY3Rpb24uYWN0aW9uLCBhY3Rpb24uZnVuYywgZmFsc2UpOworCisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBz
dWNjZWVkLCAgcHJvbWlzZXMgcmVqZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJz
IGFyZSBub3QgY2FsbGVkLicpCisgICAgICAgIGludGVybmFscy5zZXRNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JDb21tYW5kc1Nob3VsZEZhaWwodHJ1ZSk7CisgICAgICAgIGZvciAobGV0IGFj
dGlvbiBvZiBhY3Rpb25zKQorICAgICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihhY3Rpb24uYWN0
aW9uLCBhY3Rpb24uZnVuYywgdHJ1ZSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKGAqKiBUZXN0
IHRoYXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcG9zaXRpb25TdGF0
ZSBjaGFuZ2VzLmApCisgICAgICAgIHJ1bignbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3Np
dGlvblN0YXRlKHsgZHVyYXRpb246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSkn
KTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywg
J3Bvc2l0aW9uU3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsKKworICAgICAgICBjb25zb2xlV3Jp
dGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24g
bm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiByZWFkeVN0YXRlIGNoYW5nZXMuJykKKyAgICAgICAg
bGV0IHByZXZpb3VzU3RhdGUgPSAnaGF2ZU5vdGhpbmcnOworICAgICAgICBmb3IgKGxldCBzdGF0
ZSBvZiBbJ2hhdmVNZXRhZGF0YScsICdoYXZlQ3VycmVudERhdGEnLCAnaGF2ZUZ1dHVyZURhdGEn
LCAnaGF2ZUVub3VnaERhdGEnLCAnaGF2ZU5vdGhpbmcnXSkgeworICAgICAgICAgICAgdGVzdEV4
cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBwcmV2aW91c1N0YXRl
KTsKKworICAgICAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7CisgICAgICAgICAgICBydW4oYG5h
dmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICcke3N0YXRlfSdgKTsKKworICAgICAg
ICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3JlYWR5
U3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBzdGF0ZSk7CisgICAgICAgICAgICBw
cmV2aW91c1N0YXRlID0gc3RhdGU7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAg
ICAgICB9OworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lv
biBub3RpZmllcyBjb29yZGluYXRvciB3aGVuIHBsYXliYWNrU3RhdGUgY2hhbmdlcy4nKQorICAg
ICAgICBwcmV2aW91c1N0YXRlID0gJ25vbmUnOworICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBb
J3BhdXNlZCcsICdwbGF5aW5nJywgJ25vbmUnXSkgeworCisgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZScsIHByZXZpb3VzU3RhdGUp
OworCisgICAgICAgICAgICBsYXRlc3RDaGFuZ2UgPSAnJzsKKyAgICAgICAgICAgIHJ1bihgbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJyR7c3RhdGV9J2ApOworCisgICAg
ICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAncGxh
eWJhY2tTdGF0ZUNoYW5nZWQnLCAnPT0nLCAxMDApOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZScsIHN0YXRlKTsKKyAgICAg
ICAgICAgIHByZXZpb3VzU3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgn
Jyk7CisgICAgICAgIH07CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgZW5k
VGVzdCgpOworICAgIH0sIHtvbmNlOiB0cnVlfSk7CisKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424188</attachid>
            <date>2021-03-24 14:46:14 -0700</date>
            <delta_ts>2021-03-24 16:14:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222158-20210324144612.patch</filename>
            <type>text/plain</type>
            <size>120710</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmYzczYWI5YzdiZWUzNDEzMjkxOGE5
NDVhYTQ3NDVkZjM2NDE1ZWUuLmI2YThmYTdiZGNiODBjMmU4NTYyYTY3ZTU2ZWFkMDljM2NmMTIz
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgRXhwZXJpbWVudGFsIE1l
ZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDUwODg2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgKiBTY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMS0wMy0yMyAgU2FhbSBCYXJhdGkgIDxzYmFy
YXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCByZXF1aXJlIFZNX0ZMQUdTX1BFUk1BTkVO
VCBvbiB0aGUgc2ltdWxhdG9yIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ5MWQzOTczOTg1NGFkNmJm
NDZkNGM4ZGRiMmJiYzY2ODhjZWU1YmEuLmI4ODhmMmFjOWQ3ZWYxNjhiYjhmMzRhMWU4MmFjZTE0
ZjRjODMxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTMgQEAKKzIwMjEtMDItMTggIEVyaWMg
Q2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQg
RXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRvcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTU4CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83NDUwODg2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAg
ICAgQWRkIGFuIGV4cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IsIGFuIG9iamVj
dCB0aGF0IHByb3ZpZGVzIGFuIGludGVyZmFjZQorICAgICAgICB0aGF0IGFsbG93cyBzY3JpcHQg
dG8gY29vcmRpbmF0ZSBjaGFuZ2VzIHRvIE1lZGlhU2Vzc2lvbiB3aXRoIHRoZSBVc2VyIEFnZW50
LiBBbHNvCisgICAgICAgIGFkZCBhbiBleHBlcmltZW50YWwgTWVkaWFTZXNzaW9uIHBsYXlsaXN0
IGludGVyZmFjZS4KKworICAgICAgICBUaGUgY2hhbmdlcyBhcmUgYmVoaW5kIG5ldyBleHBlcmlt
ZW50YWwgZmVhdHVyZSBmbGFncywKKyAgICAgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JFbmFi
bGVkIGFuZCBNZWRpYVNlc3Npb25QbGF5bGlzdEVuYWJsZWQuCisKKyAgICAgICAgVGVzdDogbWVk
aWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKKworICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6IEFkZCBuZXcgSURMIGZpbGVzLgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OiBBZGQgbmV3IGRlcml2ZWQgc291cmNl
cy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBBZGQgbmV3IElETC4KKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFNZXRhZGF0YTo6Y3JlYXRlKTogU2V0IHRyYWNrSWRlbnRpZmllciBmcm9tIGlu
aXQgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTWV0YWRhdGE6OnNldFRyYWNrSWRlbnRp
Zmllcik6IHRyYWNrSWRlbnRpZmllciBzZXR0ZXIuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFNZXRhZGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFNZXRhZGF0YTo6
dHJhY2tJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
TWV0YWRhdGFJbml0Lmg6IEFkZCB0cmFja0lkZW50aWZpZXIuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYU1ldGFkYXRhSW5pdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TWV0YWRhdGFJbml0OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhTWV0YWRhdGFJbml0LmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Ok1lZGlhU2Vz
c2lvbik6IEluaXRpYWxpemUgTWFpblRocmVhZEdlbmVyaWNFdmVudFF1ZXVlLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpzZXRNZXRhZGF0YSk6IG1ldGFkYXRhVXBkYXRlZCAtPiBu
b3RpZnlNZXRhZGF0YU9ic2VydmVycy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6
c2V0UmVhZHlTdGF0ZSk6IFNlc3Npb24gcmVhZHlTdGF0ZSBzZXR0ZXIuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb246OnNldENvb3JkaW5hdG9yKTogQ29vcmRpbmF0b3Igc2V0dGVyLiBQ
b3N0ICdjb29yZGluYXRvcmNoYW5nZScKKyAgICAgICAgZXZlbnQgYWZ0ZXIgY2hhbmdlLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpzZXRQbGF5bGlzdCk6IFBsYXlsaXN0IHNldHRl
ci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0QWN0aW9uSGFuZGxlcik6IENh
bGwgbm90aWZ5QWN0aW9uSGFuZGxlck9ic2VydmVycy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbjo6c2V0UG9zaXRpb25TdGF0ZSk6IENhbGwgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2Vy
dmVycy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bWV0YWRhdGFVcGRhdGVkKTog
Q2FsbCBub3RpZnlNZXRhZGF0YU9ic2VydmVycy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbjo6YWRkT2JzZXJ2ZXIpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246
OnJlbW92ZU9ic2VydmVyKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpm
b3JFYWNoT2JzZXJ2ZXIpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246Om5v
dGlmeU1ldGFkYXRhT2JzZXJ2ZXJzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uOjpub3RpZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKTogTmV3LgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uOjpub3RpZnlQbGF5YmFja1N0YXRlT2JzZXJ2ZXJzKTogTmV3LgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpub3RpZnlBY3Rpb25IYW5kbGVyT2JzZXJ2ZXJz
KTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpub3RpZnlSZWFkeVN0YXRl
T2JzZXJ2ZXJzKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpjb29yZGluYXRvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnBsYXlsaXN0IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsOgorCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGw6CisKKyAgICAgICAg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgcHJveGllcyBjYWxscyB0aHJvdWdoIHRoZSBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLAorICAgICAgICBhbmQgdGhlbiBjYWxscyB0aGUgZXF1
aXZhbGVudCBNZWRpYVNlc3Npb24gbWV0aG9kZSBpZiB0aGUgcGxhdGZvcm0gY29vcmRpbmF0b3Ig
CisgICAgICAgIGlzIHN1Y2Nlc3NmdWwuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om5l
eHRDb29yZGluYXRvckxvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnNldFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZXRNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OmxvZ0NoYW5uZWwpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dnZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0lkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NsYXNzTmFtZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsOiBOZXcuCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaDoK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
OgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0
RmFjdG9yeS5pbjoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRMb2dnZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bG9nZ2VyUHRyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0lkZW50aWZpZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6bG9nQ2xhc3NOYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NoYW5uZWwgY29uc3QpOgorCisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZWdpc3Rlck1v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvcik6IFJlZ2lzdGVyIHRoZSBtb2NrCisgICAgICAgIG1l
ZGlhIHNlc3Npb24gY29vcmRpbmF0b3IgZm9yIHRlc3RpbmcuCisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKKyAgICAgICAg
KiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpzZXRUcmFjayk6CisgICAgICAgICogdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaDogTmV3LgorCiAyMDIxLTAzLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmViYXNlbGluZSBiaW5kaW5ncyB0ZXN0cyBhZnRlciBy
Mjc0OTA2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBlY2FiNjM2MmUwMGE4YzAz
ODUzNjE3NGE5MzMwZjE1ZTJlN2U5NWI5Li4zYmMzMDk2NTBmNmNiZDkzMzk5MTJiMTU5YTgwMTJk
NjAyOGJmZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtNjMyLDYgKzYzMiwx
OSBAQCBNZWRpYVJlY29yZGVyRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDog
ZmFsc2UKIAorTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JFbmFibGVkOgorICB0eXBlOiBib29sCisg
IGh1bWFuUmVhZGFibGVOYW1lOiAiRXhwZXJpbWVudGFsIE1lZGlhU2Vzc2lvbiBjb29yZGluYXRv
ciBBUEkiCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBleHBlcmltZW50YWwg
TWVkaWFTZXNzaW9uIGNvb3JkaW5hdG9yIEFQSSIKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToK
KyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UK
KyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTWVkaWFTZXNzaW9uRW5hYmxl
ZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIk1lZGlhIFNlc3Npb24gQVBJ
IgpAQCAtNjQ1LDYgKzY1OCwxOSBAQCBNZWRpYVNlc3Npb25FbmFibGVkOgogICAgIFdlYkNvcmU6
CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYVNlc3Npb25QbGF5bGlzdEVuYWJsZWQ6Cisg
IHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJFeHBlcmltZW50YWwgTWVkaWFTZXNz
aW9uIHBsYXlsaXN0IEFQSSIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGV4
cGVyaW1lbnRhbCBNZWRpYVNlc3Npb24gcGxheWxpc3QgQVBJIgorICBjb25kaXRpb246IEVOQUJM
RShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVn
YWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBm
YWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorCiBNb2RlbEVsZW1lbnRF
bmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiSFRNTCA8bW9kZWw+
IGVsZW1lbnQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggYzdhZGM0ZTlm
MzY4MTBjYTNhYzg0YmM3OGMyYjc5ZDg4NGM2Njk0ZS4uMzBkM2Y5ZDMwYmJjN2EzMWZmNjBmNTM2
MGJiYzYzMzE5YjY0YTdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFi
bGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApAQCAt
MzI4LDYgKzMyOCwxNCBAQAogI2RlZmluZSBFTkFCTEVfTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9N
RU5VUyAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JE
SU5BVE9SKSAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dF
RCA+PSAxMjAwMDAKKyNkZWZpbmUgRU5BQkxFX01FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IgMQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCkgJiYg
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTIwMDAw
CisjZGVmaW5lIEVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNUIDEKKyNlbmRpZgorCiAjaWYg
IWRlZmluZWQoRU5BQkxFX01FRElBX1NFU1NJT04pICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAh
UExBVEZPUk0oQVBQTEVUVikKICNkZWZpbmUgRU5BQkxFX01FRElBX1NFU1NJT04gMQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDExOWU5ZDRjZjFmZjZiYTRlYWVkY2ZhOWI3MTgxZjkx
NzllZTBmZGEuLjNiMWFjYTIzMzM1MWYxMGFiNTAxNGI0MDkyNGM5NTcwNmQ1N2E4MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0zMzEsMTIgKzMzMSwxNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZH
X0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhSW1hZ2UuaWRsCiAgICAg
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKICAgICBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVBvc2l0aW9uU3RhdGUuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwK
ICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbAog
ICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaWRsCisg
ICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCisgICAg
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKICAg
ICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAorICAg
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsCisgICAg
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5pZGwKICAgICBNb2R1
bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3IrTWVkaWFTZXNzaW9uLmlkbAogCiAgICAgTW9kdWxl
cy9tZWRpYXNvdXJjZS9BdWRpb1RyYWNrK01lZGlhU291cmNlLmlkbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNGU1ODhhMjQ5NDk3M2E3
OTBlMTY1YzBhYTE0YTQ1YWFkMmQ4YzhkZi4uMTY5YjIxYTFiMDExZGU5MzgzNzRjZmQ1ZTc2OTJj
MmVmMDM5MmQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CkBAIC0xNzMsMTIgKzE3MywxNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9u
SGFuZGxlci5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaWRsCiskKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbAorJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvcitNZWRpYVNl
c3Npb24uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc291cmNlL0F1ZGlvVHJhY2sr
TWVkaWFTb3VyY2UuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc291cmNlL0RPTVVS
TCtNZWRpYVNvdXJjZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKaW5kZXggZjdhNjM4YWE5MzkwNTdkNzM0ODA5MWFiNDI4MTM5Yzk5NGQw
ZDMwYi4uNzE2YThjNWE3MjdlNTk5Y2NhYjY2OTE4ODAwYzc3Njg2NWVkNzdmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOTgs
NiArMTI5OCw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFNZXRhZGF0YS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFNZXRhZGF0YS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGFJbml0LmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYU1ldGFkYXRhSW5pdC5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTWV0YWRhdGFQ
bGF5bGlzdE1peGluLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhUG9zaXRpb25TdGF0ZS5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFQb3NpdGlvblN0
YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVk
aWFRdWVyeUxpc3QuY3BwCkBAIC0xMzE2LDggKzEzMTgsMTYgQEAgJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxl
ci5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4
aW4uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblJl
YWR5U3RhdGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNvdXJjZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbS5jcHAKQEAgLTEzNTIs
NiArMTM2Miw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTW9ja0NETUZhY3RvcnkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01vY2tDRE1GYWN0b3J5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW9ja1BhZ2VP
dmVybGF5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNb2NrUGFnZU92ZXJsYXkuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNb2NrUGF5bWVudEFkZHJlc3MuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCAzZWRhMTBhOGM2N2M4MWYwN2M1NWNlM2E5MGMxZDYxM2YwOTNkYmQxLi41MThl
ZGYxZmQ2NDU0Mzg4ZjY4ZTc0ZTdhMjIyYjBhNzExMTJjYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTIwNywxMiArMjA3LDE3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdlLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0
TWl4aW4uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUG9z
aXRpb25TdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25BY3Rpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ck1peGluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3IrTWVkaWFTZXNzaW9uLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVh
bVRyYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RvdWJsZVJh
bmdlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYU1ldGFkYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhTWV0YWRhdGEuY3BwCmluZGV4IGUxMGRhZDA3ZDMyNTRjYTEwOTMxZGIwNjU3MTdmYWZh
MGRmYzk5YjMuLjM0NmIyN2FiYTE3MTczOGNiNDM5ZDRmMTkyY2VhOTMwNTA0YWY0OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGEuY3BwCkBAIC05Niw2ICs5Niw5IEBAIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYU1ldGFkYXRhPj4g
TWVkaWFNZXRhZGF0YTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvCiAgICAgICAg
IG1ldGFkYXRhLT5zZXRUaXRsZShpbml0LT50aXRsZSk7CiAgICAgICAgIG1ldGFkYXRhLT5zZXRB
cnRpc3QoaW5pdC0+YXJ0aXN0KTsKICAgICAgICAgbWV0YWRhdGEtPnNldEFsYnVtKGluaXQtPmFs
YnVtKTsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICAgICAgbWV0YWRh
dGEtPnNldFRyYWNrSWRlbnRpZmllcihpbml0LT50cmFja0lkZW50aWZpZXIpOworI2VuZGlmCiAg
ICAgICAgIGF1dG8gcG9zc2libGVFeGNlcHRpb24gPSBtZXRhZGF0YS0+c2V0QXJ0d29yayhjb250
ZXh0LCBXVEZNb3ZlKGluaXQtPmFydHdvcmspKTsKICAgICAgICAgaWYgKHBvc3NpYmxlRXhjZXB0
aW9uLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IHBvc3Np
YmxlRXhjZXB0aW9uLmV4Y2VwdGlvbigpIH07CkBAIC0xODgsNiArMTkxLDE3IEBAIHZvaWQgTWVk
aWFNZXRhZGF0YTo6c2V0QXJ0d29ya0ltYWdlKEltYWdlKiBpbWFnZSkKICAgICBtX2FydHdvcmtJ
bWFnZSA9IGltYWdlOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCit2
b2lkIE1lZGlhTWV0YWRhdGE6OnNldFRyYWNrSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIpCit7CisgICAgaWYgKG1fbWV0YWRhdGEudHJhY2tJZGVudGlmaWVyID09IGlkZW50aWZp
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWV0YWRhdGEudHJhY2tJZGVudGlmaWVyID0g
aWRlbnRpZmllcjsKKyAgICBtZXRhZGF0YVVwZGF0ZWQoKTsKK30KKyNlbmRpZgorCiB2b2lkIE1l
ZGlhTWV0YWRhdGE6Om1ldGFkYXRhVXBkYXRlZCgpCiB7CiAgICAgaWYgKG1fc2Vzc2lvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEu
aAppbmRleCBhN2JlNzg1OTAwMDkwZWQxN2JjYzNhOTllYjFmMWY3ODRjZmQ2YjU0Li4yOTYwYjQ0
YTg2M2JjODJiNGY5MjNhY2IzNWE2Y2UxYjBkMTM4MjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5oCkBAIC05MSw2ICs5MSwx
MSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBNZWRpYVNlc3Npb25NZXRhZGF0YSYgbWV0YWRhdGEo
KSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhOyB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
Tl9QTEFZTElTVCkKKyAgICBjb25zdCBTdHJpbmcmIHRyYWNrSWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fbWV0YWRhdGEudHJhY2tJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRUcmFja0lk
ZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBNZWRpYU1l
dGFkYXRhKCk7CiAgICAgdm9pZCBzZXRBcnR3b3JrSW1hZ2UoSW1hZ2UqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKaW5k
ZXggYzJiNTc3Y2Y1YmIyMjljMmE2ZmIzMTY3OWQzZmU1OWM3OGNkMTI2ZC4uZDA1ZjJiMGI2OTRi
YzQ4ZmZhYTcxMzVhNWFlOWY0MGNhNjJmY2QyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKQEAgLTMzLDQgKzMzLDgg
QEAKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFydGlzdDsKICAgICBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGFsYnVtOwogICAgIFtTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBh
dHRyaWJ1dGUgRnJvemVuQXJyYXk8TWVkaWFJbWFnZT4gYXJ0d29yazsKKworICAgIFtDb25kaXRp
b25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lv
blBsYXlsaXN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllcjsKIH07CisKK01l
ZGlhTWV0YWRhdGEgaW5jbHVkZXMgTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5p
dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUlu
aXQuaAppbmRleCA2NjlkZWZmYTJkNjk0MDg1ZjA4ZjEwZGYxYjkxNmVmNDRlODg1ZTBkLi5kNjky
ZDJkOTQ4Mjc1M2YwYWMwYTg0MzJhNDYwZjkwMTRhMGNmYmFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmgKQEAg
LTM1LDYgKzM1LDkgQEAgc3RydWN0IE1lZGlhTWV0YWRhdGFJbml0IHsKICAgICBTdHJpbmcgdGl0
bGU7CiAgICAgU3RyaW5nIGFydGlzdDsKICAgICBTdHJpbmcgYWxidW07CisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgU3RyaW5nIHRyYWNrSWRlbnRpZmllcjsKKyNlbmRp
ZgogICAgIFZlY3RvcjxNZWRpYUltYWdlPiBhcnR3b3JrOwogCiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwpAQCAtNDMsMjggKzQ2LDUxIEBA
IHN0cnVjdCBNZWRpYU1ldGFkYXRhSW5pdCB7CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IGlu
bGluZSB2b2lkIE1lZGlhTWV0YWRhdGFJbml0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKLSAgICBlbmNvZGVyIDw8IHRpdGxlIDw8IGFydGlzdCA8PCBhbGJ1bSA8PCBhcnR3b3Jr
OworICAgIGVuY29kZXIgPDwgdGl0bGUgPDwgYXJ0aXN0IDw8IGFsYnVtCisjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgPDwgdHJhY2tJZGVudGlmaWVyCisjZW5kaWYKKyAg
ICA8PCBhcnR3b3JrOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBpbmxpbmUgT3B0aW9u
YWw8TWVkaWFNZXRhZGF0YUluaXQ+IE1lZGlhTWV0YWRhdGFJbml0OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKIHsKLSAgICBTdHJpbmcgdGl0bGU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0
aXRsZSkpCisgICAgT3B0aW9uYWw8U3RyaW5nPiB0aXRsZTsKKyAgICBkZWNvZGVyID4+IHRpdGxl
OworICAgIGlmICh0aXRsZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIFN0cmluZyBhcnRp
c3Q7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcnRpc3QpKQorICAgIE9wdGlvbmFsPFN0cmlu
Zz4gYXJ0aXN0OworICAgIGRlY29kZXIgPj4gYXJ0aXN0OworICAgIGlmICghYXJ0aXN0KQogICAg
ICAgICByZXR1cm4geyB9OwogCi0gICAgU3RyaW5nIGFsYnVtOwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYWxidW0pKQorICAgIE9wdGlvbmFsPFN0cmluZz4gYWxidW07CisgICAgZGVjb2RlciA+
PiBhbGJ1bTsKKyAgICBpZiAoIWFsYnVtKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgVmVj
dG9yPE1lZGlhSW1hZ2U+IGFydHdvcms7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcnR3b3Jr
KSkKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKKyAgICBPcHRpb25hbDxTdHJp
bmc+IHRyYWNrSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IHRyYWNrSWRlbnRpZmllcjsKKyAg
ICBpZiAoIXRyYWNrSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKyNlbmRpZgorCisg
ICAgT3B0aW9uYWw8VmVjdG9yPE1lZGlhSW1hZ2U+PiBhcnR3b3JrOworICAgIGRlY29kZXIgPj4g
YXJ0d29yazsKKyAgICBpZiAoIWFydHdvcmspCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBy
ZXR1cm4gTWVkaWFNZXRhZGF0YUluaXQgeyBXVEZNb3ZlKHRpdGxlKSwgV1RGTW92ZShhcnRpc3Qp
LCBXVEZNb3ZlKGFsYnVtKSwgV1RGTW92ZShhcnR3b3JrKSB9OworICAgIHJldHVybiB7IHsKKyAg
ICAgICAgV1RGTW92ZSgqdGl0bGUpLAorICAgICAgICBXVEZNb3ZlKCphcnRpc3QpLAorICAgICAg
ICBXVEZNb3ZlKCphbGJ1bSksCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisg
ICAgICAgIFdURk1vdmUoKnRyYWNrSWRlbnRpZmllciksCisjZW5kaWYKKyAgICAgICAgV1RGTW92
ZSgqYXJ0d29yaykKKyAgICB9IH07CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFJbml0LmlkbAppbmRleCA4YjBm
NTVjZjE0YTU4MzhjYjU0ODk1NjVkMDI3MmRhZmFkOWUxMjNkLi4wZGM4ZWYwMDdiMTA5NTFiMGQ1
OTE5ZWIwMzEyNDM0ZjNmNjQ0NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhSW5pdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YUluaXQuaWRsCkBAIC0zMCw1ICszMCw2
IEBACiAgICAgRE9NU3RyaW5nIHRpdGxlID0gIiI7CiAgICAgRE9NU3RyaW5nIGFydGlzdCA9ICIi
OwogICAgIERPTVN0cmluZyBhbGJ1bSA9ICIiOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNT
SU9OX1BMQVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0XSBET01T
dHJpbmcgdHJhY2tJZGVudGlmaWVyID0gIiI7CiAgICAgc2VxdWVuY2U8TWVkaWFJbWFnZT4gYXJ0
d29yayA9IFtdOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYTcyMTVkOTc5NWNhYTg1NzU3Y2U4YTJmNDU2OWZmMmFhYjc3ZWNjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0
YVBsYXlsaXN0TWl4aW4uaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
Q29uZGl0aW9uYWw9RU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1QsCisgICAgRW5hYmxlZEJ5
U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdCwKK10gaW50ZXJmYWNlIG1peGluIE1lZGlhTWV0
YWRhdGFQbGF5bGlzdE1peGluIHsKKyAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRyYWNrSWRlbnRp
ZmllcjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uLmNwcAppbmRleCAzMmIwOGUxYTcxZGU5NDMwZDEyMjBlMGJlNmEyMWNkOGUy
YjU3MGFlLi5lOGE5Y2FlZWFkNDYxY2I4OTYwN2MzNGMzMThiYTI0YTNiZDQwMTU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5j
cHAKQEAgLTI5LDggKzI5LDEwIEBACiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKICNpbmNs
dWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk1lZGlhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogCkBAIC03Niw3ICs3OCwxMSBAQCBSZWY8TWVkaWFT
ZXNzaW9uPiBNZWRpYVNlc3Npb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKIH0KIAog
TWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24oTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCi0gICAgOiBt
X25hdmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorICAgIDogQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIobmF2aWdhdG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAsIG1f
bmF2aWdhdG9yKG1ha2VXZWFrUHRyKG5hdmlnYXRvcikpCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T05fQ09PUkRJTkFUT1IpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJp
Y0V2ZW50UXVldWU6OmNyZWF0ZSgqdGhpcykpCisjZW5kaWYKIHsKICAgICBtX2xvZ2dlciA9IG1h
a2VSZWZQdHIoRG9jdW1lbnQ6OnNoYXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZpZXIg
PSBuZXh0TG9nSWRlbnRpZmllcigpOwpAQCAtODksMTUgKzk1LDY3IEBAIE1lZGlhU2Vzc2lvbjo6
fk1lZGlhU2Vzc2lvbigpID0gZGVmYXVsdDsKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRNZXRhZGF0
YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJiBtZXRhZGF0YSkKIHsKICAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIpOwotCiAgICAgaWYgKG1fbWV0YWRhdGEpCiAgICAgICAgIG1fbWV0YWRhdGEt
PnJlc2V0TWVkaWFTZXNzaW9uKCk7CiAgICAgbV9tZXRhZGF0YSA9IFdURk1vdmUobWV0YWRhdGEp
OwogICAgIGlmIChtX21ldGFkYXRhKQogICAgICAgICBtX21ldGFkYXRhLT5zZXRNZWRpYVNlc3Np
b24oKnRoaXMpOwotICAgIG1ldGFkYXRhVXBkYXRlZCgpOworICAgIG5vdGlmeU1ldGFkYXRhT2Jz
ZXJ2ZXJzKCk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKK3Zv
aWQgTWVkaWFTZXNzaW9uOjpzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3Rh
dGUpCit7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisKKyAgICBtX3JlYWR5U3Rh
dGUgPSBzdGF0ZTsKKyAgICBub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCk7CiB9CiAKK3ZvaWQg
TWVkaWFTZXNzaW9uOjpzZXRDb29yZGluYXRvcihNZWRpYVNlc3Npb25Db29yZGluYXRvciogY29v
cmRpbmF0b3IpCit7CisgICAgaWYgKG1fY29vcmRpbmF0b3IgPT0gY29vcmRpbmF0b3IpCisgICAg
ICAgIHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBpZiAo
bV9jb29yZGluYXRvcikKKyAgICAgICAgbV9jb29yZGluYXRvci0+c2V0TWVkaWFTZXNzaW9uKG51
bGxwdHIpOworCisgICAgbV9jb29yZGluYXRvciA9IGNvb3JkaW5hdG9yOworCisgICAgaWYgKG1f
Y29vcmRpbmF0b3IpCisgICAgICAgIG1fY29vcmRpbmF0b3ItPnNldE1lZGlhU2Vzc2lvbih0aGlz
KTsKKworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuY29vcmRpbmF0b3JjaGFuZ2VFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShNRURJ
QV9TRVNTSU9OX1BMQVlMSVNUKQorRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uOjpzZXRQ
bGF5bGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBWZWN0b3I8UmVmUHRyPE1l
ZGlhTWV0YWRhdGE+PiYmIHBsYXlsaXN0KQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
Uik7CisKKyAgICBWZWN0b3I8UmVmPE1lZGlhTWV0YWRhdGE+PiByZXNvbHZlZFBsYXlsaXN0Owor
ICAgIHJlc29sdmVkUGxheWxpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwbGF5bGlzdC5zaXpl
KCkpOworCisgICAgZm9yIChhdXRvJiBlbnRyeSA6IHBsYXlsaXN0KSB7CisgICAgICAgIGF1dG8g
cmVzb2x2ZWRFbnRyeSA9IE1lZGlhTWV0YWRhdGE6OmNyZWF0ZShjb250ZXh0LCB7IGVudHJ5LT5t
ZXRhZGF0YSgpIH0pOworICAgICAgICBpZiAocmVzb2x2ZWRFbnRyeS5oYXNFeGNlcHRpb24oKSkK
KyAgICAgICAgICAgIHJldHVybiByZXNvbHZlZEVudHJ5LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAg
ICAgICAgCisgICAgICAgIHJlc29sdmVkUGxheWxpc3QudW5jaGVja2VkQXBwZW5kKHJlc29sdmVk
RW50cnkucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgIH0KKworICAgIG1fcGxheWxpc3QgPSBX
VEZNb3ZlKHJlc29sdmVkUGxheWxpc3QpOworCisgICAgcmV0dXJuIHsgfTsKK30KKyNlbmRpZgor
CiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0UGxheWJhY2tTdGF0ZShNZWRpYVNlc3Npb25QbGF5YmFj
a1N0YXRlIHN0YXRlKQogewogICAgIGlmIChtX3BsYXliYWNrU3RhdGUgPT0gc3RhdGUpCkBAIC0x
MTEsNiArMTY5LDcgQEAgdm9pZCBNZWRpYVNlc3Npb246OnNldFBsYXliYWNrU3RhdGUoTWVkaWFT
ZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKICAgICAgICAgbV90aW1lQXRMYXN0UG9zaXRpb25V
cGRhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICB9CiAgICAgbV9wbGF5YmFja1N0YXRl
ID0gc3RhdGU7CisgICAgbm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpOwogfQogCiB2b2lk
IE1lZGlhU2Vzc2lvbjo6c2V0QWN0aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rpb24gYWN0aW9u
LCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4mJiBoYW5kbGVyKQpAQCAtMTI5LDcg
KzE4OCw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vzc2lv
bkFjdGlvbiBhY3Rpb24sIFJlZlB0cjxNZWRpYVNlc3NpCiAgICAgICAgIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZVN1cHBvcnRlZENvbW1hbmQocGxh
dGZvcm1Db21tYW5kRm9yTWVkaWFTZXNzaW9uQWN0aW9uKGFjdGlvbikpOwogICAgIH0KIAotICAg
IGFjdGlvbkhhbmRsZXJzVXBkYXRlZCgpOworICAgIG5vdGlmeUFjdGlvbkhhbmRsZXJPYnNlcnZl
cnMoKTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb246Omhhc0FjdGlvbkhhbmRsZXIoTWVkaWFTZXNz
aW9uQWN0aW9uIGFjdGlvbikgY29uc3QKQEAgLTE0MiwxMiArMjAxLDE5IEBAIFJlZlB0cjxNZWRp
YVNlc3Npb25BY3Rpb25IYW5kbGVyPiBNZWRpYVNlc3Npb246OmhhbmRsZXJGb3JBY3Rpb24oTWVk
aWFTZXNzaW9uQWN0CiAgICAgcmV0dXJuIG1fYWN0aW9uSGFuZGxlcnMuZ2V0KGFjdGlvbik7CiB9
CiAKK3ZvaWQgTWVkaWFTZXNzaW9uOjpjYWxsQWN0aW9uSGFuZGxlcihjb25zdCBNZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzJiBhY3Rpb25EZXRhaWxzKQoreworICAgIGlmIChhdXRvIGhhbmRsZXIg
PSBtX2FjdGlvbkhhbmRsZXJzLmdldChhY3Rpb25EZXRhaWxzLmFjdGlvbikpCisgICAgICAgIGhh
bmRsZXItPmhhbmRsZUV2ZW50KGFjdGlvbkRldGFpbHMpOworfQorCiBFeGNlcHRpb25Pcjx2b2lk
PiBNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0
YXRlPiYmIHN0YXRlKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKICAgICBp
ZiAoIXN0YXRlKSB7CiAgICAgICAgIG1fcG9zaXRpb25TdGF0ZSA9IFdURjo6bnVsbG9wdDsKKyAg
ICAgICAgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpOwogICAgICAgICByZXR1cm4geyB9
OwogICAgIH0KIApAQCAtMTYxLDYgKzIyNyw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU2Vz
c2lvbjo6c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYKICAg
ICBtX3Bvc2l0aW9uU3RhdGUgPSBXVEZNb3ZlKHN0YXRlKTsKICAgICBtX2xhc3RSZXBvcnRlZFBv
c2l0aW9uID0gbV9wb3NpdGlvblN0YXRlLT5wb3NpdGlvbjsKICAgICBtX3RpbWVBdExhc3RQb3Np
dGlvblVwZGF0ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIG5vdGlmeVBvc2l0aW9uU3Rh
dGVPYnNlcnZlcnMoKTsKKwogICAgIHJldHVybiB7IH07CiB9CiAKQEAgLTE4NSwxMSArMjUzLDY0
IEBAIERvY3VtZW50KiBNZWRpYVNlc3Npb246OmRvY3VtZW50KCkgY29uc3QKIAogdm9pZCBNZWRp
YVNlc3Npb246Om1ldGFkYXRhVXBkYXRlZCgpCiB7CisgICAgbm90aWZ5TWV0YWRhdGFPYnNlcnZl
cnMoKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb246OmFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNl
cnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fb2JzZXJ2ZXJzLmFk
ZChvYnNlcnZlcik7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpyZW1vdmVPYnNlcnZlcihPYnNl
cnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX29i
c2VydmVycy5yZW1vdmUob2JzZXJ2ZXIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbjo6Zm9yRWFj
aE9ic2VydmVyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KQoreworICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyk7CisgICAgbV9vYnNlcnZlcnMuZm9yRWFjaChhcHBseSk7Cit9CisKK3ZvaWQgTWVk
aWFTZXNzaW9uOjpub3RpZnlNZXRhZGF0YU9ic2VydmVycygpCit7CisgICAgZm9yRWFjaE9ic2Vy
dmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5tZXRhZGF0YUNo
YW5nZWQobV9tZXRhZGF0YSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpub3Rp
ZnlQb3NpdGlvblN0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNd
KGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnBvc2l0aW9uU3RhdGVDaGFuZ2Vk
KG1fcG9zaXRpb25TdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpub3Rp
ZnlQbGF5YmFja1N0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNd
KGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnBsYXliYWNrU3RhdGVDaGFuZ2Vk
KG1fcGxheWJhY2tTdGF0ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpub3Rp
ZnlBY3Rpb25IYW5kbGVyT2JzZXJ2ZXJzKCkKK3sKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW10oYXV0
byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIuYWN0aW9uSGFuZGxlcnNDaGFuZ2VkKCk7
CisgICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFTZXNzaW9uOjphY3Rpb25IYW5kbGVyc1VwZGF0ZWQo
KQorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQordm9pZCBNZWRpYVNlc3Np
b246Om5vdGlmeVJlYWR5U3RhdGVPYnNlcnZlcnMoKQogeworICAgIGZvckVhY2hPYnNlcnZlcihb
dGhpc10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIucmVhZHlTdGF0ZUNoYW5n
ZWQobV9yZWFkeVN0YXRlKTsKKyAgICB9KTsKIH0KKyNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXggNzY3
MmUzMmZjNzA2ZTM3ODExNmQ1ZWY3MzU0MmIxZGNmM2ZhYjc2Zi4uOGQwNTA3Y2YwOTkwZmQ1NWM1
MWM3ZDFhOTdkOGI1ZDE5Y2Q4YzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1
ZXVlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVBvc2l0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJKU01l
ZGlhU2Vzc2lvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZS5oIgpAQCAtMzQsNiArMzcsNyBAQAogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbi5oIgog
I2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCIKICNpbmNsdWRlICJNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5o
IgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNDQsMzggKzQ4LDkwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBNZWRpYU1ldGFkYXRhOworY2xh
c3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CiBjbGFzcyBOYXZpZ2F0b3I7CiAKLWNsYXNzIE1l
ZGlhU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4sIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxNZWRpYVNlc3Npb24+IHsKK2NsYXNzIE1lZGlhU2Vzc2lvbiA6IHB1YmxpYyBS
ZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4gLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVNlc3Npb24+IGNyZWF0
ZShOYXZpZ2F0b3ImKTsKICAgICB+TWVkaWFTZXNzaW9uKCk7CiAKICAgICBNZWRpYU1ldGFkYXRh
KiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEuZ2V0KCk7IH07CiAgICAgdm9p
ZCBzZXRNZXRhZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4mJik7CisgICAgdm9pZCBtZXRhZGF0
YVVwZGF0ZWQoKTsKIAogICAgIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgcGxheWJhY2tTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWJhY2tTdGF0ZTsgfTsKICAgICB2b2lkIHNldFBsYXli
YWNrU3RhdGUoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CiAKICAgICB2b2lkIHNldEFjdGlv
bkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0aW9uLCBSZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFu
ZGxlcj4mJik7CisKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQb3NpdGlvblN0YXRlKE9wdGlv
bmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mJik7CisgICAgT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0
YXRlPiBwb3NpdGlvblN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvblN0YXRlOyB9CisK
ICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxkb3VibGU+IGN1cnJlbnRQb3NpdGlvbigpIGNv
bnN0OwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAgICAgCi0gICAgdm9pZCBt
ZXRhZGF0YVVwZGF0ZWQoKTsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
KyAgICBNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3JlYWR5U3RhdGU7IH07CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhU2Vzc2lvblJlYWR5
U3RhdGUpOworCisgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yKCkgY29u
c3QgeyByZXR1cm4gbV9jb29yZGluYXRvci5nZXQoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0Q29vcmRpbmF0b3IoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IqKTsKKyNlbmRpZgorCisj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fUExBWUxJU1QpCisgICAgY29uc3QgVmVjdG9yPFJlZjxN
ZWRpYU1ldGFkYXRhPj4mIHBsYXlsaXN0KCkgY29uc3QgeyByZXR1cm4gbV9wbGF5bGlzdDsgfQor
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFBsYXlsaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBWZWN0b3I8UmVmUHRyPE1lZGlhTWV0YWRhdGE+PiYmKTsKKyNlbmRpZgogCi0gICAgdm9pZCBh
Y3Rpb25IYW5kbGVyc1VwZGF0ZWQoKTsKICAgICBib29sIGhhc0FjdGlvbkhhbmRsZXIoTWVkaWFT
ZXNzaW9uQWN0aW9uKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8TWVkaWFTZXNz
aW9uQWN0aW9uSGFuZGxlcj4gaGFuZGxlckZvckFjdGlvbihNZWRpYVNlc3Npb25BY3Rpb24pIGNv
bnN0OwogICAgIGJvb2wgaGFzQWN0aXZlQWN0aW9uSGFuZGxlcnMoKSBjb25zdCB7IHJldHVybiAh
bV9hY3Rpb25IYW5kbGVycy5pc0VtcHR5KCk7IH0KIAorICAgIHZvaWQgY2FsbEFjdGlvbkhhbmRs
ZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYpOworCisgICAgY29uc3QgTG9nZ2Vy
JiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAqbV9sb2dnZXIuZ2V0KCk7IH0KKworICAgIC8vIEV2
ZW50VGFyZ2V0CisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50
ZWQ6OmRlcmVmOworCisgICAgY2xhc3MgT2JzZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
T2JzZXJ2ZXI+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBk
ZWZhdWx0OworCisgICAgICAgIHZpcnR1YWwgdm9pZCBtZXRhZGF0YUNoYW5nZWQoUmVmUHRyPE1l
ZGlhTWV0YWRhdGE+KSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uU3RhdGVDaGFu
Z2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4pIHsgfQorICAgICAgICB2aXJ0dWFsIHZv
aWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgeyB9Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBhY3Rpb25IYW5kbGVyc0NoYW5nZWQoKSB7IH0KKworI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorICAgICAgICB2aXJ0dWFsIHZvaWQgcmVh
ZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgeyB9CisjZW5kaWYKKyAgICB9
OworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHJlbW92ZU9ic2Vy
dmVyKE9ic2VydmVyJik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uKE5h
dmlnYXRvciYpOwogCi0gICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCB7IHJldHVybiAq
bV9sb2dnZXIuZ2V0KCk7IH0KICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAKKyAgICB2b2lkIGZvckVhY2hPYnNlcnZlcihj
b25zdCBGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+Jik7CisgICAgdm9pZCBub3RpZnlNZXRhZGF0
YU9ic2VydmVycygpOworICAgIHZvaWQgbm90aWZ5UG9zaXRpb25TdGF0ZU9ic2VydmVycygpOwor
ICAgIHZvaWQgbm90aWZ5UGxheWJhY2tTdGF0ZU9ic2VydmVycygpOworICAgIHZvaWQgbm90aWZ5
QWN0aW9uSGFuZGxlck9ic2VydmVycygpOworICAgIHZvaWQgbm90aWZ5UmVhZHlTdGF0ZU9ic2Vy
dmVycygpOworCisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVNlc3Npb25FdmVudFRhcmdldEludGVyZmFjZVR5
cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFs
IHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7
IH0KKwogICAgIFdlYWtQdHI8TmF2aWdhdG9yPiBtX25hdmlnYXRvcjsKICAgICBSZWZQdHI8TWVk
aWFNZXRhZGF0YT4gbV9tZXRhZGF0YTsKICAgICBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIG1f
cGxheWJhY2tTdGF0ZSB7IE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUgfTsKQEAgLTg1
LDYgKzE0MSwxOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8TWVkaWFTZXNzaW9uQWN0aW9uLCBS
ZWZQdHI8TWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj4sIFdURjo6SW50SGFzaDxNZWRpYVNlc3Np
b25BY3Rpb24+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPE1lZGlhU2Vzc2lvbkFjdGlvbj4+
IG1fYWN0aW9uSGFuZGxlcnM7CiAgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAg
ICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworCisgICAgV2Vha0hhc2hTZXQ8T2JzZXJ2
ZXI+IG1fb2JzZXJ2ZXJzOworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisgICAgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGUgeyBNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlOjpIYXZlTm90aGluZyB9OworICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29yZGlu
YXRvcj4gbV9jb29yZGluYXRvcjsKKyAgICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVu
dFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fUExBWUxJU1QpCisgICAgVmVjdG9yPFJlZjxNZWRpYU1ldGFkYXRhPj4gbV9wbGF5bGlz
dDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKaW5kZXggZGVkNGE3NzM4YTIzZDkzMWViM2IwYTY4
MmJlNTczZjA4MzI0ZDQzNy4uNjFhODc0NDI3NGIyMjM4YTZjZWVlOTAyOGVmYzkyMjljM2JhZWQ2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb24uaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI2LDkgKzI2LDEwIEBACiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VT
U0lPTiwKICAgICBFeHBvc2VkPVdpbmRvdywKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAotXSBpbnRlcmZhY2UgTWVkaWFTZXNz
aW9uIHsKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gaW50ZXJmYWNlIE1lZGlhU2Vzc2lv
biA6IEV2ZW50VGFyZ2V0Cit7CiAgICAgYXR0cmlidXRlIE1lZGlhTWV0YWRhdGE/IG1ldGFkYXRh
OwogCiAgICAgYXR0cmlidXRlIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgcGxheWJhY2tTdGF0
ZTsKQEAgLTM3LDMgKzM4LDYgQEAKIAogICAgIHVuZGVmaW5lZCBzZXRQb3NpdGlvblN0YXRlKG9w
dGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZT8gc3RhdGUgPSBudWxsKTsKIH07CisKK01lZGlhU2Vz
c2lvbiBpbmNsdWRlcyBNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluOworTWVkaWFTZXNzaW9u
IGluY2x1ZGVzIE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCmluZGV4
IDVjYjY0NGZmMzYyZGVkNzM3MDJiMTMzZjNmMjBhZDg2NzBiN2ZmNjEuLjliYzRmMDAxM2I0NmI1
MmE4MWMwMDA3OTcyMmEzNjAxMmY3Y2MyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDYgKzM5LDcg
QEAgZW51bSBjbGFzcyBNZWRpYVNlc3Npb25BY3Rpb24gewogICAgIFNraXBhZCwKICAgICBTdG9w
LAogICAgIFNlZWt0bywKKyAgICBTZXR0cmFjaywKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKQEAgLTU2LDcgKzU3LDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpNZWRpYVNlc3Npb25BY3Rpb24+IHsKICAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQWN0
aW9uOjpOZXh0dHJhY2ssCiAgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2tp
cGFkLAogICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25BY3Rpb246OlN0b3AsCi0gICAgICAg
IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvCisgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkFjdGlvbjo6U2Vla3RvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25B
Y3Rpb246OlNldHRyYWNrCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb24uaWRsCmluZGV4IDQ2
MzVlNjk3MzRlZGExOWRjMmE3Y2FlZDlhNWZjNzEwNzQ1OThjZDQuLjhmNzY1ZjY0ZTNkYWNiZTcx
NzEzYTRmODZiYjliYTJhYjgyZjQzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uLmlkbApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw0ICszNSw3
IEBACiAgICAgInNraXBhZCIsCiAgICAgInN0b3AiLAogICAgICJzZWVrdG8iCisjaWYgZGVmaW5l
ZChFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCkgJiYgRU5BQkxFX01FRElBX1NFU1NJT05f
UExBWUxJU1QKKyAgICAsICJzZXR0cmFjayIKKyNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlv
bkRldGFpbHMuaAppbmRleCA2NDFlYTcyNGFjYTY3MDVkNzM1MDdlMjg3MWM1MTc0MTc5Njk2ZDdj
Li5mNTkwOWQ0NmY4ZWFjNjZkMGYzYzlkZDdlNzUzMmUzNjA0NjhkNmE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRh
aWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uQWN0aW9uRGV0YWlscy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDYgKzM3LDkgQEAgc3RydWN0IE1lZGlhU2Vzc2lvbkFjdGlv
bkRldGFpbHMgewogICAgIE9wdGlvbmFsPGRvdWJsZT4gc2Vla09mZnNldDsKICAgICBPcHRpb25h
bDxkb3VibGU+IHNlZWtUaW1lOwogICAgIE9wdGlvbmFsPGJvb2w+IGZhc3RTZWVrOworI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQorICAgIFN0cmluZyB0cmFja0lkZW50aWZpZXI7
CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwKaW5kZXgg
MWExZWY3YWU3NjVhZTAyZjIxZTMyMzJhMTM2NGE5NmExYWRmMTU0Ny4uMmQ4YzYwNzM3YzZkNjdm
ZDEyNWUxM2U5MTY5OGVjZmE4MDI2YzA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWls
cy5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzIsNCArMzIsNiBAQAogICAgIGRvdWJsZT8gc2Vla09mZnNldDsKICAgICBkb3VibGU/
IHNlZWtUaW1lOwogICAgIGJvb2xlYW4/IGZhc3RTZWVrOworCisgICAgW0NvbmRpdGlvbmFsPU1F
RElBX1NFU1NJT05fUExBWUxJU1QsIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxheWxp
c3RdIERPTVN0cmluZz8gdHJhY2tJZGVudGlmaWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xZGY0ZTkyMTU1ZjFhYzAxNWU2YzUxNzRkNGJlZjY0ODFlNTkz
NTY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0wLDAgKzEsMjQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1
ZGUgIkpTRE9NRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0YXRpYyBjb25zdCB2b2lkKiBuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKCkK
K3sKKyAgICBzdGF0aWMgdWludDY0X3QgbG9nSWRlbnRpZmllciA9IGNyeXB0b2dyYXBoaWNhbGx5
UmFuZG9tTnVtYmVyKCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+
KCsrbG9nSWRlbnRpZmllcik7Cit9CisKK1JlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShSZWY8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvcj4mJiBwbGF0Zm9ybUNvb3JkaW5hdG9yKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFdURk1vdmUocGxhdGZvcm1Db29yZGluYXRvcikp
KTsKK30KKworTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmIHBsYXRmb3JtQ29vcmRpbmF0
b3IpCisgICAgOiBtX3BsYXRmb3JtQ29vcmRpbmF0b3IoV1RGTW92ZShwbGF0Zm9ybUNvb3JkaW5h
dG9yKSkKKyAgICAsIG1fbG9nZ2VyKG1ha2VSZWYoRG9jdW1lbnQ6OnNoYXJlZExvZ2dlcigpKSkK
KyAgICAsIG1fbG9nSWRlbnRpZmllcihuZXh0Q29vcmRpbmF0b3JMb2dJZGVudGlmaWVyKCkpCit7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKworICAgIG1fcGxhdGZvcm1Db29yZGlu
YXRvci0+c2V0TG9nZ2VyKG1fbG9nZ2VyLmNvcHlSZWYoKSwgbV9sb2dJZGVudGlmaWVyKTsKK30K
KworTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6On5NZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0g
ZGVmYXVsdDsKKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0
aW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8gaWRl
bnRpZmllciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyLCB0aW1l
KTsKKworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVy
LCAiTWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZWVrVG8odGltZSwgW3RpbWUsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAg
ICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKKyAgICAgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAg
cHJvbWlzZS5yZWplY3QoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5sb2dnZXIoKS5lcnJvcihwcm90ZWN0ZWRUaGlzLT5sb2dDaGFubmVsKCksIGlkZW50
aWZpZXIsICJjb29yZGluYXRvci5zZWVrVG8gZmFpbGVkISIpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxz
IHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNlZWt0bywKKyAg
ICAgICAgICAgIC5zZWVrVGltZSA9IHRpbWUsCisgICAgICAgIH07CisgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPm1fc2Vzc2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICAgICAg
Ly8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdp
c3RlcmVkICdzZWVrVG8nIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm9taXNlLnJlc29sdmUo
KTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9
IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyKTsKKworICAgIGlmICgh
bV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVyLCAiTWVkaWFTZXNzaW9u
IGlzIE5VTEwhIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wbGF0Zm9ybUNv
b3JkaW5hdG9yLT5wbGF5KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50
aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYm
IGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNz
aW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2Vw
dGlvbikpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJvdGVj
dGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBpZGVudGlmaWVyLCAiY29vcmRpbmF0b3IucGxheSBmYWls
ZWQhIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBNZWRpYVNl
c3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlh
U2Vzc2lvbkFjdGlvbjo6UGxheSwKKyAgICAgICAgfTsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+
bV9zZXNzaW9uLT5jYWxsQWN0aW9uSGFuZGxlcihkZXRhaWxzKTsKKworICAgICAgICAvLyBGSVhN
RTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQg
J3BsYXknIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9
KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVO
VElGSUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBpZiAoIW1fc2Vzc2lv
bikgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIk1lZGlhU2Vzc2lvbiBpcyBOVUxM
ISIpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRv
ci0+cGF1c2UoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0
aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsK
KyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGV4Y2Vw
dGlvbikgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZSgqZXhjZXB0aW9uKSk7
CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5sb2dnZXIoKS5lcnJvcihwcm90ZWN0ZWRUaGlz
LT5sb2dDaGFubmVsKCksIGlkZW50aWZpZXIsICJjb29yZGluYXRvci5wYXVzZSBmYWlsZWQhIik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBNZWRpYVNlc3Npb25B
Y3Rpb25EZXRhaWxzIGRldGFpbHMgeworICAgICAgICAgICAgLmFjdGlvbiA9IE1lZGlhU2Vzc2lv
bkFjdGlvbjo6UGF1c2UsCisgICAgICAgIH07CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fc2Vz
c2lvbi0+Y2FsbEFjdGlvbkhhbmRsZXIoZGV0YWlscyk7CisKKyAgICAgICAgLy8gRklYTUU6IHNo
b3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdwYXVz
ZScgYWN0aW9uIGhhbmRsZXI/CisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIH0pOwor
fQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcm
IHRyYWNrLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIGF1dG8g
aWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVyKTsK
KworICAgIGlmICghbV9zZXNzaW9uKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVyLCAi
TWVkaWFTZXNzaW9uIGlzIE5VTEwhIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
bV9wbGF0Zm9ybUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAg
ICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAg
IHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAgICAgICAgICAgcHJvdGVj
dGVkVGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBpZGVu
dGlmaWVyLCAiY29vcmRpbmF0b3Iuc2V0VHJhY2sgZmFpbGVkISIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRh
aWxzIHsKKyAgICAgICAgICAgIC5hY3Rpb24gPSBNZWRpYVNlc3Npb25BY3Rpb246OlNldHRyYWNr
LAorICAgICAgICAgICAgLnRyYWNrSWRlbnRpZmllciA9IHRyYWNrLAorICAgICAgICB9OworICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24tPmNhbGxBY3Rpb25IYW5kbGVyKGRldGFpbHMp
OworCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJl
IGlzbid0IGEgcmVnaXN0ZXJlZCAnc2V0VHJhY2snIGFjdGlvbiBoYW5kbGVyPworICAgICAgICBw
cm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6c2V0TWVkaWFTZXNzaW9uKE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikKK3sKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIG1fc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Np
b24pOworCisgICAgaWYgKG1fc2Vzc2lvbikKKyAgICAgICAgbV9zZXNzaW9uLT5hZGRPYnNlcnZl
cigqdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9uU3Rh
dGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gc3RhdGUpCit7CisgICAgaWYg
KCFzdGF0ZSkgeworICAgICAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3RhdGVD
aGFuZ2VkKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXRmb3JtQ29v
cmRpbmF0b3ItPnBvc2l0aW9uU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhUG9zaXRpb25TdGF0ZSB7IHN0YXRlLT5kdXJhdGlvbiwgc3RhdGUtPnBsYXli
YWNrUmF0ZSwgc3RhdGUtPnBvc2l0aW9uIH0pOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0
YXRlKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6Tm9uZSks
ICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGlzIG5vdCBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpOb25lIGFzIGV4cGVj
dGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlOjpQYXVzZWQpID09IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNl
ZCksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQYXVzZWQgaXMgbm90IFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBhdXNlZCBh
cyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGxheWluZykgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4o
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZTo6UGxheWluZyksICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nIGlzIG5vdCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
OjpQbGF5aW5nIGFzIGV4cGVjdGVkIik7CisKKyAgICBtX3BsYXRmb3JtQ29vcmRpbmF0b3ItPnBs
YXliYWNrU3RhdGVDaGFuZ2VkKHN0YXRpY19jYXN0PFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU+KHN0YXRlKSk7Cit9CisKK3ZvaWQgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5
U3RhdGUgc3RhdGUpCit7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50OF90PihN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTm90aGluZykgPT0gc3RhdGljX2Nhc3Q8dWludDhf
dD4oUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0
ZTo6SGF2ZU5vdGhpbmcpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgaXMg
bm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU6OkhhdmVOb3RoaW5nIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNf
Y2FzdDx1aW50OF90PihNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGEpID09IHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlh
U2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRl
OjpIYXZlTWV0YWRhdGEgaXMgbm90IFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1l
ZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSBhcyBleHBlY3RlZCIpOworICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDhfdD4oTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6
SGF2ZUN1cnJlbnREYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEp
LCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhIGlzIG5vdCBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlQ3Vy
cmVudERhdGEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVGdXR1cmVEYXRhKSA9PSBzdGF0aWNf
Y2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSksICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpI
YXZlRnV0dXJlRGF0YSBpcyBub3QgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUZ1dHVyZURhdGEgYXMgZXhwZWN0ZWQiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVFbm91Z2hEYXRhKSA9PSBzdGF0aWNfY2FzdDx1aW50OF90PihQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSks
ICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YSBpcyBub3QgUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZUVub3Vn
aERhdGEgYXMgZXhwZWN0ZWQiKTsKKworICAgIG1fcGxhdGZvcm1Db29yZGluYXRvci0+cmVhZHlT
dGF0ZUNoYW5nZWQoc3RhdGljX2Nhc3Q8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZT4oc3RhdGUpKTsKK30KKworV1RGTG9nQ2hhbm5lbCYgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NoYW5uZWwoKQoreworICAgIHJldHVybiBMb2dNZWRp
YTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDdjZWM4ODBiMzUzZjQ2YmNi
ZDg3MGZmNWRiYzE5MmM5OTk3YzkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMCwwICsx
LDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KKyNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsK
KworY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjsKK2NsYXNzIE1lZGlhU2Vz
c2lvbjsKKworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4sIHB1YmxpYyBNZWRpYVNlc3Npb246Ok9ic2VydmVy
IHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yPiBjcmVhdGUoUmVmPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+JiYp
OworICAgIFdFQkNPUkVfRVhQT1JUIH5NZWRpYVNlc3Npb25Db29yZGluYXRvcigpOworCisgICAg
dm9pZCBzZWVrVG8oZG91YmxlLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9p
ZCBwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIHBhdXNlKERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKworICAgIHZvaWQgc2V0TWVkaWFTZXNzaW9u
KE1lZGlhU2Vzc2lvbiopOworCisgICAgLy8gTWVkaWFTZXNzaW9uOjpPYnNlcnZlcgorICAgIHZv
aWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgZmlu
YWw7CisgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlKSBmaW5hbDsKKyAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5
U3RhdGUpIGZpbmFsOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yKFJlZjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiYmKTsKKworICAgIGNv
bnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dnZXI7IH0KKyAgICBjb25z
dCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9
CisgICAgc3RhdGljIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKTsKKyAgICBzdGF0aWMgY29u
c3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgeyByZXR1cm4gIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
IjsgfQorCisgICAgV2Vha1B0cjxNZWRpYVNlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBSZWY8UGxh
dGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9wbGF0Zm9ybUNvb3JkaW5hdG9yOworICAg
IFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRp
ZmllcjsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1f
c2Vla1RvUHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+PiBtX3BsYXlQcm9taXNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4+IG1fcGF1c2VQcm9taXNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4+IG1fc2V0VHJhY2tQcm9taXNlOworfTsKKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWMwNWFiODkwZWExODI2ZDBmZTcxMzBiNWQzMmI0MmQ3YjQ2MjNk
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsCisgICAgRW5h
YmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25Db29yZGluYXRvciwKKyAgICBFeHBvc2VkPVdpbmRv
dywKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKK10gaW50ZXJmYWNlIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yIHsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2Vla1RvKHVucmVzdHJp
Y3RlZCBkb3VibGUgdGltZSk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBsYXkoKTsKKyAgICBQ
cm9taXNlPHVuZGVmaW5lZD4gcGF1c2UoKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2V0VHJh
Y2soRE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllcik7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvck1peGluLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTQ4ZWM4Zjg5NjI2NWZiNjUxYmZjYjExYWEw
MThiMjVhYmRjNzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKQEAgLTAsMCArMSwz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1FTkFCTEVfTUVESUFfU0VTU0lP
Tl9DT09SRElOQVRPUiwKKyAgICBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLAorXSBpbnRlcmZhY2UgbWl4aW4gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbiB7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPyBjb29yZGluYXRv
cjsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uY29vcmRpbmF0b3JjaGFuZ2U7CisgICAg
YXR0cmlidXRlIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgcmVhZHlTdGF0ZTsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlLmgKaW5kZXggZDRhZGJkNTQxNzk0ZTVhMTA5NWJlNTRhMjNiYjNl
YjllYmU3NDc1Ni4uNzA2M2M3OGUzZDc4YmZhZDM4OGRmMzA5NDU0YTljZjdhMzU0ZDJiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaApAQCAtMjksNyArMjksNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSB7Citl
bnVtIGNsYXNzIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgOiB1aW50OF90IHsKICAgICBOb25l
LAogICAgIFBhdXNlZCwKICAgICBQbGF5aW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGlu
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iZWM0Yjk1N2E1ZDUxZTZjYzc0MTNmNzhjZDhlYjk0YTIwOWYxZjJi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBDb25kaXRpb25hbD1FTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCwKKyAg
ICBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0LAorXSBpbnRlcmZhY2UgbWl4
aW4gTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbiB7CisgICAgW1NldHRlckNhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxNZWRpYU1ldGFkYXRhPiBw
bGF5bGlzdDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ1MjNkZDU0
YTcxZTY2NTRhMTdiYjBjNzc0Zjc4ODE2MzM3ZjQ2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaApA
QCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVt
IGNsYXNzIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgOiB1aW50OF90IHsKKyAgICBIYXZlTm90aGlu
ZywKKyAgICBIYXZlTWV0YWRhdGEsCisgICAgSGF2ZUN1cnJlbnREYXRhLAorICAgIEhhdmVGdXR1
cmVEYXRhLAorICAgIEhhdmVFbm91Z2hEYXRhLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFk
eVN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvblJlYWR5U3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NzNmMmFhNTRjODY4ZjNiNDY1ZjliNTVl
NjE5MDVkNWVjNGI5NDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbApAQCAtMCwwICsxLDM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IsCitdIGVudW0gTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSB7CisgICAgImhhdmVOb3RoaW5nIiwK
KyAgICAiaGF2ZU1ldGFkYXRhIiwKKyAgICAiaGF2ZUN1cnJlbnREYXRhIiwKKyAgICAiaGF2ZUZ1
dHVyZURhdGEiLAorICAgICJoYXZlRW5vdWdoRGF0YSIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9OYXZpZ2F0b3JNZWRpYVNlc3Npb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5o
CmluZGV4IDA0MjE5NjE3YzIzODY5MzAxMDhhNjg2MGIyMTAxMjY5Y2U1MzY4OWUuLjdkMmJmMzA2
OGJmNTY3YzFjNmY4YTNjMmU4OTU0ZmFhYjRkMjMzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL05hdmlnYXRvck1lZGlhU2Vzc2lvbi5o
CkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBOYXZpZ2F0b3JNZWRpYVNl
c3Npb24oTmF2aWdhdG9yJik7CiAgICAgfk5hdmlnYXRvck1lZGlhU2Vzc2lvbigpOwogCi0gICAg
c3RhdGljIE1lZGlhU2Vzc2lvbiYgbWVkaWFTZXNzaW9uKE5hdmlnYXRvciYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBNZWRpYVNlc3Npb24mIG1lZGlhU2Vzc2lvbihOYXZpZ2F0b3ImKTsK
ICAgICBNZWRpYVNlc3Npb24mIG1lZGlhU2Vzc2lvbigpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCA0YjQxNWU5ZmNiZDRiOGQ4NjdkZjVkYTdlN2M2MTMzZjliMTk0MGVjLi5hNzVhMmYz
MzVkZGE1NTczMjg0M2RhYjAwYTYzMTg5ODRiODQ0YTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTMx
LDYgKzEzMSw3IEBAIE1vZHVsZXMvbWVkaWFjYXBhYmlsaXRpZXMvTWVkaWFDYXBhYmlsaXRpZXMu
Y3BwCiBNb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL05hdmlnYXRvck1lZGlhQ2FwYWJpbGl0aWVz
LmNwcAogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAKIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKK01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcAogTW9kdWxlcy9tZWRpYXNlc3Npb24vTmF2aWdhdG9yTWVkaWFT
ZXNzaW9uLmNwcAogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAog
TW9kdWxlcy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5jcHAKQEAgLTE5OTgsNiArMTk5OSw3IEBA
IHBsYXRmb3JtL2dyYXBoaWNzL1BhdGguY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVy
c2FsU3RhdGUuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRpbWVSYW5n
ZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAKQEAgLTMyMjYsNiArMzIyOCw3IEBA
IEpTTWVkaWFLZXlzLmNwcAogSlNNZWRpYUtleXNSZXF1aXJlbWVudC5jcHAKIEpTTWVkaWFMaXN0
LmNwcAogSlNNZWRpYU1ldGFkYXRhLmNwcAorSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAK
IEpTTWVkaWFNZXRhZGF0YUluaXQuY3BwCiBKU01lZGlhUG9zaXRpb25TdGF0ZS5jcHAKIEpTTWVk
aWFRdWVyeUxpc3QuY3BwCkBAIC0zMjM2LDYgKzMyMzksNyBAQCBKU01lZGlhU2Vzc2lvbkFjdGlv
bkRldGFpbHMuY3BwCiBKU01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuY3BwCiBKU01lZGlhU2Vz
c2lvbkFjdGlvbi5jcHAKIEpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAKK0pTTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZS5jcHAKIEpTTWVkaWFTZXNzaW9uLmNwcAogSlNNZWRpYVNvdXJjZS5j
cHAKIEpTTWVkaWFTdHJlYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWNhZTUwMDM0ZWFhMmM2NmNhYjZjZjI3MmJiNzAx
ZmQ5OGI4NDQyNS4uNjU4NDk4MTU4YWZiZTgyNzRmZTFlNDIyMzAzNDc4YzQwODI1YmM2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtOTAsNiArOTAsNyBAQAogCQkwNzA3NTZENDE0MjM5QTRGMDA0MTQxNjEgLyogSlNIVE1MVHJh
Y2tFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzA3NTZEMjE0MjM5QTRFMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50LmggKi87IH07
CiAJCTA3MDc1NkRFMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwNzU2RDgxNDIzOUI0QjAw
NDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlLmggKi87IH07CiAJCTA3MDc1NkUwMTQyMzlCNEUwMDQx
NDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkRBMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFj
a0N1ZUxpc3QuaCAqLzsgfTsKKwkJMDcwOEYyQjYyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MDhGMkI0MjVEREU0NUQwMDRGOTA4NiAvKiBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmggKi87IH07CiAJCTA3MDlENzhGMUFFNTU1NTQwMDRFNDJGOCAv
KiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTA3MDlENzkyMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCAq
LzsgfTsKIAkJMDcwOUQ3OTMxQUU1NTU3RTAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
MDlENzkxMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEyMyw2ICsx
MjQsNyBAQAogCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUz
MjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2
NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc0MEIxNDQyNURFMzFGODAw
RTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQwQjE0MzI1REUzMUE5MDBFMzhEQkEg
LyogTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLzsgfTsKIAkJMDc0RTgyQkIxOEE2
OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBs
YXRmb3JtVGltZVJhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3NTAzM0E4MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVh
bGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJp
Y3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
NzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0
NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07CkBAIC01NjkyLDYgKzU2OTQsNyBAQAogCQkw
NzA3NTZEODE0MjM5QjRCMDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0VHJhY2tDdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDcwNzU2RDkxNDIzOUI0QzAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1
ZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA3NTZEQTE0MjM5QjRF
MDA0MTQxNjEgLyogSlNUZXh0VHJhY2tDdWVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTVGV4dFRyYWNrQ3VlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwNzA4RjJCNDI1RERFNDVEMDA0RjkwODYgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MDlE
NzhDMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjgg
LyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MDlENzkwMUFFNTU1N0UwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTc4Myw2ICs1
Nzg2LDE0IEBACiAJCTA3MkFFMUUzMTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzJBRTFFNDE4M0Mw
NzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuanMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5q
czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMx
IC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTA3MkRCQkZCMjVEQjM4QkMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNzJEQkMwMzI1REM2QkQzMDBBMTM1MEUgLyogTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyREJDMDUyNURDNkJEMzAwQTEzNTBF
IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcy
REJDMDYyNURDNkVEQTAwQTEzNTBFIC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwNzJEQkMwNzI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDczNkI3MzAyNjA5NEEzNzAw
RTA2OTk0IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzM2QjczMjI2MDk1NTU0MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3MzZCNzMzMjYwQTdCNjQwMEUwNjk5NCAvKiBNZWRpYU1ldGFkYXRhUGxheWxp
c3RNaXhpbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTREQzE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2Zm
ZXJBbnN3ZXJPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ09m
ZmVyQW5zd2VyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzM3OTRF
MzE5RUUyRkYyMDBFNUEwNDUgLyogSlNSVENDb25maWd1cmF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUlRDQ29uZmlndXJhdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NEU0MTlFRTJGRjIwMEU1QTA0NSAvKiBKU1JUQ0Nv
bmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSVENDb25m
aWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODA0LDYgKzU4MTUs
MTAgQEAKIAkJMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1NhbXBsZUJ1ZmZlckxp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjQxRTQzODU5RDAwNzFD
MEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0
YVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1NhbXBsZURh
dGFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0MEIxNDEyNURFMzFB
ODAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDc0MEIxNDMyNURFMzFBOTAwRTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzQ0NzFGRDI1RTE4MDA1MDA1NEIy
MzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Np
b25SZWFkeVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDQ3MUZGMjVF
MTgwMDUwMDU0QjIzMSAvKiBNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNl
c3Npb25SZWFkeVN0YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NEVD
RUIxRTBDNEFFNTAwMEQwOTQ0IC8qIE1vY2tBdWRpb1NoYXJlZFVuaXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0F1ZGlvU2hhcmVkVW5pdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzQ0RUNFQzFFMEM0QUU1MDAwRDA5NDQgLyogTW9ja0F1ZGlvU2hh
cmVkVW5pdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1vY2tB
dWRpb1NoYXJlZFVuaXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDZEMzBB
MjE0NkVBMzcwMDNEREY4NCAvKiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU5MjAsNiArNTkzNSw3IEBACiAJCTA3RTEx
NkIwMTQ4OUM5QTEwMEVDNUFDRSAvKiBKU1RleHRUcmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RleHRUcmFja0N1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RTExNzA2MTQ4OUVCRUIwMEVDNUFDRSAvKiBKU1RleHRU
cmFja0N1ZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1RleHRUcmFja0N1ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
RTNERkQwMUE5RTc4NjUwMDc2NENBOCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWJhY2tUYXJnZXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdFNUYzOTIyNUVBQTkxRjAwQTg1M0FEIC8qIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3RTlFMTJEMThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZh
dGVBVkYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RTlF
MTJGMThGNjJCMzcwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdF
RTc2RTkxQkU5NkRCMDAwRjg5MTMzIC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk3OTcsMTAgKzk4MTMsMTAgQEAK
IAkJNkUwRTU2OUExODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxvYXRSb3VuZGVkUmVjdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0R0xDRy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENHLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyNDJCMjYyMzM1OTNENzAwMkNBREQ0
IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBK
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMuY3BwOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4v
V2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVFVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RTI0MkIyODIz
MzU5M0Q3MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oOyBwYXRoID0gLi4vLi4vLi4vLi4v
Li4vLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVFVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUyNDJC
MjkyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5jcHA7IHBhdGgg
PSAuLi8uLi8uLi8uLi8uLi8uLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk2RTI0MkIyQTIzMzU5M0Q4MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRU
ZXh0dXJlRVRDMS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMx
Lmg7IHBhdGggPSAuLi8uLi8uLi8uLi8uLi8uLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNkUyNDJCMjYyMzM1OTNENzAwMkNBREQ0IC8qIEpTV2ViR0xDb21w
cmVzc2VkVGV4dHVyZUVUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVFVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RTI0MkIyODIz
MzU5M0Q3MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk2RTI0MkIyOTIzMzU5M0Q3MDAyQ0FERDQgLyogSlNXZWJHTENvbXByZXNzZWRU
ZXh0dXJlRVRDMS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVFVEMxLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUyNDJCMkEyMzM1OTNE
ODAwMkNBREQ0IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUVUQzEuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDMS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RTI3RjI0MjIyOThDRTRCMDBGMUY2MzIgLyogR3JhcGhpY3NDb250ZXh0R0xBTkdM
RS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyN0YyNDMyMjlD
OUY4NDAwRjFGNjMyIC8qIEV4dGVuc2lvbnNHTEFOR0xFLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEV4dGVuc2lvbnNHTEFOR0xFLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkUyN0YyNDQyMjlDOUY4RDAwRjFGNjMyIC8qIEV4dGVuc2lvbnNHTEFO
R0xFLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dGVuc2lvbnNHTEFOR0xF
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTYwMyw2ICsxOTYxOSw4IEBACiAJ
CQkJNTEwNThBREExRDY3OTI1NzAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkUHJvdmlkZXIuaCAqLywK
IAkJCQk0MTU3RUJGOTFFM0FCMDY4MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmNwcCAqLywKIAkJCQk0MTU3RUJGODFFM0FCMDY4MDBBQzlGRTkgLyogTW9ja0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uLmggKi8sCisJCQkJMDc0MEIxNDMyNURFMzFBOTAwRTM4REJBIC8qIE1v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDc0MEIxNDEyNURFMzFBODAw
RTM4REJBIC8qIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovLAogCQkJCTJENkYzRThB
MUMxRUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXkuY3BwICovLAogCQkJCTJENkYzRThC
MUMxRUNCMUMwMDYxREJENCAvKiBNb2NrUGFnZU92ZXJsYXkuaCAqLywKIAkJCQkyRDZGM0U4QzFD
MUVDQjFDMDA2MURCRDQgLyogTW9ja1BhZ2VPdmVybGF5LmlkbCAqLywKQEAgLTI2OTEyLDYgKzI2
OTMwLDggQEAKIAkJCQk1NTA2NDBBRDI0MDc1NkRBMDBBQUUwNDUgLyogUGxhdGZvcm1JbWFnZUJ1
ZmZlckJhY2tlbmQuaCAqLywKIAkJCQkwNTYyRjk2MDE1NzNGODhGMDAzMUNBMTYgLyogUGxhdGZv
cm1MYXllci5oICovLAogCQkJCUNFRUZDRDdCMTlEQjMzREMwMDM4NzZENyAvKiBQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCAqLywKKwkJCQkwN0U1RjM5MjI1RUFBOTFGMDBBODUzQUQgLyog
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCisJCQkJMDcwOEYyQjQyNURE
RTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKIAkJ
CQkwNzI4NDdFMjE2RUJDNUIwMDA0M0NGQTQgLyogUGxhdGZvcm1UZXh0VHJhY2suaCAqLywKIAkJ
CQkwNzRFODJCODE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmNwcCAqLywK
IAkJCQkwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggKi8s
CkBAIC0yODM1NSw2ICsyODM3NSw3IEBACiAJCQkJQ0REREVBMkMyNTM4Q0UwNDAwQTEzMDBDIC8q
IE1lZGlhTWV0YWRhdGEuaWRsICovLAogCQkJCUNERERFQTMwMjUzOENFMUUwMEExMzAwQyAvKiBN
ZWRpYU1ldGFkYXRhSW5pdC5oICovLAogCQkJCUNERERFQTJGMjUzOENFMUUwMEExMzAwQyAvKiBN
ZWRpYU1ldGFkYXRhSW5pdC5pZGwgKi8sCisJCQkJMDczNkI3MzMyNjBBN0I2NDAwRTA2OTk0IC8q
IE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbCAqLywKIAkJCQlDRERERUEzNDI1MzhDRTYy
MDBBMTMwMEMgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggKi8sCiAJCQkJQ0REREVBMzMyNTM4Q0U2
MjAwQTEzMDBDIC8qIE1lZGlhUG9zaXRpb25TdGF0ZS5pZGwgKi8sCiAJCQkJQ0REREVBMjQyNTM4
Q0Q4MDAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvbi5jcHAgKi8sCkBAIC0yODM2Niw4ICsyODM4Nywx
NSBAQAogCQkJCUNERERFQTM1MjUzOENFNzAwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25BY3Rpb25E
ZXRhaWxzLmlkbCAqLywKIAkJCQlDRERERUEzQTI1MzhFOUMyMDBBMTMwMEMgLyogTWVkaWFTZXNz
aW9uQWN0aW9uSGFuZGxlci5oICovLAogCQkJCUNERERFQTM5MjUzOEU5QzIwMEExMzAwQyAvKiBN
ZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmlkbCAqLywKKwkJCQkwNzJEQkMwNTI1REM2QkQzMDBB
MTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3MkRCQzAzMjVE
QzZCRDMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oICovLAorCQkJCTA3MkRC
QkZCMjVEQjM4QkMwMEExMzUwRSAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgKi8sCisJ
CQkJMDczNkI3MzAyNjA5NEEzNzAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4
aW4uaWRsICovLAogCQkJCUNERERFQTI5MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25Q
bGF5YmFja1N0YXRlLmggKi8sCiAJCQkJQ0REREVBMjgyNTM4Q0RDQjAwQTEzMDBDIC8qIE1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGUuaWRsICovLAorCQkJCTA3MzZCNzMyMjYwOTU1NTQwMEUwNjk5
NCAvKiBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbCAqLywKKwkJCQkwNzQ0NzFGRDI1RTE4
MDA1MDA1NEIyMzEgLyogTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oICovLAorCQkJCTA3NDQ3MUZG
MjVFMTgwMDUwMDU0QjIzMSAvKiBNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbCAqLywKIAkJCQlD
RERERUEyNTI1MzhDREFCMDBBMTMwMEMgLyogTmF2aWdhdG9yK01lZGlhU2Vzc2lvbi5pZGwgKi8s
CiAJCQkJQ0REREVBMjcyNTM4Q0RBQjAwQTEzMDBDIC8qIE5hdmlnYXRvck1lZGlhU2Vzc2lvbi5j
cHAgKi8sCiAJCQkJQ0REREVBMjYyNTM4Q0RBQjAwQTEzMDBDIC8qIE5hdmlnYXRvck1lZGlhU2Vz
c2lvbi5oICovLApAQCAtMjgzOTQsNiArMjg0MjIsOCBAQAogCQkJCUNERERFQTQwMjUzOTExREIw
MEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMuaCAqLywKIAkJCQlDRERERUE0
RDI1MzkxM0JCMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmNwcCAqLywK
IAkJCQlDRERERUE0RTI1MzkxM0JDMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25BY3Rpb25IYW5k
bGVyLmggKi8sCisJCQkJMDcyREJDMDcyNURDNkVEQTAwQTEzNTBFIC8qIEpTTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuY3BwICovLAorCQkJCTA3MkRCQzA2MjVEQzZFREEwMEExMzUwRSAvKiBKU01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCiAJCQkJQ0REREVBNDYyNTM5MTFERDAwQTEzMDBD
IC8qIEpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAgKi8sCiAJCQkJQ0REREVBNDIyNTM5
MTFEQzAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAogCQkJKTsK
QEAgLTM0MjkxLDYgKzM0MzIxLDcgQEAKIAkJCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyog
UGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRUZDRDdDMTlEQjMzREMwMDM4
NzZENyAvKiBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3MEUwOTE5MTg3NUVFRkMwMDNBMUQzQyAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMDcwOEYyQjYyNURERTQ1RDAwNEY5MDg2IC8qIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Rjk0NDE2MTg2NEQwNDYw
MDVEMzFDQiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzNUM0NzY5MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybU1vdXNlRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM1OTg5MDU4MTRFOUMyOTkwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3Rl
Ym9hcmQuaCBpbiBIZWFkZXJzICovLApAQCAtMzYxOTIsNiArMzYyMjMsNyBAQAogCQkJCTUxMDU4
QURCMUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTA1OEFERDFENjc5MkMxMDA5QTUzOEMgLyogTW9ja0dhbWVwYWRQcm92aWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0MTU3RUJGQTFFM0FCNjc5MDBBQzlGRTkgLyogTW9ja0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3NDBCMTQ0MjVERTMxRjgw
MEUzOERCQSAvKiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQ2RjNFOTAxQzFFQ0IyNzAwNjFEQkQ0IC8qIE1vY2tQYWdlT3ZlcmxheS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyRDk3RjA0NzE5REQ0MTNDMDAxRUU5QzMgLyogTW9ja1BhZ2VPdmVy
bGF5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQUZFREU3MUY4QkZGNkQwMDg3MDEz
RiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDYwODhl
NjIyYmRhNWVkMzRiMWEyZjBjM2NmMjJkNWM0NjRjMDZmMGQuLjg2ZWFhYTAwZjE2YmJiNmY1YmZm
YTRiODk4YWFmMTc5MWFlMzc4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE3MSw2ICsxNzEsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgbWFjcm8oTWVkaWFRdWVyeUxpc3RFdmVudCkgXAogICAgIG1hY3JvKE1lZGlh
UmVjb3JkZXIpIFwKICAgICBtYWNybyhNZWRpYVJlY29yZGVyRXJyb3JFdmVudCkgXAorICAgIG1h
Y3JvKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKSBcCiAgICAgbWFjcm8oTWVkaWFTb3VyY2UpIFwK
ICAgICBtYWNybyhNZWRpYVN0cmVhbSkgXAogICAgIG1hY3JvKE1lZGlhU3RyZWFtVHJhY2spIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDEzOTQ0NDM5ODE0NjA5MDllZjJhMGZlNWJjN2Q3
OWE5OWI3MmU1NTUuLjJjNjgwN2RjYTY1N2Y2NTAyYjIwZjQxYzVhZGEyZWU2MWIzZjJlNjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtMTAxLDYgKzEwMSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhjb25uZWN0aW5nKSBcCiAgICAgbWFjcm8oY29udGV4dG1lbnUpIFwK
ICAgICBtYWNybyhjb250cm9sbGVyY2hhbmdlKSBcCisgICAgbWFjcm8oY29vcmRpbmF0b3JjaGFu
Z2UpIFwKICAgICBtYWNybyhjb3B5KSBcCiAgICAgbWFjcm8oY3VlY2hhbmdlKSBcCiAgICAgbWFj
cm8oY3V0KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0
b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCA2
OTZlYTljZWJkMjFkMTQ5YWVhNWUwYmI2NDM3YWNlZmI4Y2EyMDM0Li4xYTgwMWY0ODA5ZDQ1MTZm
NTFiODk1MDgyZGUwMGViN2NkOWM1YWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4KQEAgLTIzLDYgKzIzLDcgQEAgTWVkaWFEZXZpY2VzIGNvbmRpdGlvbmFsPU1F
RElBX1NUUkVBTQogTWVkaWFLZXlTZXNzaW9uIGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQQog
TWVkaWFRdWVyeUxpc3QKIE1lZGlhUmVjb3JkZXIgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCitN
ZWRpYVNlc3Npb24gY29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTgogTWVkaWFTb3VyY2UgY29uZGl0
aW9uYWw9TUVESUFfU09VUkNFCiBNZWRpYVN0cmVhbSBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0K
IE1lZGlhU3RyZWFtVHJhY2sgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dHJpbmdDYWxsYmFjay5oCmluZGV4IGNlMWMzYTU2ODJmZjFiN2RhMzk4ZjljM2E0NDBhNzQ5N2Q5
MzJmMTkuLjY3OWZiOWM4OWRhYTc4OGJiYmY1YTc1NzVkOWNkMjExOTA0NjI1NjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TdHJpbmdDYWxsYmFjay5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KGNvbnN0IFN0cmluZyYgZGF0
YSkgPSAwOwogCiAgICAgLy8gSGVscGVyIHRvIHBvc3QgY2FsbGJhY2sgdGFzay4KLSAgICB2b2lk
IHNjaGVkdWxlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYg
ZGF0YSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZUNhbGxiYWNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIGRhdGEpOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45MTE3ODUxMTM5OWY0MTVmNzgxYjMyYWFlZTc2YzExM2ViMTdlYmNkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBj
b252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKQoreworICAgIHN0YXRpYyBjb25zdCBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJ
TkdfSU1QTCgiSGF2ZU5vdGhpbmciKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
IkhhdmVNZXRhZGF0YSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUN1
cnJlbnREYXRhIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlRnV0dXJl
RGF0YSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUVub3VnaERhdGEi
KSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5v
dGhpbmcpLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgaXMgbm90IDAgYXMg
ZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZv
cm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1l
dGFkYXRhKSA9PSAxLCAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhIGlzIG5v
dCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6
OkhhdmVDdXJyZW50RGF0YSkgPT0gMiwgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVDdXJy
ZW50RGF0YSBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlOjpIYXZlRnV0dXJlRGF0YSkgPT0gMywgIk1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGU6OkhhdmVGdXR1cmVEYXRhIGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhKSA9PSA0LCAiTWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZTo6SGF2ZUVub3VnaERhdGEgaXMgbm90IDQgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZh
bHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihzdGF0ZSldOwor
fQorCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBz
dGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAg
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5vbmUiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIlBhdXNlZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiUGxh
eWluZyIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydCghc3RhdGljX2Nhc3Q8c2l6ZV90PihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
OjpOb25lKSwgIk1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6Ok5vbmUgaXMgbm90IDAgYXMgZXhw
ZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oUGxhdGZvcm1N
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2Vk
KSA9PSAxLCAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZTo6UGF1c2VkIGlzIG5vdCAxIGFzIGV4
cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KFBsYXRmb3Jt
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGU6OlBsYXlp
bmcpID09IDIsICJNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlOjpQbGF5aW5nIGlzIG5vdCAyIGFz
IGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oc3RhdGUpIDwgV1RG
X0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNp
emVfdD4oc3RhdGUpXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTEwZGM1MWQyYTZmODBhYmM5N2FhNjA3ZDllOWE1MTAx
NTBmMzJlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaApAQCAtMCwwICsxLDEwMyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCisKKyNpbmNsdWRlICJFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2lu
Y2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ig
OiBwdWJsaWMgUmVmQ291bnRlZDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgPSBk
ZWZhdWx0OworCisgICAgdXNpbmcgU2Vla0NvbXBsZXRlZENhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vl
a1RvKGRvdWJsZSwgU2Vla0NvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHVzaW5nIFBs
YXlDb21wbGV0ZWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhj
ZXB0aW9uPiYmKT47CisgICAgdmlydHVhbCB2b2lkIHBsYXkoUGxheUNvbXBsZXRlZENhbGxiYWNr
JiYpID0gMDsKKworICAgIHVzaW5nIFBhdXNlQ29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+OworICAgIHZpcnR1YWwgdm9pZCBw
YXVzZShQYXVzZUNvbXBsZXRlZENhbGxiYWNrJiYpID0gMDsKKworICAgIHVzaW5nIFNldFRyYWNr
Q29tcGxldGVkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2Vw
dGlvbj4mJik+OworICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRy
YWNrQ29tcGxldGVkQ2FsbGJhY2smJikgPSAwOworCisgICAgdm9pZCBzZXRMb2dnZXIoY29uc3Qg
TG9nZ2VyJiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCisgICAgeworICAgICAg
ICBtX2xvZ2dlciA9IG1ha2VSZWZQdHIobG9nZ2VyKTsKKyAgICAgICAgbV9sb2dJZGVudGlmaWVy
ID0gbG9nSWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBzdHJ1Y3QgTWVkaWFQb3NpdGlvblN0YXRl
IHsKKyAgICAgICAgZG91YmxlIGR1cmF0aW9uID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjppbmZpbml0eSgpOworICAgICAgICBkb3VibGUgcGxheWJhY2tSYXRlID0gMTsKKyAgICAgICAg
ZG91YmxlIHBvc2l0aW9uID0gMDsKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBNZWRpYVNlc3Np
b25SZWFkeVN0YXRlIDogdWludDhfdCB7CisgICAgICAgIEhhdmVOb3RoaW5nLAorICAgICAgICBI
YXZlTWV0YWRhdGEsCisgICAgICAgIEhhdmVDdXJyZW50RGF0YSwKKyAgICAgICAgSGF2ZUZ1dHVy
ZURhdGEsCisgICAgICAgIEhhdmVFbm91Z2hEYXRhLAorICAgIH07CisKKyAgICBlbnVtIGNsYXNz
IE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgOiB1aW50OF90IHsKKyAgICAgICAgTm9uZSwKKyAg
ICAgICAgUGF1c2VkLAorICAgICAgICBQbGF5aW5nLAorICAgIH07CisKKyAgICB2aXJ0dWFsIHZv
aWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0
YXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUpID0gMDsKKworcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IFBsYXRm
b3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CisKKyAgICBjb25zdCBMb2dn
ZXIqIGxvZ2dlclB0cigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CisgICAgY29u
c3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsg
fQorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJQbGF0Zm9y
bU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5u
ZWwoKSBjb25zdCB7IHJldHVybiBMb2dNZWRpYTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxj
b25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsK
K307CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlKTsKK1N0cmluZyBjb252ZXJ0
RW51bWVyYXRpb25Ub1N0cmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlKTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
NzYzNDA5ZjY2MWEyNzE5ZGFiZjA5MzNlMGY4OWQyZTAyY2VjNjRmNy4uNzQyZWU3ZGY3YjI5MDcw
MGUwNzhkNGZjMDQ2OWJhM2UxOGExMTc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcApAQCAtMzM3LDYgKzMzNywxMiBAQAogI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1NhbmRi
b3hTUEkuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JNZWRpYVNlc3Npb24u
aCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAjaW5jbHVkZSAiSW1h
Z2VFeHRyYWN0aW9uUmVzdWx0LmgiCiAjZW5kaWYKQEAgLTYxMTIsOSArNjExOCw0MCBAQCB2b2lk
IEludGVybmFsczo6bG9hZEFydHdvcmtJbWFnZShTdHJpbmcmJiB1cmwsIEFydHdvcmtJbWFnZVBy
b21pc2UmJiBwcm9taXNlKQogICAgIH0pOwogICAgIG1fYXJ0d29ya0xvYWRlci0+cmVxdWVzdElt
YWdlUmVzb3VyY2UoKTsKIH0KLQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUikKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsczo6cmVnaXN0ZXJNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVm
UHRyPFN0cmluZ0NhbGxiYWNrPiYmIGxpc3RlbmVyKQoreworICAgIGlmIChtX21lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byogZG9jdW1lbnQg
PSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZG9t
V2luZG93KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Ig
fTsKKworICAgIGlmICghZG9jdW1lbnQtPnNldHRpbmdzKCkubWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJy
b3IgfTsKKworICAgIGF1dG8mIHNlc3Npb24gPSBOYXZpZ2F0b3JNZWRpYVNlc3Npb246Om1lZGlh
U2Vzc2lvbihkb2N1bWVudC0+ZG9tV2luZG93KCktPm5hdmlnYXRvcigpKTsKKyAgICBhdXRvIG1v
Y2sgPSBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShjb250ZXh0LCBXVEZNb3Zl
KGxpc3RlbmVyKSk7CisgICAgbV9tb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgPSBtb2NrLnB0
cigpOworICAgIG1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgPSBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6Y3JlYXRlKG1vY2suZ2V0KCkpOworICAgIHNlc3Npb24uc2V0Q29vcmRpbmF0b3IobV9t
ZWRpYVNlc3Npb25Db29yZGluYXRvci5nZXQoKSk7CisKKyAgICByZXR1cm4geyB9OworfQorCitF
eGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
ckNvbW1hbmRzU2hvdWxkRmFpbChib29sIHNob3VsZEZhaWwpCit7CisgICAgaWYgKCFtX21vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CisKKyAgICBtX21vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci0+c2V0
Q29tbWFuZHNTaG91bGRGYWlsKHNob3VsZEZhaWwpOworICAgIHJldHVybiB7IH07Cit9CisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pCisKIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc3Ry
aW5nKFBhcnRpYWxPcmRlcmluZyBvcmRlcmluZykKIHsKICAgICBpZiAoaXNfbHQob3JkZXJpbmcp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNjBlY2M0ODhiNDMyMDc3ZWIyZTM2
MTJjMDZmYjRlOThkYTZhZDY2Yi4uMjEzZDg3Y2VmNjRhZDVhZGU2YmEwMjU4MDc0ODFlNTk4OTA5
Nzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xMzYsNiArMTM2LDEwIEBA
IGNsYXNzIFdlYlhSVGVzdDsKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIGNsYXNzIE1lZGlh
U2Vzc2lvbjsKIHN0cnVjdCBNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzOworI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7
CitjbGFzcyBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I7CisjZW5kaWYKICNlbmRpZgogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CkBAIC0x
MDkzLDEwICsxMDk3LDE3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAg
ICBFeGNlcHRpb25Pcjxkb3VibGU+IGN1cnJlbnRNZWRpYVNlc3Npb25Qb3NpdGlvbihjb25zdCBN
ZWRpYVNlc3Npb24mKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZW5kTWVkaWFTZXNzaW9uQWN0
aW9uKE1lZGlhU2Vzc2lvbiYsIGNvbnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMmKTsKLSAg
ICB1c2luZyBBcnR3b3JrSW1hZ2VQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjZTxJbWFnZURhdGE+PjsKKworICAgICAgICB1c2luZyBBcnR3b3JrSW1hZ2VQcm9taXNlID0g
RE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxJbWFnZURhdGE+PjsKICAgICB2b2lkIGxv
YWRBcnR3b3JrSW1hZ2UoU3RyaW5nJiYsIEFydHdvcmtJbWFnZVByb21pc2UmJik7CisKKyNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBy
ZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21tYW5kc1Nob3VsZEZhaWwoYm9vbCk7CiAjZW5k
aWYKIAorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCiAgICAgZW51bSBUcmVlVHlw
ZSA6IHVpbnQ4X3QgeyBUcmVlLCBTaGFkb3dJbmNsdWRpbmdUcmVlLCBDb21wb3NlZFRyZWUgfTsK
ICAgICBTdHJpbmcgdHJlZU9yZGVyKE5vZGUmLCBOb2RlJiwgVHJlZVR5cGUpOwogICAgIFN0cmlu
ZyB0cmVlT3JkZXJCb3VuZGFyeVBvaW50cyhOb2RlJiBjb250YWluZXJBLCB1bnNpZ25lZCBvZmZz
ZXRBLCBOb2RlJiBjb250YWluZXJCLCB1bnNpZ25lZCBvZmZzZXRCLCBUcmVlVHlwZSk7CkBAIC0x
MTQwLDYgKzExNTEsMTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgUmVmUHRy
PFdlYlhSVGVzdD4gbV94clRlc3Q7CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
X0NPT1JESU5BVE9SKQorICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gbV9tZWRp
YVNlc3Npb25Db29yZGluYXRvcjsKKyAgICBSZWZQdHI8TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yPiBtX21vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGU4
NWUwOGRmODhjZDk1ODAxOWRiZTQ2MTNlMzZkNDlkYjg2MTE2ODMuLjJjOTQ4YjIyYjc3MTRjMTk3
M2YyYzM0ZjgxZGVlNzA4YzIzNmNiMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKQEAgLTk5MSw2ICs5OTEsOSBAQCBlbnVtIFRyZWVUeXBlIHsKICAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU0VTU0lPTl0gdW5kZWZpbmVkIHNlbmRNZWRpYVNlc3Npb25BY3Rpb24oTWVkaWFTZXNz
aW9uIHNlc3Npb24sIE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgYWN0aW9uRGV0YWlscyk7CiAg
ICAgW0NvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05dIFByb21pc2U8SW1hZ2VEYXRhPiBsb2FkQXJ0
d29ya0ltYWdlKERPTVN0cmluZyB1cmwpOwogICAgIAorICAgIFtDb25kaXRpb25hbD1NRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SLCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB1bmRl
ZmluZWQgcmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU3RyaW5nQ2FsbGJhY2sg
Y2FsbGJhY2spOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SXSB1
bmRlZmluZWQgc2V0TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWls
KGJvb2xlYW4gc2hvdWxkRmFpbCk7CisKICAgICBET01TdHJpbmcgdHJlZU9yZGVyKE5vZGUgYSwg
Tm9kZSBiLCBvcHRpb25hbCBUcmVlVHlwZSB0cmVlID0gIlRyZWUiKTsKICAgICBET01TdHJpbmcg
dHJlZU9yZGVyQm91bmRhcnlQb2ludHMoTm9kZSBjb250YWluZXJBLCB1bnNpZ25lZCBsb25nIG9m
ZnNldEEsIE5vZGUgY29udGFpbmVyQiwgdW5zaWduZWQgbG9uZyBvZmZzZXRCLCBvcHRpb25hbCBU
cmVlVHlwZSB0cmVlID0gIlRyZWUiKTsKICAgICBib29sZWFuIHJhbmdlQ29udGFpbnNOb2RlKEFi
c3RyYWN0UmFuZ2UgcmFuZ2UsIE5vZGUgbm9kZSwgb3B0aW9uYWwgVHJlZVR5cGUgdHJlZSA9ICJU
cmVlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM3NWZiNjEzMjUwZDcxZDcxMTQ1NzY3NDk0
M2E1YzAxNzg1MjlmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2NrTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaCIKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
KyNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVVVJRC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUmVmPE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmIGxpc3RlbmVyKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihjb250ZXh0LCBXVEZNb3Zl
KGxpc3RlbmVyKSkpOworfQorCitNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQ
dHI8U3RyaW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkK
KyAgICAsIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lcihXVEZNb3ZlKGxpc3RlbmVyKSkKK3sKK30KKwor
T3B0aW9uYWw8RXhjZXB0aW9uPiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlc3VsdCgp
IGNvbnN0Cit7CisgICAgaWYgKG1fZmFpbENvbW1hbmRzKQorICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9
CisKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUs
IFNlZWtDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFMV0FZU19MT0dfSUZf
UE9TU0lCTEUoTE9HSURFTlRJRklFUiwgdGltZSk7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhb
dGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2socmVzdWx0KCkpOworICAgIH0pOworfQor
Cit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShQbGF5Q29tcGxldGVkQ2Fs
bGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5U
SUZJRVIpOworICAgIG1fY29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAg
IGNhbGxiYWNrKHJlc3VsdCgpKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlKFBhdXNlQ29tcGxldGVkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sK
KyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAgIG1fY29udGV4
dC0+cG9zdFRhc2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdCgpKTsK
KyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFRyYWNr
KGNvbnN0IFN0cmluZywgU2V0VHJhY2tDb21wbGV0ZWRDYWxsYmFjayYmIGNhbGxiYWNrKQorewor
ICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9jb250ZXh0
LT5wb3N0VGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2socmVzdWx0KCkpOwor
ICAgIH0pOworfQorCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25T
dGF0ZUNoYW5nZWQoT3B0aW9uYWw8UGxhdGZvcm1NZWRpYVNlc3Npb25Db29yZGluYXRvcjo6TWVk
aWFQb3NpdGlvblN0YXRlPikKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5U
SUZJRVIpOworICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lci0+c2NoZWR1bGVDYWxsYmFjayhtX2Nv
bnRleHQuZ2V0KCksICJwb3NpdGlvblN0YXRlQ2hhbmdlZCIpOworfQorCit2b2lkIE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdB
WVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHN0YXRlKTsKKyAgICBtX3N0YXRlQ2hh
bmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgpLCAicmVhZHlTdGF0
ZUNoYW5nZWQiKTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXli
YWNrU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShM
T0dJREVOVElGSUVSLCBzdGF0ZSk7CisgICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVs
ZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgInBsYXliYWNrU3RhdGVDaGFuZ2VkIik7Cit9CisK
K30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODcwYmI0Y2IwYmU5NmY4NWZkNDU3MGU4ZTM5M2I3MjM2ZmU4ZjJiMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKKyNpbmNsdWRlICJHZW5l
cmljRXZlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBTdHJpbmdDYWxsYmFjazsK
KworY2xhc3MgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIDogcHVibGljIFBsYXRmb3JtTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJik7CisKKyAg
ICB2b2lkIHNldENvbW1hbmRzU2hvdWxkRmFpbChib29sIHNob3VsZEZhaWwpIHsgbV9mYWlsQ29t
bWFuZHMgPSBzaG91bGRGYWlsOyB9CisKK3ByaXZhdGU6CisgICAgTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+
JiYpOworCisgICAgdm9pZCBzZWVrVG8oZG91YmxlLCBTZWVrQ29tcGxldGVkQ2FsbGJhY2smJikg
ZmluYWw7CisgICAgdm9pZCBwbGF5KFBsYXlDb21wbGV0ZWRDYWxsYmFjayYmKSBmaW5hbDsKKyAg
ICB2b2lkIHBhdXNlKFBhdXNlQ29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBz
ZXRUcmFjayhjb25zdCBTdHJpbmcsIFNldFRyYWNrQ29tcGxldGVkQ2FsbGJhY2smJikgZmluYWw7
CisKKyAgICB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKE9wdGlvbmFsPE1lZGlhUG9zaXRpb25T
dGF0ZT4pIGZpbmFsOworICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZSkgZmluYWw7CisgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlKSBmaW5hbDsKKworICAgIE9wdGlvbmFsPEV4Y2VwdGlvbj4gcmVzdWx0
KCkgY29uc3Q7CisKKyAgICBSZWY8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9jb250ZXh0Owor
ICAgIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4gbV9zdGF0ZUNoYW5nZUxpc3RlbmVyOworICAgIGJv
b2wgbV9mYWlsQ29tbWFuZHMgeyBmYWxzZSB9OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGQ2MGY3MjQ4NDdhYTUxNmI2ZmZj
YTM2NjU5ODM0OTdiNjY5Y2Q5MC4uMWUwODcwMmUzNDViZDBmZjY1YWUwNzJjMThjODhlYjQyM2Zm
MjhjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAyLTE4ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIEV4cGVyaW1lbnRh
bCBNZWRpYVNlc3Npb24gY29vcmRpbmF0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMjE1OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQ1MDg4
NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgICogcGxhdGZv
cm0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zZXNzaW9uL21vY2st
Y29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1z
ZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbDogQWRkZWQuCisKIDIwMjEtMDMtMjMgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIDIgd2ViIGF1ZGlv
IFdQVCB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3MgaXMgZW5hYmxlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNDEwY2YzNmFiYzkzMTA5MmZhYjA3Mzk5MTU2N2Q5ZTYyMWY4YWM4
NS4uNjM4OTAwZWVlZGM5YWYxYTJjMjQ0MTMzZTdhZGUzYjkzNDVjZjEzNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC00NjM3LDYgKzQ2MzcsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1hZnRlci1pbml0aWFsLWxheW91dC93cgogIyBD
b2NvYS1vbmx5CiBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtaGRyLXN3aXRjaC5odG1sIFsgU2tp
cCBdCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNhbnBsYXl0aHJvdWdoLXdlYm0uaHRtbCBbIFNr
aXAgXQorbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwgWyBTa2lwIF0K
IAogIyBUaGVzZSB0ZXN0cyByZWx5IG9uIHdlYmtpdC10ZXN0LXJ1bm5lciBmbGFncyB0aGF0IGFy
ZW4ndCBpbXBsZW1lbnRlZCBmb3IgRHVtcFJlbmRlclRyZWUsIHNvIHRoZXkgd2lsbCBmYWlsIHVu
ZGVyIGxlZ2FjeSBXZWJLaXQuCiBlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRvLmh0bWwgWyBGYWls
dXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhh
cm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBmZWM2ZDY0Mzg5ZWRlMWMyMGQ0ZjI2MjM1
N2YxMjYyYzcxMWEwMTM1Li43MWRiY2MzOGQzOTE5YmIzYzBiMzYyOGM0ZDEwZGQyNjQ3OTE1Y2U4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhc2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYXNlc3Npb24vaWRsaGFy
bmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xMiwxMCArMTIsMTQgQEAgUEFTUyBOYXZpZ2F0
b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JD
b25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIE1lZGlhU2Vz
c2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CitGQUlMIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9lcXVhbHM6IHByb3RvdHlwZSBvZiBzZWxmJ3Mg
cHJvcGVydHkgIk1lZGlhU2Vzc2lvbiIgaXMgbm90IEZ1bmN0aW9uLnByb3RvdHlwZSBleHBlY3Rl
ZCBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGJ1dCBnb3Qg
ZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50VGFyZ2V0KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30i
CiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBNZWRpYVNl
c3Npb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lCi1QQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAor
RkFJTCBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogcHJvdG90eXBlIG9mIE1l
ZGlhU2Vzc2lvbi5wcm90b3R5cGUgaXMgbm90IE9iamVjdC5wcm90b3R5cGUgZXhwZWN0ZWQgb2Jq
ZWN0ICJbb2JqZWN0IE9iamVjdF0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IEV2ZW50VGFyZ2V0
XSIKIFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQog
UEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CiBQQVNT
IE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtZXRhZGF0YQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQwNmY0ODJmNDg5YzcyNmY0NzI4ODBlZTY2NzZmOTI0
ZDA1ZTU2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Np
b24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4MSBAQAorCisqKiBU
aGVyZSBzaG91bGQgYmUgbm8gbWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yIGluaXRpYWxseS4KK0VY
UEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yID09ICd1bmRlZmluZWQn
KSBPSworCisqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yY2hhbmdlIGV2ZW50
IGlzIGZpcmVkIHdoZW4gaXQgY2hhbmdlcy4KK1JVTihpbnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IoY2hhbmdlSGFuZGxlcikpCitFVkVOVChjb29yZGluYXRvcmNo
YW5nZSkKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yICE9ICd1
bmRlZmluZWQnKSBPSworCisqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIHN1
Y2NlZWQsIHByb21pc2VzIHJlc29sdmUgYW5kIG1lZGlhU2Vzc2lvbiBhY3Rpb24gaGFuZGxlcnMg
YXJlIGNhbGxlZC4KK1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5
KCkKK0FDVElPTihwbGF5KQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAncGxheScpIE9LCisK
K1Rlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpCitBQ1RJT04o
cGF1c2UpCitFWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdwYXVzZScpIE9LCisKK1Rlc3QgbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrdG8oKQorQUNUSU9OKHNlZWt0bykK
K0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3NlZWt0bycpIE9LCisKKyoqIFRlc3QgdGhhdCB3
aGVuIGNvb3JkaW5hdG9yIG1ldGhvZHMgc3VjY2VlZCwgcHJvbWlzZXMgcmVqZWN0IGFuZCBtZWRp
YVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBub3QgY2FsbGVkLgorVGVzdCBuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9
PSAnJykgT0sKKworVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBhdXNl
KCkKK0VYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisKK1Rlc3QgbmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrdG8oKQorRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9
PSAnJykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGluYXRv
ciB3aGVuIHBvc2l0aW9uU3RhdGUgY2hhbmdlcy4KK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnNldFBvc2l0aW9uU3RhdGUoeyBkdXJhdGlvbjogMSwgcGxheWJhY2tSYXRlOiAxLCBwb3NpdGlv
bjogMCB9KSkKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3Bvc2l0aW9uU3RhdGVDaGFuZ2Vk
JykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGluYXRvciB3
aGVuIHJlYWR5U3RhdGUgY2hhbmdlcy4KK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnJlYWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnJlYWR5U3RhdGUgPSAnaGF2ZU1ldGFkYXRhJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2Ug
PT0gJ3JlYWR5U3RhdGVDaGFuZ2VkJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0YScpIE9LCitSVU4obmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVDdXJyZW50RGF0YScpCitFWFBF
Q1RFRCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAo
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlQ3VycmVudERhdGEnKSBP
SworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZl
Q3VycmVudERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9
ICdoYXZlRnV0dXJlRGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdyZWFkeVN0YXRl
Q2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRl
ID09ICdoYXZlRnV0dXJlRGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVGdXR1cmVEYXRhJykgT0sKK1JVTihuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUVub3VnaERhdGEnKQorRVhQRUNURUQgKGxhdGVz
dENoYW5nZSA9PSAncmVhZHlTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUVub3VnaERhdGEnKSBPSworCitFWFBFQ1RF
RCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRW5vdWdoRGF0YScp
IE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVOb3RoaW5n
JykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3JlYWR5U3RhdGVDaGFuZ2VkJykgT0sKK0VY
UEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5n
JykgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGluYXRvciB3
aGVuIHBsYXliYWNrU3RhdGUgY2hhbmdlcy4KK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnBsYXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Np
b24ucGxheWJhY2tTdGF0ZSA9ICdwYXVzZWQnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAn
cGxheWJhY2tTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Np
b24ucGxheWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKK1JVTihuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAncGxheWluZycpCitFWFBFQ1RFRCAobGF0ZXN0
Q2hhbmdlID09ICdwbGF5YmFja1N0YXRlQ2hhbmdlZCcpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwbGF5aW5nJykgT0sKKworRVhQRUNURUQg
KG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGxheWluZycpIE9LCitS
VU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ25vbmUnKQorRVhQRUNU
RUQgKGxhdGVzdENoYW5nZSA9PSAncGxheWJhY2tTdGF0ZUNoYW5nZWQnKSBPSworRVhQRUNURUQg
KG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAnbm9uZScpIE9LCisKKwor
RU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lv
bi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9u
L21vY2stY29vcmRpbmF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzgxMTRhOGI1MzBmNGRkOTljMzEx
OGQ5YTU3MmZlYjVlNWMxNzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKQEAgLTAsMCArMSwxMzIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bW9jay1tZWRpYXNlc3Np
b24tY29vcmRpbmF0b3I8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorCisgICAgZnVuY3Rpb24gY2hhbmdlSGFuZGxlcihj
aGFuZ2UpCisgICAgeworICAgICAgICB3aW5kb3cubGF0ZXN0Q2hhbmdlID0gY2hhbmdlOworICAg
IH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4g
eworCisgICAgICAgIHdpbmRvdy5sYXRlc3RBY3Rpb24gPSAnJzsKKyAgICAgICAgd2luZG93Lmxh
dGVzdENoYW5nZSA9ICcnOworCisgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAg
ICAgICAgICAgZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1aXJlcyBJbnRlcm5hbHMnKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGNoYW5nZVByb21pc2Ug
PSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYVNl
c3Npb24uYWRkRXZlbnRMaXN0ZW5lcignY29vcmRpbmF0b3JjaGFuZ2UnLCAoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZlbnQudHlwZX0pYCk7Cisg
ICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwor
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGhl
cmUgc2hvdWxkIGJlIG5vIG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciBpbml0aWFsbHkuJykKKwor
ICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3In
LCB1bmRlZmluZWQpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNv
bGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcmNoYW5nZSBldmVu
dCBpcyBmaXJlZCB3aGVuIGl0IGNoYW5nZXMuJykKKworICAgICAgICBydW4oJ2ludGVybmFscy5y
ZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihjaGFuZ2VIYW5kbGVyKScpOworCisg
ICAgICAgIGF3YWl0IGNoYW5nZVByb21pc2U7CisgICAgICAgIAorICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3InLCB1bmRlZmluZWQsICchPScp
OworCisgICAgICAgIFsncGxheScsICdwYXVzZScsICdzZWVrdG8nXS5mb3JFYWNoKGFjdGlvbiA9
PiB7CisgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnNldEFjdGlvbkhhbmRsZXIo
YWN0aW9uLCBhY3Rpb25EZXRhaWxzID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
YEFDVElPTigke2FjdGlvbkRldGFpbHMuYWN0aW9ufSlgKTsKKyAgICAgICAgICAgICAgICBsYXRl
c3RBY3Rpb24gPSBhY3Rpb25EZXRhaWxzLmFjdGlvbjsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKworICAgICAgICBsZXQgdGVzdEFjdGlvbiA9IGFzeW5jIChhY3Rpb24sIGZ1bmMsIGZv
cmNlRmFpbHVyZSkgPT4geworICAgICAgICAgICAgbGF0ZXN0QWN0aW9uID0gJyc7CisKKyAgICAg
ICAgICAgIGxldCBzdWNjZWVkZWQ7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZShgVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLiR7
YWN0aW9ufSgpYCk7CisgICAgICAgICAgICAgICAgYXdhaXQgZnVuYygpOworICAgICAgICAgICAg
ICAgIGlmIChmb3JjZUZhaWx1cmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShg
RkFJTDogJHtmdW5jLnRvU3RyaW5nKCl9IHJlc29sdmVkIGJ1dCBzaG91bGQgaGF2ZSByZWplY3Rl
ZGApOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0aW9uJywgYWN0aW9u
KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICAgICAgaWYgKCFmb3Jj
ZUZhaWx1cmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRkFJTDogJHtmdW5j
LnRvU3RyaW5nKCl9IHRocmV3ICR7ZXh9YCk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCdsYXRlc3RBY3Rpb24nLCAnJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgnJyk7CisgICAgICAgIH07CisKKyAgICAgICAgbGV0IGFjdGlvbnMgPSBbIAorICAg
ICAgICAgICAgeyBhY3Rpb246ICdwbGF5JywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpIH0sIH0sCisgICAgICAgICAgICB7IGFj
dGlvbjogJ3BhdXNlJywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRvci5tZWRpYVNlc3Np
b24uY29vcmRpbmF0b3IucGF1c2UoKSB9LCB9LAorICAgICAgICAgICAgeyBhY3Rpb246ICdzZWVr
dG8nLCBmdW5jIDogKCkgPT4geyByZXR1cm4gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGlu
YXRvci5zZWVrVG8oMTApIH0sIH0sCisgICAgICAgIF07CisKKyAgICAgICAgY29uc29sZVdyaXRl
KCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRv
ciBtZXRob2RzIHN1Y2NlZWQsICBwcm9taXNlcyByZXNvbHZlIGFuZCBtZWRpYVNlc3Npb24gYWN0
aW9uIGhhbmRsZXJzIGFyZSBjYWxsZWQuJykKKyAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChmYWxzZSk7CisgICAgICAgIGZv
ciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKQorICAgICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihh
Y3Rpb24uYWN0aW9uLCBhY3Rpb24uZnVuYywgZmFsc2UpOworCisgICAgICAgIGNvbnNvbGVXcml0
ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCAgcHJvbWlz
ZXMgcmVqZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBub3QgY2FsbGVk
LicpCisgICAgICAgIGludGVybmFscy5zZXRNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21t
YW5kc1Nob3VsZEZhaWwodHJ1ZSk7CisgICAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25z
KQorICAgICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihhY3Rpb24uYWN0aW9uLCBhY3Rpb24uZnVu
YywgdHJ1ZSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKGAqKiBUZXN0IHRoYXQgbWVkaWFTZXNz
aW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcG9zaXRpb25TdGF0ZSBjaGFuZ2VzLmApCisg
ICAgICAgIHJ1bignbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKHsgZHVy
YXRpb246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSknKTsKKyAgICAgICAgYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3Bvc2l0aW9uU3RhdGVD
aGFuZ2VkJywgJz09JywgMTAwKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAg
ICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRp
bmF0b3Igd2hlbiByZWFkeVN0YXRlIGNoYW5nZXMuJykKKyAgICAgICAgbGV0IHByZXZpb3VzU3Rh
dGUgPSAnaGF2ZU5vdGhpbmcnOworICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBbJ2hhdmVNZXRh
ZGF0YScsICdoYXZlQ3VycmVudERhdGEnLCAnaGF2ZUZ1dHVyZURhdGEnLCAnaGF2ZUVub3VnaERh
dGEnLCAnaGF2ZU5vdGhpbmcnXSkgeworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBwcmV2aW91c1N0YXRlKTsKKworICAgICAgICAg
ICAgbGF0ZXN0Q2hhbmdlID0gJyc7CisgICAgICAgICAgICBydW4oYG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucmVhZHlTdGF0ZSA9ICcke3N0YXRlfSdgKTsKKworICAgICAgICAgICAgYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3JlYWR5U3RhdGVDaGFuZ2VkJywg
Jz09JywgMTAwKTsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFT
ZXNzaW9uLnJlYWR5U3RhdGUnLCBzdGF0ZSk7CisgICAgICAgICAgICBwcmV2aW91c1N0YXRlID0g
c3RhdGU7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICB9OworCisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29y
ZGluYXRvciB3aGVuIHBsYXliYWNrU3RhdGUgY2hhbmdlcy4nKQorICAgICAgICBwcmV2aW91c1N0
YXRlID0gJ25vbmUnOworICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBbJ3BhdXNlZCcsICdwbGF5
aW5nJywgJ25vbmUnXSkgeworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZScsIHByZXZpb3VzU3RhdGUpOworCisgICAgICAgICAg
ICBsYXRlc3RDaGFuZ2UgPSAnJzsKKyAgICAgICAgICAgIHJ1bihgbmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5wbGF5YmFja1N0YXRlID0gJyR7c3RhdGV9J2ApOworCisgICAgICAgICAgICBhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAncGxheWJhY2tTdGF0ZUNoYW5n
ZWQnLCAnPT0nLCAxMDApOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZScsIHN0YXRlKTsKKyAgICAgICAgICAgIHByZXZpb3Vz
U3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIH07
CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0s
IHtvbmNlOiB0cnVlfSk7CisKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>