<?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>202797</bug_id>
          
          <creation_ts>2019-10-10 07:15:11 -0700</creation_ts>
          <short_desc>Implement Canvas.transferControlToOffscreen and OffscreenCanvasRenderingContext2D.commit</short_desc>
          <delta_ts>2020-08-12 02:06:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>202525</dependson>
    
    <dependson>202574</dependson>
    
    <dependson>206220</dependson>
    
    <dependson>215322</dependson>
          <blocked>183720</blocked>
    
    <blocked>202793</blocked>
    
    <blocked>202798</blocked>
    
    <blocked>209809</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>bburg</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pnormand</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1578632</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2019-10-10 07:15:11 -0700</bug_when>
    <thetext>Specs:

https://html.spec.whatwg.org/multipage/canvas.html#dom-canvas-transfercontroltooffscreen
https://html.spec.whatwg.org/multipage/canvas.html#offscreencontext2d-commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578665</commentid>
    <comment_count>1</comment_count>
      <attachid>380645</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2019-10-10 08:33:53 -0700</bug_when>
    <thetext>Created attachment 380645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618488</commentid>
    <comment_count>2</comment_count>
      <attachid>390644</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-02-13 08:16:47 -0800</bug_when>
    <thetext>Created attachment 390644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636123</commentid>
    <comment_count>3</comment_count>
      <attachid>395065</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-03-31 10:45:06 -0700</bug_when>
    <thetext>Created attachment 395065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636445</commentid>
    <comment_count>4</comment_count>
      <attachid>395157</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-01 03:27:41 -0700</bug_when>
    <thetext>Created attachment 395157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636530</commentid>
    <comment_count>5</comment_count>
      <attachid>395157</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-01 09:28:38 -0700</bug_when>
    <thetext>Comment on attachment 395157
Patch

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

Looks good overall. Lots of coding style comments. Generally confused about the threading strategy; seems likely there are mistakes in that. It’s tricky to correctly use a RefCounted object from multiple threads and this doesn’t seem to have a disciplined approach to that.

review- for now; maybe Chris Dumez can help us vet the threading part of a future cut at the patch

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:746
&gt; +    RefPtr&lt;OffscreenCanvas&gt; canvas = OffscreenCanvas::create(context, width(), height());

This should use auto. And it should be a Ref, not RefPtr.

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:747
&gt; +    canvas-&gt;setPlaceholderCanvas(makeWeakPtr(*this));

Can this be passed to an overload of the create function instead?

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:753
&gt; +#if USE(TEXTURE_MAPPER_GL)
&gt; +    // Need to make sure a RenderLayer and compositing layer get created for the Canvas.
&gt; +    invalidateStyleAndLayerComposition();
&gt; +#endif

This seems like oblique side effect programming. How does &quot;invalidate&quot; make sure something is created? Can we do better?

Should not capitalize &quot;Canvas&quot;.

&gt; Source/WebCore/html/HTMLCanvasElement.h:101
&gt; +    ExceptionOr&lt;RefPtr&lt;OffscreenCanvas&gt;&gt; transferControlToOffscreen(ScriptExecutionContext&amp;);

This should be ExceptionOr&lt;Ref&gt; instead. RefPtr means the result can be null even when there is no exception; this result can’t be.

&gt; Source/WebCore/html/OffscreenCanvas.cpp:80
&gt; +    callOnMainThread([canvas = detachedCanvas-&gt;takePlaceholderCanvas(), offscreenCanvas = clone.ptr()] () mutable {

Seems peculiar and unsafe to use .ptr() here, turning offscreenCanvas into a raw pointer; normally I would have expected copyRef to pass a Ref&lt;&gt; instead. But also unclear how it’s thread-safe to pass a non-threadsafe-ref-counted offscreen canvas from one thread to another. What prevents this lambda from using a stale pointer after the canvas has been destroyed?

Not clear at all to me the role of the main thread here and threading strategy.

&gt; Source/WebCore/html/OffscreenCanvas.cpp:84
&gt; +                PlaceholderRenderingContext&amp; placeholderContext = downcast&lt;PlaceholderRenderingContext&gt;(*renderingContext);
&gt; +                placeholderContext.setOffscreenCanvas(offscreenCanvas);

This should use auto&amp; or be a one-liner.

    downcast&lt;PlaceholderRenderingContext&gt;(*renderingContext).setOffscreenCanvas(offscreenCanvas);

Is there some way to write this code without the downcast? I am unclear on where the type guarantee comes from.

&gt; Source/WebCore/html/OffscreenCanvas.cpp:149
&gt; +                return Optional&lt;OffscreenRenderingContext&gt; { WTF::nullopt };

I’ve seen some other people have success with multiple sets of braces without the type names. For example, this might work here:

    return { { WTF::nullopt } };

Maybe give it a try? The many other places here we had to write out that long type name, instead we might just be able to add one more set of parentheses. And even remove some of the other type names.

&gt; Source/WebCore/html/OffscreenCanvas.cpp:345
&gt; +        std::unique_ptr&lt;ImageBuffer&gt; buffer = ImageBuffer::create(FloatSize(m_pendingCommitData-&gt;size()), RenderingMode::Unaccelerated);

auto

Also doesn’t make sense that ImageBuffer supplies a create function that returns a unique_ptr. Normally we use create functions when something is reference counted. If we are using unique_ptr and not intrusive reference counting then we should instead have public constructors and use makeUnique at the call sites.

&gt; Source/WebCore/html/OffscreenCanvas.cpp:357
&gt; +    // TODO: Transfer texture over if we&apos;re using accelerated compositing

WebKit project uses FIXME, not TODO. Lets not mix them in.

&gt; Source/WebCore/html/OffscreenCanvas.cpp:382
&gt; +        ScriptExecutionContext* context = scriptExecutionContext();

auto&amp; context = *scriptExecutionContext();

&gt; Source/WebCore/html/OffscreenCanvas.h:38
&gt; +#include &lt;JavaScriptCore/Uint8ClampedArray.h&gt;

Mysterious include addition. Why?

&gt; Source/WebCore/html/OffscreenCanvas.h:119
&gt; +    HTMLCanvasElement* placeholderCanvas() const;

What is this public function for? I can’t find any uses of it?

&gt; Source/WebCore/html/OffscreenCanvas.h:120
&gt; +    void commitToPlaceholderCanvas();

Why is this public?

&gt; Source/WebCore/html/OffscreenCanvas.h:163
&gt; +    bool m_pendingCommitTask { false };

This local variable name sounds like it is a variable that holds a &quot;pending commit task&quot;. For best naming of boolean, think of how to explain it to someone. One example could be m_hasPendingCommitTask. But you could probably come up with an even better name.

&gt; Source/WebCore/html/OffscreenCanvas.h:168
&gt; +    bool m_pendingCommit { false };
&gt; +    RefPtr&lt;ImageData&gt; m_pendingCommitData;

Very unclear the relationship between the boolean and the data.

Also, I never see m_pendingCommitData set to nullptr after the commit. I think it probably should be. I suspect we can get rid of the boolean and use the nullity instead.

&gt; Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.cpp:54
&gt; +    OffscreenCanvas&amp; offscreenCanvas = downcast&lt;OffscreenCanvas&gt;(canvasBase());
&gt; +    offscreenCanvas.commitToPlaceholderCanvas();

Should write this as a one-liner:

    canvas().commitToPlaceholderCanvas();

Also might consider just putting this in the header as long as it doesn’t create the need for a new include.

&gt; Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp:57
&gt; +void PlaceholderRenderingContext::setOffscreenCanvas(OffscreenCanvas* offscreenCanvas)
&gt; +{
&gt; +    ASSERT(offscreenCanvas);
&gt; +    m_offscreenCanvas = offscreenCanvas;
&gt;  }

When we take a pointer and assert it’s not null, that means we should be taking a reference instead.

&gt; Source/WebCore/html/canvas/PlaceholderRenderingContext.h:39
&gt; +    PlaceholderRenderingContext(CanvasBase&amp;, OffscreenCanvas*);

This should take OffscreenCanvas&amp;.

&gt; Source/WebCore/html/canvas/PlaceholderRenderingContext.h:43
&gt; +    void setOffscreenCanvas(OffscreenCanvas*);

This should take OffscreenCanvas&amp;.

&gt; Source/WebCore/html/canvas/PlaceholderRenderingContext.h:48
&gt; +    OffscreenCanvas* m_offscreenCanvas;

Unclear how it’s safe to use a raw pointer here. What guarantees this object won’t outlive the OffscreenCanvas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638494</commentid>
    <comment_count>6</comment_count>
      <attachid>395666</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-07 03:44:05 -0700</bug_when>
    <thetext>Created attachment 395666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638495</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-07 03:52:19 -0700</bug_when>
    <thetext>I think I&apos;ve addressed all the review comments, but whether it&apos;s adequate or not is another question;

I think the most contentious part is still setting the placeholder canvas on an OffscreenCanvas created from a DetachedOffscreenCanvas. For context, DetachedOffscreenCanvas is the object created when transferring an OffscreenCanvas from the main thread to a worker. The placeholder canvas weak reference is only valid on the main thread and should only be set there, but the OffscreenCanvas it needs to be set on is in a worker.

I&apos;ve (partially?) resolved the issue of a possibly stale pointer here by changing callOnMainThread to callOnMainThreadAndWait. The OffscreenCanvas can&apos;t be destroyed on the main thread, so the alternative way to fix this would be to take an extra reference and call back into the OffscreenCanvas&apos;s execution context to release it (I&apos;ve seen this done elsewhere in the codebase). I don&apos;t have strong feelings on which is more desirable and am happy to change this (or do something different entirely, if there&apos;s any guidance).

The PlaceholderRenderingContext doesn&apos;t actually need a reference to the OffscreenCanvas in this patch (this is something that crept in from bug 202798), so this can be resolved in that patch if necessary. For this one, I just removed it.

re commitToPlaceholder being public, it&apos;s used by OffscreenCanvasRenderingContext2D.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639325</commentid>
    <comment_count>8</comment_count>
      <attachid>395666</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-04-08 15:40:49 -0700</bug_when>
    <thetext>Comment on attachment 395666
Patch

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

It still would be nice if cdumez verified the threading bits.

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:941
&gt; +    if (isControlledByOffscreen() &amp;&amp; oldSize != size()) {
&gt; +        setAttributeWithoutSynchronization(widthAttr, AtomString::number(width()));
&gt; +        setAttributeWithoutSynchronization(heightAttr, AtomString::number(height()));
&gt; +        notifyObserversCanvasResized();
&gt; +        invalidateStyleAndRenderersForSubtree();
&gt; +    }

Why is this only for placeholder canvas objects? Does the specification explicitly say we should update the attributes? I assume this is the end of the call to transferFromImageBitmap().

&gt; Source/WebCore/html/OffscreenCanvas.cpp:150
&gt;              if (!is&lt;OffscreenCanvasRenderingContext2D&gt;(*m_context))

I don&apos;t think we can ever get this case. Am I mistaken? If not, I wonder if we should just assert (or let downcast do that).

&gt; Source/WebCore/html/OffscreenCanvas.cpp:164
&gt; +            if (is&lt;WebGLRenderingContext&gt;(*m_context))

Same here.

&gt; Source/WebCore/html/OffscreenCanvas.cpp:341
&gt; +        std::unique_ptr&lt;ImageBuffer&gt; buffer = ImageBuffer::create(FloatSize(m_pendingCommitData-&gt;size()), RenderingMode::Unaccelerated);

Agree with Darin that we should probably update ImageBuffer::create uses to makeUnique, but not in this patch.

&gt; Source/WebCore/html/OffscreenCanvas.cpp:379
&gt; +        auto&amp; context = *scriptExecutionContext();
&gt; +        m_hasScheduledCommit = context.postTaskTo(context.contextIdentifier(), [this] (ScriptExecutionContext&amp;) {

Suggest using a different name here for &quot;context&quot;, which could be confused with the rendering context.

&gt; Source/WebCore/html/OffscreenCanvas.h:69
&gt; +    WeakPtr&lt;HTMLCanvasElement&gt; takePlaceholderCanvas();

I wonder if this should be givePlaceholderCanvas() because the action is being called on the DetachedOffscreenCanvas. (Or, releasePlaceholderCanvas, except it is only a weakptr so &quot;release&quot; isn&apos;t clear)

&gt; Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.cpp:54
&gt; +    OffscreenCanvas&amp; offscreenCanvas = downcast&lt;OffscreenCanvas&gt;(canvasBase());
&gt; +    offscreenCanvas.commitToPlaceholderCanvas();

Darin mentioned doing this in a single line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639540</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-09 02:34:44 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #8)
&gt; Comment on attachment 395666 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395666&amp;action=review
&gt; 
&gt; It still would be nice if cdumez verified the threading bits.

I&apos;ll ping him, thanks for your review!

&gt; &gt; Source/WebCore/html/HTMLCanvasElement.cpp:941
&gt; &gt; +    if (isControlledByOffscreen() &amp;&amp; oldSize != size()) {
&gt; &gt; +        setAttributeWithoutSynchronization(widthAttr, AtomString::number(width()));
&gt; &gt; +        setAttributeWithoutSynchronization(heightAttr, AtomString::number(height()));
&gt; &gt; +        notifyObserversCanvasResized();
&gt; &gt; +        invalidateStyleAndRenderersForSubtree();
&gt; &gt; +    }
&gt; 
&gt; Why is this only for placeholder canvas objects? Does the specification
&gt; explicitly say we should update the attributes? I assume this is the end of
&gt; the call to transferFromImageBitmap().

Yes, the spec says that the width/height attributes need to be updated when the width/height of the OffscreenCanvas change - this happens when a commit happens. You can see this in the first note here: https://html.spec.whatwg.org/multipage/canvas.html#offscreencontext2d-commit

&gt; &gt; Source/WebCore/html/OffscreenCanvas.cpp:150
&gt; &gt;              if (!is&lt;OffscreenCanvasRenderingContext2D&gt;(*m_context))
&gt; 
&gt; I don&apos;t think we can ever get this case. Am I mistaken? If not, I wonder if
&gt; we should just assert (or let downcast do that).
&gt; 
&gt; &gt; Source/WebCore/html/OffscreenCanvas.cpp:164
&gt; &gt; +            if (is&lt;WebGLRenderingContext&gt;(*m_context))
&gt; 
&gt; Same here.

These can both happen, if you call getContext(&lt;type&gt;), the first time when there&apos;s no context, it will be created. If you then call it with a different type, you may reach these cases (in which, the spec says to return null). These are covered by the w3c tests that are marked as passing in this patch.

&gt; &gt; Source/WebCore/html/OffscreenCanvas.cpp:341
&gt; &gt; +        std::unique_ptr&lt;ImageBuffer&gt; buffer = ImageBuffer::create(FloatSize(m_pendingCommitData-&gt;size()), RenderingMode::Unaccelerated);
&gt; 
&gt; Agree with Darin that we should probably update ImageBuffer::create uses to
&gt; makeUnique, but not in this patch.
&gt; 
&gt; &gt; Source/WebCore/html/OffscreenCanvas.cpp:379
&gt; &gt; +        auto&amp; context = *scriptExecutionContext();
&gt; &gt; +        m_hasScheduledCommit = context.postTaskTo(context.contextIdentifier(), [this] (ScriptExecutionContext&amp;) {
&gt; 
&gt; Suggest using a different name here for &quot;context&quot;, which could be confused
&gt; with the rendering context.

Good call, I&apos;ll go with the full scriptExecutionContext.

&gt; &gt; Source/WebCore/html/OffscreenCanvas.h:69
&gt; &gt; +    WeakPtr&lt;HTMLCanvasElement&gt; takePlaceholderCanvas();
&gt; 
&gt; I wonder if this should be givePlaceholderCanvas() because the action is
&gt; being called on the DetachedOffscreenCanvas. (Or, releasePlaceholderCanvas,
&gt; except it is only a weakptr so &quot;release&quot; isn&apos;t clear)

I think where I&apos;ve seen similar functions, its been given the &apos;take&apos; verb, but I don&apos;t have strong feelings about it - I&apos;ll leave as is unless you feel more strongly it should change.

&gt; &gt; Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.cpp:54
&gt; &gt; +    OffscreenCanvas&amp; offscreenCanvas = downcast&lt;OffscreenCanvas&gt;(canvasBase());
&gt; &gt; +    offscreenCanvas.commitToPlaceholderCanvas();
&gt; 
&gt; Darin mentioned doing this in a single line.

Sorry, missed this - thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639650</commentid>
    <comment_count>10</comment_count>
      <attachid>395666</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-09 08:16:46 -0700</bug_when>
    <thetext>Comment on attachment 395666
Patch

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

&gt; Source/WebCore/html/OffscreenCanvas.cpp:80
&gt; +    callOnMainThreadAndWait([canvas = detachedCanvas-&gt;takePlaceholderCanvas(), offscreenCanvas = clone.ptr()] () mutable {

What is this callOnMainThreadAndWait() for? Also, why is this factory doing the callOnMainThead () to set the placeholder canvas but not the factory below?

&gt; Source/WebCore/html/OffscreenCanvas.cpp:332
&gt; +    m_placeholderCanvas = canvas;

WTFMove(canvas)

&gt; Source/WebCore/html/OffscreenCanvas.cpp:337
&gt; +    callOnMainThread([this] () mutable {

What guarantees that |this| is still alive once we&apos;re on the main thread?

&gt;&gt; Source/WebCore/html/OffscreenCanvas.cpp:379
&gt;&gt; +        m_hasScheduledCommit = context.postTaskTo(context.contextIdentifier(), [this] (ScriptExecutionContext&amp;) {
&gt; 
&gt; Suggest using a different name here for &quot;context&quot;, which could be confused with the rendering context.

What guarantees that |this| is still alive after the task has posted?

Also, I think you want context.postTast([]). postTaskTo() is a static, which is why it takes the contextID as parameter. However, you already have the script execution context object here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645950</commentid>
    <comment_count>11</comment_count>
      <attachid>397666</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 03:21:23 -0700</bug_when>
    <thetext>Created attachment 397666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645959</commentid>
    <comment_count>12</comment_count>
      <attachid>397669</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 04:11:51 -0700</bug_when>
    <thetext>Created attachment 397669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645960</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 04:19:01 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; Comment on attachment 395666 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395666&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/OffscreenCanvas.cpp:80
&gt; &gt; +    callOnMainThreadAndWait([canvas = detachedCanvas-&gt;takePlaceholderCanvas(), offscreenCanvas = clone.ptr()] () mutable {
&gt; 
&gt; What is this callOnMainThreadAndWait() for? Also, why is this factory doing
&gt; the callOnMainThead () to set the placeholder canvas but not the factory
&gt; below?

We don&apos;t want the OffscreenCanvas to be destroyed on the main thread, and the alternative would be to callOnMainThread and then postTask inside that callback to release the reference on it (I suppose?), which seemed overkill vs. just waiting. Happy to change or open to alternatives though.

The call below is expected to only be called from the main thread, so it doesn&apos;t need this - I&apos;ve added an assert in setPlaceholderCanvas to make this clearer/safer.

&gt; &gt; Source/WebCore/html/OffscreenCanvas.cpp:332
&gt; &gt; +    m_placeholderCanvas = canvas;
&gt; 
&gt; WTFMove(canvas)

Thanks, fixed.

&gt; &gt; Source/WebCore/html/OffscreenCanvas.cpp:337
&gt; &gt; +    callOnMainThread([this] () mutable {
&gt; 
&gt; What guarantees that |this| is still alive once we&apos;re on the main thread?

You&apos;re right and I missed this, updating now...

&gt; &gt;&gt; Source/WebCore/html/OffscreenCanvas.cpp:379
&gt; &gt;&gt; +        m_hasScheduledCommit = context.postTaskTo(context.contextIdentifier(), [this] (ScriptExecutionContext&amp;) {
&gt; &gt; 
&gt; &gt; Suggest using a different name here for &quot;context&quot;, which could be confused with the rendering context.
&gt; 
&gt; What guarantees that |this| is still alive after the task has posted?

You&apos;re right here too and I&apos;ve fixed this.

&gt; Also, I think you want context.postTast([]). postTaskTo() is a static, which
&gt; is why it takes the contextID as parameter. However, you already have the
&gt; script execution context object here.

Thanks, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645978</commentid>
    <comment_count>14</comment_count>
      <attachid>397677</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 06:38:51 -0700</bug_when>
    <thetext>Created attachment 397677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645986</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 07:07:57 -0700</bug_when>
    <thetext>With this revision of the patch, I&apos;ve made sure that the placeholder is only referenced on the main thread, that the weak reference gets moved over to the main thread on destruction and that all main thread callbacks take references as necessary and release them on the appropriate thread. There are no waiting calls anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646008</commentid>
    <comment_count>16</comment_count>
      <attachid>397677</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-27 08:21:45 -0700</bug_when>
    <thetext>Comment on attachment 397677
Patch

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

&gt; Source/WebCore/html/OffscreenCanvas.cpp:54
&gt; +    , m_placeholderCanvas(WTFMove(placeholderCanvas))

makeWeakPtr()

&gt; Source/WebCore/html/OffscreenCanvas.cpp:66
&gt; +    return WTFMove(m_placeholderCanvas);

I believe people prefer to use std::exchange(m_placeholderCanvas, nullptr) nowadays rather than rely on specific behaviors of move constructors.

&gt; Source/WebCore/html/OffscreenCanvas.cpp:84
&gt; +        offscreenCanvas-&gt;scriptExecutionContext()-&gt;postTask([releaseOffscreenCanvas = WTFMove(offscreenCanvas)] (ScriptExecutionContext&amp;) { });

I believe you want a CleanupTask here to guarantee that the task gets processed even if the thread is getting terminated:
{ ScriptExecutionContext::Task::CleanupTask, [releaseOffscreenCanvas = WTFMove(offscreenCanvas)] (ScriptExecutionContext&amp;) { }}

This is particularly important given that offscreenCanvas is not ThreadSafeRefCounted.

&gt; Source/WebCore/html/OffscreenCanvas.cpp:105
&gt; +    callOnMainThread([placeholder = WTFMove(m_placeholderCanvas)] { });

This is not necessary. You can destroy a WeakPtr from any thread (you just cannot deref it from any thread).

&gt; Source/WebCore/html/OffscreenCanvas.cpp:336
&gt; +    m_placeholderCanvas = WTFMove(canvas);

makeWeakPtr()

&gt; Source/WebCore/html/OffscreenCanvas.h:64
&gt; +    DetachedOffscreenCanvas(std::unique_ptr&lt;ImageBuffer&gt;&amp;&amp;, const IntSize&amp;, bool originClean, WeakPtr&lt;HTMLCanvasElement&gt;&amp;&amp; placeholderCanvas);

We usually pass regular pointers / references as parameter and let the implementation decide if they need a WeakPtr.

&gt; Source/WebCore/html/OffscreenCanvas.h:94
&gt; +    static Ref&lt;OffscreenCanvas&gt; create(ScriptExecutionContext&amp;, WeakPtr&lt;HTMLCanvasElement&gt;&amp;&amp;);

Same comment about passing a WeakPtr.

&gt; Source/WebCore/html/OffscreenCanvas.h:149
&gt; +    void setPlaceholderCanvas(WeakPtr&lt;HTMLCanvasElement&gt;&amp;&amp;);

I believe our usual pattern is to pass a HTMLCanvasElement&amp; or a HTMLCanvasElement* and let the implementation of setPlaceholderCanvas() decide what to do (here create a weak pointer using makeWeakPtr()). Any reason you cannot do the same here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646057</commentid>
    <comment_count>17</comment_count>
      <attachid>397691</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 09:46:35 -0700</bug_when>
    <thetext>Created attachment 397691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646063</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 09:48:54 -0700</bug_when>
    <thetext>I think this is all the changes suggested in comment #16 made. In addition, I&apos;ve reinstated the boolean m_hasPendingCommitData - we don&apos;t want to destroy m_pendingCommitData on the main thread. This causes an assert to get hit after bug 202798.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646098</commentid>
    <comment_count>19</comment_count>
      <attachid>397702</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 11:01:29 -0700</bug_when>
    <thetext>Created attachment 397702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646099</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 11:03:31 -0700</bug_when>
    <thetext>And one last change to clear commit data in the destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646409</commentid>
    <comment_count>21</comment_count>
      <attachid>397814</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 23:46:53 -0700</bug_when>
    <thetext>Created attachment 397814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646410</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-27 23:47:53 -0700</bug_when>
    <thetext>(In reply to Chris Lord from comment #20)
&gt; And one last change to clear commit data in the destructor.

Sorry for the churn, obviously wasn&apos;t thinking clearly at the end of the day - removed this change. It&apos;s not needed as while there&apos;s a commit pending, a reference is held, so the destructor will never be triggered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647321</commentid>
    <comment_count>23</comment_count>
      <attachid>398046</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-30 04:10:42 -0700</bug_when>
    <thetext>Created attachment 398046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647322</commentid>
    <comment_count>24</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-30 04:13:28 -0700</bug_when>
    <thetext>From working on bug 202798, I found an incorrect assumption I made in this patch - detach can happen off the main thread, so it isn&apos;t safe to create the weak pointer again. Instead, to avoid having a weak pointer as a parameter, I made OffscreenCanvas a friend class and it sets the member itself in detach, but I&apos;m obviously open to doing that other ways.

I also corrected the behaviour of resize - it was incorrectly calling an invalidate function instead of just operating on the renderer, as can be seen in reset(), which would normally happen on resize. This, I assume, cuts down on unnecessary layout work when the canvas is resized via an OffscreenCanvas size change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647366</commentid>
    <comment_count>25</comment_count>
      <attachid>398054</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-04-30 07:50:33 -0700</bug_when>
    <thetext>Created attachment 398054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679342</commentid>
    <comment_count>26</comment_count>
      <attachid>406369</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-08-11 02:19:57 -0700</bug_when>
    <thetext>Created attachment 406369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679711</commentid>
    <comment_count>27</comment_count>
      <attachid>406451</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-08-12 01:33:26 -0700</bug_when>
    <thetext>Created attachment 406451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679712</commentid>
    <comment_count>28</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-12 02:05:58 -0700</bug_when>
    <thetext>Committed r265543: &lt;https://trac.webkit.org/changeset/265543&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406451.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679713</commentid>
    <comment_count>29</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-12 02:06:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/66894727&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380645</attachid>
            <date>2019-10-10 08:33:53 -0700</date>
            <delta_ts>2020-02-13 08:10:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20191010163352.patch</filename>
            <type>text/plain</type>
            <size>32534</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCmluZGV4IDMzYjU2MGI2ODUxMDE4MWZkZDQ5ZDA4YzI1YzYzODQ1MzJhMzI4
MTkuLmQ0YTQ0ZmRhMTMzZWJkYjc4OWE1NGMzNTNkNWQwM2UwOGViZmNhMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0
RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJQ
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZE9i
c2VydmVyLmgiCkBAIC0xNTUsNyArMTU2LDcgQEAgYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6Y2Fu
U3RhcnRTZWxlY3Rpb24oKSBjb25zdAogCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxl
bWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogewotICAgIGlmIChtX2NvbnRleHQgJiYg
bV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2Ny
ZWVuKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9Owog
ICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0ciwgQXRvbVN0
cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVlLCBkZWZhdWx0SGVp
Z2h0KSkpOwogICAgIHJldHVybiB7IH07CkBAIC0xNjMsNyArMTY0LDcgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1ZSkKIAogRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZhbHVl
KQogewotICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisg
ICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09ubHlIVE1MTm9u
TmVnYXRpdmUodmFsdWUsIGRlZmF1bHRXaWR0aCkpKTsKICAgICByZXR1cm4geyB9OwpAQCAtNTA2
LDcgKzUwNyw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiB7Ci0gICAgaWYg
KG1faWdub3JlUmVzZXQpCisgICAgaWYgKG1faWdub3JlUmVzZXQgfHwgaXNDb250cm9sbGVkQnlP
ZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRJbWFnZUJ1ZmZlciA9
IGhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpOwpAQCAtNzAwLDYgKzcwMSwyMyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFJlZgogICAgIHJldHVybiB7IH07CiB9CiAKK0V4Y2VwdGlvbk9yPFJlZlB0cjxP
ZmZzY3JlZW5DYW52YXM+PiBIVE1MQ2FudmFzRWxlbWVudDo6dHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAobV9jb250
ZXh0KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKwor
ICAgIFJlZlB0cjxPZmZzY3JlZW5DYW52YXM+IGNhbnZhcyA9IE9mZnNjcmVlbkNhbnZhczo6Y3Jl
YXRlKGNvbnRleHQsIHdpZHRoKCksIGhlaWdodCgpKTsKKyAgICBjYW52YXMtPnNldFBsYWNlaG9s
ZGVyQ2FudmFzKCp0aGlzKTsKKyAgICBtX2NvbnRleHQgPSBtYWtlVW5pcXVlPFBsYWNlaG9sZGVy
UmVuZGVyaW5nQ29udGV4dD4oKnRoaXMsIGNhbnZhcy5nZXQoKSk7CisKKyNpZiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCisgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQg
Y29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMuCisgICAgaW52YWxp
ZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworI2VuZGlmCisKKyAgICByZXR1cm4gY2Fu
dmFzOworfQorCiBSZWZQdHI8SW1hZ2VEYXRhPiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0SW1hZ2VE
YXRhKCkKIHsKICNpZiBFTkFCTEUoV0VCR0wpCkBAIC04NjYsOCArODg0LDI3IEBAIHZvaWQgSFRN
TENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKIAogdm9pZCBIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiYmIGJ1ZmZlcikKIHsKKyAgICBJbnRTaXplIG9sZFNpemUgPSBtX3NpemU7CiAg
ICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSB0cnVlOwogICAgIHNldEltYWdlQnVmZmVyKFdU
Rk1vdmUoYnVmZmVyKSk7CisKKyAgICBpZiAobV9pbWFnZUJ1ZmZlcikgeworICAgICAgICBpZiAo
aXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSkgeworICAgICAgICAgICAgaWYgKG9sZFNpemUgIT0g
bV9zaXplKSB7CisgICAgICAgICAgICAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbih3aWR0aEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcihtX3NpemUud2lkdGgoKSkpOworICAg
ICAgICAgICAgICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0
ciwgQXRvbVN0cmluZzo6bnVtYmVyKG1fc2l6ZS5oZWlnaHQoKSkpOworICAgICAgICAgICAgICAg
IG5vdGlmeU9ic2VydmVyc0NhbnZhc1Jlc2l6ZWQoKTsKKyAgICAgICAgICAgICAgICBpbnZhbGlk
YXRlU3R5bGVBbmRSZW5kZXJlcnNGb3JTdWJ0cmVlKCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUND
RUxFUkFURURfMkRfQ0FOVkFTKQorICAgICAgICBlbHNlIGlmIChtX2NvbnRleHQgJiYgbV9jb250
ZXh0LT5pczJkKCkpIHsKKyAgICAgICAgICAgIC8vIFJlY2FsY3VsYXRlIGNvbXBvc2l0aW5nIHJl
cXVpcmVtZW50cyBpZiBhY2NlbGVyYXRpb24gc3RhdGUgY2hhbmdlZC4KKyAgICAgICAgICAgIGlu
dmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKyAgICAgICAgfQorI2VuZGlmCisg
ICAgfQorCiAgICAgZGlkRHJhdyhGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBtX3NpemUpKTsKIH0K
IApAQCAtODg1LDQgKzkyMiw5IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VC
dWZmZXIoKSBjb25zdAogICAgIH0KIH0KIAorYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNDb250
cm9sbGVkQnlPZmZzY3JlZW4oKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQgJiYgbV9j
b250ZXh0LT5pc1BsYWNlaG9sZGVyKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuaAppbmRleCA4MDJhMmE0Y2QwZTdjYzhlMGJkYjgwZTQwNjdlZTc1YjI3Nzcw
ZWU4Li5kZTdmZWU4ODI0MmVjZDk5OTM3MTEzMDc1MDg2OWIyZGZjYmJjNzA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIElt
YWdlQnVmZmVyOwogY2xhc3MgSW1hZ2VEYXRhOwogY2xhc3MgTWVkaWFTYW1wbGU7CiBjbGFzcyBN
ZWRpYVN0cmVhbTsKK2NsYXNzIE9mZnNjcmVlbkNhbnZhczsKIGNsYXNzIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U7CiBjbGFzcyBHUFVDYW52YXNDb250ZXh0Owogc3RydWN0IFVuY2FjaGVkU3Ry
aW5nOwpAQCAtMTA3LDYgKzEwOCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNl
cHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxV
bmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHRvQmxvYihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPEJsb2JD
YWxsYmFjaz4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1ZhbHVlIHF1YWxpdHkp
OworICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxPZmZzY3JlZW5DYW52YXM+PiB0cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKICAgICAvLyBVc2VkIGZv
ciByZW5kZXJpbmcKICAgICB2b2lkIGRpZERyYXcoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CkBA
IC0xMzMsNiArMTM1LDggQEAgcHVibGljOgogICAgIC8vIEl0IHdvdWxkIGJlIGJldHRlciB0byBo
YXZlIHRoZSBjb250ZXh0cyBvd24gdGhlIGJ1ZmZlcnMuCiAgICAgdm9pZCBzZXRJbWFnZUJ1ZmZl
ckFuZE1hcmtEaXJ0eShzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYpOwogCisgICAgYm9v
bCBpc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpIGNvbnN0OworCiBwcml2YXRlOgogICAgIEhUTUxD
YW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCmluZGV4IDZmY2FjZDQxN2YyNmI0NjM4
YTMyMDcxNmVhMjA0N2VjNzNlOTQ4ZmMuLmYxMTliYTM3MTIyMTdjMDAxNmY2ZmMyM2I1MmJmMTMz
YmI3OTM4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCkBA
IC00OSw2ICs0OSw3IEBAIHR5cGVkZWYgKAogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01T
dHJpbmcgdG9EYXRhVVJMKG9wdGlvbmFsIERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBhbnkgcXVh
bGl0eSk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1heVRocm93RXhj
ZXB0aW9uXSB2b2lkIHRvQmxvYihCbG9iQ2FsbGJhY2sgY2FsbGJhY2ssIG9wdGlvbmFsIERPTVN0
cmluZyB0eXBlLCBvcHRpb25hbCBhbnkgcXVhbGl0eSk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBPZmZzY3JlZW5DYW52YXMgdHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4oKTsKIAogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0s
IENhbGxXaXRoPURvY3VtZW50LCBNYXlUaHJvd0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBNZWRpYVN0
cmVhbSBjYXB0dXJlU3RyZWFtKG9wdGlvbmFsIGRvdWJsZSBmcmFtZVJlcXVlc3RSYXRlKTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKaW5kZXggYmZiMmZjMWVhZWFl
YTA2MmYyODc1N2NkNjUzNGVlMzIxMjc0MTBmMC4uNTBiOGViZjJkMGFlZGYyMGM2MjQ1ZDk3ZjQw
YWQ2ZWJjNWMwNDE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5D
YW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcApA
QCAtMjcsMTQgKzI3LDI2IEBACiAjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzLmgiCiAKICNpbmNs
dWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1l
bnQuaCIKICNpbmNsdWRlICJJbWFnZUJpdG1hcC5oIgogI2luY2x1ZGUgIkpTQmxvYi5oIgogI2lu
Y2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3Ry
eS5oIgogI2luY2x1ZGUgIk9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIgotI2lu
Y2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIlBsYWNlaG9sZGVyUmVu
ZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKKyNp
ZiBFTkFCTEUoV0VCR0wpCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJTZXR0aW5n
cy5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIldvcmtl
ckdsb2JhbFNjb3BlLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIldlYkdMMlJl
bmRlcmluZ0NvbnRleHQuaCIKKyNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoT2Zmc2NyZWVu
Q2FudmFzKTsKQEAgLTQ2LDEwICs1OCw4IEBAIFJlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVl
bkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVuCiAKIFJl
ZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFJlZlB0cjxPZmZzY3JlZW5DYW52YXM+IGNhbnZhcykKIHsKLSAg
ICBhdXRvIGJ1ZmZlciA9IGNhbnZhcy0+dGFrZUltYWdlQnVmZmVyKCk7Ci0KICAgICBSZWY8T2Zm
c2NyZWVuQ2FudmFzPiBjbG9uZSA9IGFkb3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRl
eHQsIGNhbnZhcy0+c2l6ZSgpLndpZHRoKCksIGNhbnZhcy0+c2l6ZSgpLmhlaWdodCgpKSk7Ci0g
ICAgY2xvbmUtPnNldEltYWdlQnVmZmVyKFdURk1vdmUoYnVmZmVyKSk7CisgICAgY2FudmFzLT50
cmFuc2ZlcihjbG9uZS5nZXQoKSk7CiAKICAgICByZXR1cm4gY2xvbmU7CiB9CkBAIC0xMDgsNDYg
KzExOCwxMDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYg
bmV3U2l6ZSkKICAgICByZXNldCgpOwogfQogCi1FeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJp
bmdDb250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25n
PEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQorI2lmIEVOQUJMRShXRUJHTCkKK3N0YXRpYyBi
b29sIHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcldlYkdMKCkKK3sKKyNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdJTl9DQUlSTykKKyAgICByZXR1cm4gZmFsc2U7CisjZWxz
ZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCisKK30KK3N0YXRpYyBib29sIHNob3VsZEVuYWJs
ZVdlYkdMKGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICBpZiAoIXNldHRpbmdzLndl
YkdMRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXJlcXVpcmVz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcldlYkdMKCkpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgcmV0dXJuIHNldHRpbmdzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7Cit9
CisKK2Jvb2wgT2Zmc2NyZWVuQ2FudmFzOjppc1dlYkdMVHlwZShjb25zdCBTdHJpbmcmIHR5cGUp
Cit7CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICByZXR1cm4gdHlwZSA9PSAid2ViZ2wiIHx8IHR5
cGUgPT0gIndlYmdsMiI7CisjZWxzZQorICAgIHJldHVybiB0eXBlID09ICJ3ZWJnbCI7CisjZW5k
aWYKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZUNvbnRleHRXZWJHTChjb25zdCBT
dHJpbmcmIHR5cGUsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiBhdHRycykKK3sKKyAgICBBU1NF
UlQoT2Zmc2NyZWVuQ2FudmFzOjppc1dlYkdMVHlwZSh0eXBlKSk7CisgICAgQVNTRVJUKCFtX2Nv
bnRleHQpOworCisgICAgYXV0byBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwor
ICAgIGlmIChjb250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpIHsKKyAgICAgICAgV29ya2Vy
R2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KCpjb250ZXh0KTsKKyAgICAgICAgaWYgKCFzaG91bGRFbmFibGVXZWJHTCh3b3JrZXJHbG9i
YWxTY29wZS5zZXR0aW5ncygpKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYg
KGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgeworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBk
b3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpOworICAgICAgICBpZiAoIXNob3VsZEVuYWJsZVdl
YkdMKGRvY3VtZW50LnNldHRpbmdzKCkpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0gZWxz
ZQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJzLCB0eXBlKTsKK30KKworI2VuZGlmIC8vIEVOQUJM
RShXRUJHTCkKKworRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4
dD4+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIGNv
bnN0IFN0cmluZyYgY29udGV4dElkLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4m
JiBhcmd1bWVudHMpCiB7Ci0gICAgaWYgKG1fZGV0YWNoZWQpIHsKKyAgICBpZiAobV9kZXRhY2hl
ZCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07Ci0gICAg
fQogCi0gICAgaWYgKGNvbnRleHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpfMmQpIHsK
KyAgICBpZiAoY29udGV4dElkID09ICIyZCIpIHsKICAgICAgICAgaWYgKG1fY29udGV4dCkgewog
ICAgICAgICAgICAgaWYgKCFpczxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCpt
X2NvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9OwotICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEPigqbV9jb250ZXh0KSB9IH07CisgICAgICAgICAgICAgICAgcmV0dXJuIE9wdGlvbmFs
PE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+IHsgV1RGOjpudWxsb3B0IH07CisgICAgICAgICAg
ICByZXR1cm4gT3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8T2Zm
c2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKICAgICAgICAgfQogCiAgICAg
ICAgIG1fY29udGV4dCA9IG1ha2VVbmlxdWU8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEPigqdGhpcyk7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAgICAgcmV0dXJu
IHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyBudWxscHRyIH0g
fTsKKyAgICAgICAgICAgIHJldHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0
PiB7IFdURjo6bnVsbG9wdCB9OwogCi0gICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICByZXR1cm4gT3B0aW9uYWw8
T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ+KCptX2NvbnRleHQpIH0gfTsKICAgICB9CisKICNpZiBFTkFCTEUoV0VCR0wpCi0gICAgaWYg
KGNvbnRleHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpXZWJnbCkgeworICAgIGlmIChp
c1dlYkdMVHlwZShjb250ZXh0SWQpKSB7CiAgICAgICAgIGlmIChtX2NvbnRleHQpIHsKLSAgICAg
ICAgICAgIGlmICghaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAg
ICAgICAgIHJldHVybiB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0
PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICAgICAgaWYg
KGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIE9wdGlvbmFsPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9j
b250ZXh0KSB9IH07CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgICAgIGlmIChpczxXZWJH
TDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0wyUmVuZGVy
aW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4
dCkgfSB9OworI2VuZGlmCisgICAgICAgICAgICByZXR1cm4gT3B0aW9uYWw8T2Zmc2NyZWVuUmVu
ZGVyaW5nQ29udGV4dD4geyBXVEY6Om51bGxvcHQgfTsKICAgICAgICAgfQogCiAgICAgICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLnZtKCkpOwogICAgICAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBjb252ZXJ0PElETERpY3Rpb25hcnk8V2ViR0xDb250ZXh0QXR0cmlidXRl
cz4+KHN0YXRlLCAhYXJndW1lbnRzLmlzRW1wdHkoKSA/IGFyZ3VtZW50c1swXS5nZXQoKSA6IEpT
Qzo6anNVbmRlZmluZWQoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEV4
Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAKLSAgICAgICAgbV9jb250ZXh0
ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRyaWJ1dGVzLCAi
d2ViZ2wiKTsKKyAgICAgICAgY3JlYXRlQ29udGV4dFdlYkdMKGNvbnRleHRJZCwgV1RGTW92ZShh
dHRyaWJ1dGVzKSk7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAgICAgcmV0dXJu
IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyBudWxscHRyIH0gfTsKKyAgICAgICAg
ICAgIHJldHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiB7IFdURjo6bnVs
bG9wdCB9OwogCi0gICAgICAgIHJldHVybiB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkgfSB9OworICAg
ICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkKKyAgICAgICAg
ICAgIHJldHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4o
Km1fY29udGV4dCkgfSB9OworI2lmIEVOQUJMRShXRUJHTDIpCisgICAgICAgIEFTU0VSVChpczxX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSk7CisgICAgICAgIHJldHVybiBPcHRp
b25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdD
b250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9
IH07CisjZW5kaWYKICAgICB9CiAjZW5kaWYKIAotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKIH0K
IAogRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gT2Zmc2NyZWVuQ2FudmFzOjp0cmFu
c2ZlclRvSW1hZ2VCaXRtYXAoKQpAQCAtMjUwLDYgKzMyMSw4IEBAIHZvaWQgT2Zmc2NyZWVuQ2Fu
dmFzOjpkaWREcmF3KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBjbGVhckNvcGllZElt
YWdlKCk7CiAKKyAgICBzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKKwogICAg
IG5vdGlmeU9ic2VydmVyc0NhbnZhc0NoYW5nZWQocmVjdCk7CiB9CiAKQEAgLTI2Niw2ICszMzks
OTAgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OmRldGFjaCgpCiAgICAgbV9kZXRhY2hlZCA9IHRy
dWU7CiB9CiAKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRQbGFjZWhvbGRlckNhbnZhcyhIVE1M
Q2FudmFzRWxlbWVudCYgY2FudmFzKQoreworICAgIEFTU0VSVCghbV9wbGFjZWhvbGRlckNhbnZh
cyAmJiAhbV9jb250ZXh0KTsKKyAgICBtX3BsYWNlaG9sZGVyQ2FudmFzID0gbWFrZVdlYWtQdHIo
Y2FudmFzKTsKKyAgICBpZiAobV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIpCisgICAgICAgIGNvbW1p
dFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnRyYW5z
ZmVyKE9mZnNjcmVlbkNhbnZhcyYgY2FudmFzKQoreworICAgIGF1dG8gYnVmZmVyID0gdGFrZUlt
YWdlQnVmZmVyKCk7CisgICAgY2FudmFzLnNldEltYWdlQnVmZmVyKFdURk1vdmUoYnVmZmVyKSk7
CisKKyAgICBpZiAobV9wbGFjZWhvbGRlckNhbnZhcykgeworICAgICAgICBjYW52YXMubV9wbGFj
ZWhvbGRlckNhbnZhcyA9IG1fcGxhY2Vob2xkZXJDYW52YXM7CisgICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoW2NhbnZhcyA9IG1ha2VSZWYoY2FudmFzKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBpZiAoYXV0byByZW5kZXJpbmdDb250ZXh0ID0gY2FudmFzLT5wbGFjZWhvbGRlckNhbnZhcygp
LT5yZW5kZXJpbmdDb250ZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBQbGFjZWhvbGRlclJlbmRl
cmluZ0NvbnRleHQmIHBsYWNlaG9sZGVyQ29udGV4dCA9IGRvd25jYXN0PFBsYWNlaG9sZGVyUmVu
ZGVyaW5nQ29udGV4dD4oKnJlbmRlcmluZ0NvbnRleHQpOworICAgICAgICAgICAgICAgIHBsYWNl
aG9sZGVyQ29udGV4dC5zZXRPZmZzY3JlZW5DYW52YXMoJmNhbnZhcy5nZXQoKSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0pOworICAgIH0KK30KKworSFRNTENhbnZhc0VsZW1lbnQqIE9mZnNj
cmVlbkNhbnZhczo6cGxhY2Vob2xkZXJDYW52YXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3Bs
YWNlaG9sZGVyQ2FudmFzLmdldCgpOworfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6cHVzaEJ1
ZmZlclRvUGxhY2Vob2xkZXIoKQoreworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXNdICgpIG11
dGFibGUgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29tbWl0TG9jayk7Cisg
ICAgICAgIG1fcGVuZGluZ0NvbW1pdCA9IGZhbHNlOworICAgICAgICBpZiAoIW1fcGxhY2Vob2xk
ZXJDYW52YXMgfHwgIW1fcGVuZGluZ0NvbW1pdERhdGEpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6
OmNyZWF0ZShGbG9hdFNpemUobV9wZW5kaW5nQ29tbWl0U2l6ZSksIFVuYWNjZWxlcmF0ZWQpOwor
ICAgICAgICBidWZmZXItPnB1dEJ5dGVBcnJheSgqbV9wZW5kaW5nQ29tbWl0RGF0YSwgQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgbV9wZW5kaW5nQ29tbWl0U2l6ZSwgSW50
UmVjdChJbnRQb2ludCgpLCBtX3BlbmRpbmdDb21taXRTaXplKSwgSW50UG9pbnQoKSwgSW1hZ2VC
dWZmZXI6OkJhY2tpbmdTdG9yZUNvb3JkaW5hdGVTeXN0ZW0pOworICAgICAgICBtX3BsYWNlaG9s
ZGVyQ2FudmFzLT5zZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eShXVEZNb3ZlKGJ1ZmZlcikpOwor
ICAgIH0pOworfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6Y29tbWl0VG9QbGFjZWhvbGRlckNh
bnZhcygpCit7CisgICAgaWYgKCFidWZmZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
VE9ETzogVHJhbnNmZXIgdGV4dHVyZSBvdmVyIGlmIHdlJ3JlIHVzaW5nIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nCisgICAgaWYgKG1fY29udGV4dCAmJiAobV9jb250ZXh0LT5pc1dlYkdMKCkgfHwg
bV9jb250ZXh0LT5pc0FjY2VsZXJhdGVkKCkpKQorICAgICAgICBtX2NvbnRleHQtPnBhaW50UmVu
ZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCk7CisKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAg
ICAgICAgaWYgKG1fcGxhY2Vob2xkZXJDYW52YXMpIHsKKyAgICAgICAgICAgIGF1dG8mIHNpemUg
PSBtX2ltYWdlQnVmZmVyLT5pbnRlcm5hbFNpemUoKTsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyQ29weSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRT
aXplKHNpemUpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICAgICAgICAgIGF1dG8gYnVmZmVyRGF0YSA9
IG1faW1hZ2VCdWZmZXItPmdldFByZW11bHRpcGxpZWRJbWFnZURhdGEoSW50UmVjdChJbnRQb2lu
dCgpLCBzaXplKSwgbnVsbHB0ciwgSW1hZ2VCdWZmZXI6OkJhY2tpbmdTdG9yZUNvb3JkaW5hdGVT
eXN0ZW0pOworICAgICAgICAgICAgYnVmZmVyQ29weS0+cHV0Qnl0ZUFycmF5KCpidWZmZXJEYXRh
LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBzaXplLCBJbnRSZWN0KElu
dFBvaW50KCksIHNpemUpLCBJbnRQb2ludCgpLCBJbWFnZUJ1ZmZlcjo6QmFja2luZ1N0b3JlQ29v
cmRpbmF0ZVN5c3RlbSk7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzLT5zZXRJbWFn
ZUJ1ZmZlckFuZE1hcmtEaXJ0eShXVEZNb3ZlKGJ1ZmZlckNvcHkpKTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2NvbW1p
dExvY2spOworCisgICAgbV9wZW5kaW5nQ29tbWl0U2l6ZSA9IG1faW1hZ2VCdWZmZXItPmludGVy
bmFsU2l6ZSgpOworICAgIG1fcGVuZGluZ0NvbW1pdERhdGEgPSBtX2ltYWdlQnVmZmVyLT5nZXRQ
cmVtdWx0aXBsaWVkSW1hZ2VEYXRhKEludFJlY3QoSW50UG9pbnQoKSwgbV9wZW5kaW5nQ29tbWl0
U2l6ZSksIG51bGxwdHIsIEltYWdlQnVmZmVyOjpCYWNraW5nU3RvcmVDb29yZGluYXRlU3lzdGVt
KTsKKworICAgIGlmICghbV9wZW5kaW5nQ29tbWl0KSB7CisgICAgICAgIG1fcGVuZGluZ0NvbW1p
dCA9IHRydWU7CisgICAgICAgIHB1c2hCdWZmZXJUb1BsYWNlaG9sZGVyKCk7CisgICAgfQorfQor
Cit2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFz
KCkKK3sKKyAgICBpZiAoIW1fcGVuZGluZ0NvbW1pdFRhc2spIHsKKyAgICAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAg
ICAgbV9wZW5kaW5nQ29tbWl0VGFzayA9IGNvbnRleHQtPnBvc3RUYXNrVG8oY29udGV4dC0+Y29u
dGV4dElkZW50aWZpZXIoKSwgW3RoaXNdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAg
ICAgICAgICAgbV9wZW5kaW5nQ29tbWl0VGFzayA9IGZhbHNlOworICAgICAgICAgICAgY29tbWl0
VG9QbGFjZWhvbGRlckNhbnZhcygpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKIHZvaWQgT2Zm
c2NyZWVuQ2FudmFzOjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiB7CiAgICAgbV9oYXNDcmVh
dGVkSW1hZ2VCdWZmZXIgPSB0cnVlOwpAQCAtMzA2LDYgKzQ2Myw3IEBAIHZvaWQgT2Zmc2NyZWVu
Q2FudmFzOjpyZXNldCgpCiAgICAgY2xlYXJDb3BpZWRJbWFnZSgpOwogCiAgICAgbm90aWZ5T2Jz
ZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAgIHNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNh
bnZhcygpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVl
bkNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaAppbmRleCAy
MzBiNmMyMzg3NzRhMTJjNmJhYmFkOWFiY2EyYWJhMjEyM2UxNWRkLi43YzJjMzRjYWQxYTE2Y2Vl
MzM5NjIxNDk5ZmIwNzE5NWNhYTM0OGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L09mZnNjcmVlbkNhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2Fu
dmFzLmgKQEAgLTMzLDI0ICszMywzNyBAQAogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVk
ZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1VpbnQ4Q2xhbXBlZEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaWYgRU5BQkxFKFdFQkdMKQorI2lu
Y2x1ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCIKKyNlbmRpZgorCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3MgSFRNTENhbnZhc0VsZW1l
bnQ7CiBjbGFzcyBJbWFnZUJpdG1hcDsKIGNsYXNzIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDsKK2NsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ7CitjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwogCit1c2luZyBP
ZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0ID0gVmFyaWFudDwKICNpZiBFTkFCTEUoV0VCR0wpCi11
c2luZyBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0ID0gVmFyaWFudDxSZWZQdHI8T2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiwgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4+
OwotI2Vsc2UKLXVzaW5nIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PFJlZlB0
cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+PjsKKyAgICBSZWZQdHI8V2ViR0xS
ZW5kZXJpbmdDb250ZXh0PiwKICNlbmRpZgorI2lmIEVOQUJMRShXRUJHTDIpCisgICAgUmVmUHRy
PFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+LAorI2VuZGlmCisgICAgUmVmUHRyPE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4KKz47CiAKLWNsYXNzIE9mZnNjcmVlbkNhbnZhcyBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPE9mZnNjcmVlbkNhbnZhcz4sIHB1YmxpYyBDYW52YXNCYXNl
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlciB7CitjbGFzcyBPZmZzY3JlZW5DYW52YXMgZmluYWwgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8T2Zmc2NyZWVuQ2FudmFzPiwgcHVibGljIENhbnZhc0Jhc2UsIHB1
YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKE9mZnNjcmVlbkNhbnZhcyk7
CiBwdWJsaWM6CiAKQEAgLTU5LDExICs3Miw2IEBAIHB1YmxpYzoKICAgICAgICAgZG91YmxlIHF1
YWxpdHkgPSAxLjA7CiAgICAgfTsKIAotICAgIGVudW0gY2xhc3MgUmVuZGVyaW5nQ29udGV4dFR5
cGUgewotICAgICAgICBfMmQsCi0gICAgICAgIFdlYmdsCi0gICAgfTsKLQogICAgIHN0YXRpYyBS
ZWY8T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHVuc2ln
bmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpOwogICAgIHN0YXRpYyBSZWY8T2Zmc2NyZWVuQ2Fu
dmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZlB0cjxPZmZzY3JlZW5DYW52
YXM+KTsKICAgICB2aXJ0dWFsIH5PZmZzY3JlZW5DYW52YXMoKTsKQEAgLTc2LDkgKzg0LDcgQEAg
cHVibGljOgogICAgIGNvbnN0IEludFNpemUmIHNpemUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IHNldFNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFsOwogCi0jaWYgRU5BQkxFKFdFQkdMKQotICAg
IEV4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+IGdldENvbnRleHQoSlNDOjpF
eGVjU3RhdGUmLCBSZW5kZXJpbmdDb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6
VW5rbm93bj4+JiYgYXJndW1lbnRzKTsKLSNlbmRpZgorICAgIEV4Y2VwdGlvbk9yPE9wdGlvbmFs
PE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+PiBnZXRDb250ZXh0KEpTQzo6RXhlY1N0YXRlJiwg
Y29uc3QgU3RyaW5nJiBjb250ZXh0SWQsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+
PiYmIGFyZ3VtZW50cyk7CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gdHJh
bnNmZXJUb0ltYWdlQml0bWFwKCk7CiAgICAgdm9pZCBjb252ZXJ0VG9CbG9iKEltYWdlRW5jb2Rl
T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSk7CiAKQEAg
LTg3LDggKzkzLDE1IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkRldGFjaCgpIGNvbnN0OwogICAg
IHZvaWQgZGV0YWNoKCk7CiAKLSAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7Ci0gICAgdXNpbmcg
UmVmQ291bnRlZDo6ZGVyZWY7CisgICAgdm9pZCB0cmFuc2ZlcihPZmZzY3JlZW5DYW52YXMmKTsK
KworICAgIHZvaWQgc2V0UGxhY2Vob2xkZXJDYW52YXMoSFRNTENhbnZhc0VsZW1lbnQmKTsKKyAg
ICBIVE1MQ2FudmFzRWxlbWVudCogcGxhY2Vob2xkZXJDYW52YXMoKSBjb25zdDsKKworICAgIHZv
aWQgY29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworCisgICAgdXNpbmcgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDo6ZGVyZWY7CiAK
IHByaXZhdGU6CiAKQEAgLTEwNiwxMiArMTE5LDI4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWZD
YW52YXNCYXNlKCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZDYW52YXNCYXNlKCkg
ZmluYWwgeyBkZXJlZigpOyB9CiAKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgc3RhdGljIGJvb2wg
aXNXZWJHTFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjcmVhdGVDb250ZXh0V2ViR0wo
Y29uc3QgU3RyaW5nJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyYmID0geyB9KTsKKyNlbmRpZgor
CiAgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlcj4gdGFrZUltYWdlQnVmZmVyKCkgY29uc3Q7CiAKICAgICB2b2lk
IHJlc2V0KCk7CiAKKyAgICB2b2lkIHB1c2hCdWZmZXJUb1BsYWNlaG9sZGVyKCk7CisKKyAgICB2
b2lkIHNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworCiAgICAgYm9vbCBtX2Rl
dGFjaGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fcGVuZGluZ0NvbW1pdFRhc2sgeyBmYWxzZSB9
OworICAgIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IG1fcGxhY2Vob2xkZXJDYW52YXM7CisK
KyAgICBtdXRhYmxlIExvY2sgbV9jb21taXRMb2NrOworICAgIGJvb2wgbV9wZW5kaW5nQ29tbWl0
IHsgZmFsc2UgfTsKKyAgICBJbnRTaXplIG1fcGVuZGluZ0NvbW1pdFNpemU7CisgICAgUmVmUHRy
PFVpbnQ4Q2xhbXBlZEFycmF5PiBtX3BlbmRpbmdDb21taXREYXRhOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaWRsIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaWRsCmluZGV4IDM2MTU5ZDE1MTQ0Y2QzNDc4YjY3
OTJhOWY3Y2RkY2NkYWQ4OGVlOGIuLjAwNTI2NTQ2N2JjYmE0MDE0MTFjZTkyNzAxZDAxOTNkZjg3
ZjVlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5pZGwKQEAgLTIzLDEx
ICsyMywxNCBAQAogKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqLwogCit0eXBl
ZGVmICgKICNpZiBkZWZpbmVkKEVOQUJMRV9XRUJHTCkgJiYgRU5BQkxFX1dFQkdMCi10eXBlZGVm
IChPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgb3IgV2ViR0xSZW5kZXJpbmdDb250
ZXh0KSBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0OwotI2Vsc2UKLXR5cGVkZWYgKE9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dDsKKyAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHQgb3IKICNlbmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX1dF
QkdMMikgJiYgRU5BQkxFX1dFQkdMMgorICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQgb3IKKyNl
bmRpZgorICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgT2Zmc2NyZWVuUmVu
ZGVyaW5nQ29udGV4dDsKIAogZGljdGlvbmFyeSBJbWFnZUVuY29kZU9wdGlvbnMKIHsKQEAgLTM1
LDEyICszOCw2IEBAIGRpY3Rpb25hcnkgSW1hZ2VFbmNvZGVPcHRpb25zCiAgICB1bnJlc3RyaWN0
ZWQgZG91YmxlIHF1YWxpdHkgPSAxLjA7CiB9OwogCi1lbnVtIE9mZnNjcmVlblJlbmRlcmluZ0Nv
bnRleHRUeXBlCi17Ci0gICAgIjJkIiwKLSAgICAid2ViZ2wiCi19OwotCiBbCiAgICAgQ29uc3Ry
dWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgIENvbnN0cnVjdG9yKFtF
bmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgd2lkdGgsIFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVk
IGxvbmcgaGVpZ2h0KSwKQEAgLTUxLDcgKzQ4LDcgQEAgZW51bSBPZmZzY3JlZW5SZW5kZXJpbmdD
b250ZXh0VHlwZQogICAgIGF0dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIHdp
ZHRoOwogICAgIGF0dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGhlaWdodDsK
IAotICAgIFtDYWxsV2l0aD1FeGVjU3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSBPZmZzY3JlZW5S
ZW5kZXJpbmdDb250ZXh0PyBnZXRDb250ZXh0KE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHRUeXBl
IGNvbnRleHRUeXBlLCBhbnkuLi4gYXJndW1lbnRzKTsKKyAgICBbQ2FsbFdpdGg9RXhlY1N0YXRl
LCBNYXlUaHJvd0V4Y2VwdGlvbl0gT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD8gZ2V0Q29udGV4
dChET01TdHJpbmcgY29udGV4dFR5cGUsIGFueS4uLiBhcmd1bWVudHMpOwogICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gSW1hZ2VCaXRtYXAgdHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CiAgICAgUHJv
bWlzZTxCbG9iPiBjb252ZXJ0VG9CbG9iKG9wdGlvbmFsIEltYWdlRW5jb2RlT3B0aW9ucyBvcHRp
b25zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oCmluZGV4IDI1ZWQ5NDdmNDFhZjNmZjQ5NTY1ZTZkNzVh
NTU5OGIyYmUyMDBiNjMuLmViM2I3M2FkMWQ3MzFiMmEyYzQxNTdlODgyOTVkOTQ2NTA4MjgzNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlLmgKQEAgLTIzNyw2ICsyMzcsOCBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIGRpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1RleHRGbGFncykgY29uc3Q7CiAg
ICAgU3RyaW5nIHJlcGxheURpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1RleHRGbGFn
cykgY29uc3Q7CiAKKyAgICB2b2lkIGNsZWFyQ2FudmFzKCk7CisKICAgICB1c2luZyBEaXJlY3Rp
b24gPSBDYW52YXNEaXJlY3Rpb247CiAKICAgICBjbGFzcyBGb250UHJveHkgOiBwdWJsaWMgRm9u
dFNlbGVjdG9yQ2xpZW50IHsKQEAgLTM3Miw3ICszNzQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBpc1BvaW50SW5QYXRoSW50ZXJuYWwoY29uc3QgUGF0aCYsIGZsb2F0IHgsIGZsb2F0IHksIENh
bnZhc0ZpbGxSdWxlKTsKICAgICBib29sIGlzUG9pbnRJblN0cm9rZUludGVybmFsKGNvbnN0IFBh
dGgmLCBmbG9hdCB4LCBmbG9hdCB5KTsKIAotICAgIHZvaWQgY2xlYXJDYW52YXMoKTsKICAgICBQ
YXRoIHRyYW5zZm9ybUFyZWFUb0RldmljZShjb25zdCBQYXRoJikgY29uc3Q7CiAgICAgUGF0aCB0
cmFuc2Zvcm1BcmVhVG9EZXZpY2UoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAgYm9vbCBy
ZWN0Q29udGFpbnNDYW52YXMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmNwcAppbmRleCAxODQzMWM1N2M2YmQyMzYxOWY4NTg1MWIyYjM2NmNkYzg1
YmRhNmJkLi43ZWE2OTIxYTdlNDAyM2JiYjdjZmY2MGMzMjQzYTRmOGUzMmRiZDE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTEyMSw2ICsxMjEsMTIgQEAgdm9pZCBPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZvbnQoY29uc3QgU3RyaW5nJiBuZXdG
b250KQogICAgIG1vZGlmaWFibGVTdGF0ZSgpLmZvbnQuaW5pdGlhbGl6ZSgqZm9udFNlbGVjdG9y
LCAqc3R5bGVSZXNvbHZlci0+c3R5bGUoKSk7CiB9CiAKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpjb21taXQoKQoreworICAgIE9mZnNjcmVlbkNhbnZhcyYgb2Zmc2Ny
ZWVuQ2FudmFzID0gZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzPihjYW52YXNCYXNlKCkpOworICAg
IG9mZnNjcmVlbkNhbnZhcy5jb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7Cit9CisKIGF1dG8g
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmb250UHJveHkoKSAtPiBjb25zdCBG
b250UHJveHkmIHsKICAgICBpZiAoIXN0YXRlKCkuZm9udC5yZWFsaXplZCgpKQogICAgICAgICBz
ZXRGb250KHN0YXRlKCkudW5wYXJzZWRGb250KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgK
aW5kZXggNzM4MmM1MDU1ODA4ZDYzYTg4ZTZiMzZlMzkxMDdmZGU4YTljOWMyYS4uNGYzMDExZjQ4
ZmQ4ZTI1ZDUxMTI1NTdiMDYzZDNjYTA4YzNlZjU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgKQEAgLTQzLDYgKzQzLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRGb250KGNvbnN0
IFN0cmluZyYpIGZpbmFsOwogCisgICAgdm9pZCBjb21taXQoKTsKKwogcHJvdGVjdGVkOgogICAg
IGNvbnN0IEZvbnRQcm94eSYgZm9udFByb3h5KCkgZmluYWw7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5pZGwKaW5kZXggOTA4ZGM5Y2I1OGIzYTVhY2MwNzVhMTc4NDA4NjQzYWFmM2Jm
N2QxMy4uZTNhNjk2NzUxNzg0NmExYTAwMmRiNjk0YTIxYTgxMDZhYjM2NjZlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCkBAIC0yNiwxNCArMjYsMTMgQEAKIFsKICAgICBDdXN0
b21Jc1JlYWNoYWJsZSwKICAgICBFbmFibGVkQXRSdW50aW1lPUltYWdlQml0bWFwT2Zmc2NyZWVu
Q2FudmFzLAotICAgIEV4cG9zZWQ9KFdpbmRvdyksIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52YXMg
LSBzaG91bGQgYmUgV2luZG93LFdvcmtlcgorICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAog
ICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAg
IC8vIENhbGxUcmFjaW5nQ2FsbGJhY2s9cmVjb3JkQ2FudmFzQWN0aW9uLCAvLyBGSVhNRTogT2Zm
c2NyZWVuQ2FudmFzLgogXSBpbnRlcmZhY2UgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgT2Zmc2NyZWVuQ2FudmFzIGNhbnZhczsKLSAg
ICAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgotICAgIC8vIHZvaWQgY29tbWl0KCk7CisgICAg
dm9pZCBjb21taXQoKTsKIAogICAgIC8vIEluc3BlY3Rvci1vbmx5LgogICAgIC8vIEZJWE1FOiBP
ZmZzY3JlZW5DYW52YXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9Q
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAwOTJjNGFlZjYwYTU1MTNm
NDc2YzdkNzE0MzNlYmU3MWFmYTc4MWQ0Li4xMWJhNTAyNjdjNWMwZGI0OTdkYmJhNTQyYjgzZDQ5
ODhkOTc3ZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhv
bGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI2LDE1ICsyNiwyMyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5o
IgogCisjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KTsKIAotUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0OjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYgY2Fu
dmFzKQorUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0OjpQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQoQ2FudmFzQmFzZSYgY2FudmFzLCBPZmZzY3JlZW5DYW52YXMqIG9mZnNjcmVlbkNhbnZh
cykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQoY2FudmFzKQorICAgICwgbV9vZmZzY3Jl
ZW5DYW52YXMob2Zmc2NyZWVuQ2FudmFzKQogewogfQogCit2b2lkIFBsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dDo6c2V0T2Zmc2NyZWVuQ2FudmFzKE9mZnNjcmVlbkNhbnZhcyogb2Zmc2NyZWVu
Q2FudmFzKQoreworICAgIEFTU0VSVChvZmZzY3JlZW5DYW52YXMpOworICAgIG1fb2Zmc2NyZWVu
Q2FudmFzID0gb2Zmc2NyZWVuQ2FudmFzOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGMz
NDhlNTE4OTUyY2I5ZDQxNWM2YmQxNzk1ZjIxNmRjYjE2NWQyNTkuLmM4ZmNiYTNkNTk3MmM1MDIx
OGY0ZThlNDRkZWU0NzMyZWJiYTg4OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0yOSwxMyArMjks
MjIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDYW52YXNCYXNlOworY2xhc3Mg
T2Zmc2NyZWVuQ2FudmFzOworCiBjbGFzcyBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQgZmlu
YWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCB7CiAgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQpOwogcHVibGljOgotICAgIFBsYWNl
aG9sZGVyUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNlJik7CisgICAgUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmLCBPZmZzY3JlZW5DYW52YXMqKTsKKworICAgIEhUTUxD
YW52YXNFbGVtZW50JiBjYW52YXMoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxIVE1MQ2FudmFz
RWxlbWVudD4oY2FudmFzQmFzZSgpKTsgfQorCisgICAgdm9pZCBzZXRPZmZzY3JlZW5DYW52YXMo
T2Zmc2NyZWVuQ2FudmFzKik7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1BsYWNlaG9sZGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgT2Zmc2NyZWVuQ2FudmFzKiBtX29m
ZnNjcmVlbkNhbnZhczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwKaW5kZXggODY2MTc1YWNjOWZlM2M3ODdj
MmRmMzZkZWU0ODU4YjY1YzNjZmE2NS4uZTUyZjFkN2NiNzc1OTU3NDFlNzA3OTRhM2YwOTYxNjBk
OTFmZDhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wy
UmVuZGVyaW5nQ29udGV4dC5pZGwKQEAgLTUzLDYgKzUzLDcgQEAgdHlwZWRlZiAoSW1hZ2VCaXRt
YXAgb3IgSW1hZ2VEYXRhIG9yIEhUTUxJbWFnZUVsZW1lbnQgb3IgSFRNTENhbnZhc0VsZW1lbnQp
IFRleEkKIFsKICAgICBDb25kaXRpb25hbD1XRUJHTDIsCiAgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJHTDIsCisgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAgICAgSlNDdXN0b21NYXJrRnVu
Y3Rpb24sCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgRG9Ob3RDaGVja0NvbnN0YW50
cywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaWRsCmluZGV4IGM4Yjk3ZTU1ZTdlZWZiMzlmMWZlZDdkMDljYWFjYzdlNzQ5MmQzODEu
LmI5YWFhOGUxNThmNDkwOTA3OGE5YzQ4NzFlNjI1YjY0Mjk3ZDlmMDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbApAQCAt
MzksNiArMzksNyBAQCB0eXBlZGVmIChJbWFnZUJpdG1hcCBvciBJbWFnZURhdGEgb3IgSFRNTElt
YWdlRWxlbWVudCBvciBIVE1MQ2FudmFzRWxlbWVudCkgVGV4SQogICAgIEpTR2VuZXJhdGVUb0pT
T2JqZWN0LAogICAgIERvTm90Q2hlY2tDb25zdGFudHMsCiAgICAgRXhwb3J0TWFjcm89V0VCQ09S
RV9FWFBPUlQsCisgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAgICAgQ2FsbFRyYWNpbmdD
YWxsYmFjaz1yZWNvcmRDYW52YXNBY3Rpb24sCiBdIGludGVyZmFjZSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgewogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHBsYWNlZCBvdXRzaWRlIG9mIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UgdG8gYXZvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggZGU0N2Fl
NzRkN2Q1OWRiMDk1YzQzN2M0ZTlkNTk3N2E4NmRkZTA4Ni4uOWVlN2IwYjY0MWQ5YTRiNWIxYjdi
MjIzNjhiOThkMmE5NzA0MjM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTY0NSw3ICs2NDUsOCBA
QCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENh
bnZhc0Jhc2UmIGNhbnZhcywgV2ViR0xDbwogICAgIG1fcmVzdG9yZVRpbWVyLnN1c3BlbmRJZk5l
ZWRlZCgpOwogCiAgICAgcmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIoKTsKLSAgICBtX2No
ZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZ1RpbWVyLnN0YXJ0T25lU2hvdChjaGVja0NvbnRleHRM
b3NzSGFuZGxpbmdEZWxheSk7CisgICAgaWYgKGNhbnZhcy5pc0hUTUxDYW52YXNFbGVtZW50KCkp
CisgICAgICAgIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXIuc3RhcnRPbmVTaG90
KGNoZWNrQ29udGV4dExvc3NIYW5kbGluZ0RlbGF5KTsKIH0KIAogV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFJl
ZjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0
dHJpYnV0ZXMpCkBAIC02NzMsNyArNjc0LDggQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFJlZjxHcmEKICAg
ICBzZXR1cEZsYWdzKCk7CiAgICAgaW5pdGlhbGl6ZU5ld0NvbnRleHQoKTsKICAgICByZWdpc3Rl
cldpdGhXZWJHTFN0YXRlVHJhY2tlcigpOwotICAgIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRs
aW5nVGltZXIuc3RhcnRPbmVTaG90KGNoZWNrQ29udGV4dExvc3NIYW5kbGluZ0RlbGF5KTsKKyAg
ICBpZiAoY2FudmFzLmlzSFRNTENhbnZhc0VsZW1lbnQoKSkKKyAgICAgICAgbV9jaGVja0ZvckNv
bnRleHRMb3NzSGFuZGxpbmdUaW1lci5zdGFydE9uZVNob3QoY2hlY2tDb250ZXh0TG9zc0hhbmRs
aW5nRGVsYXkpOwogCiAgICAgYWRkQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVySWZOZWNlc3Nh
cnkoKTsKIH0KQEAgLTkyNywyMSArOTI5LDIwIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6bWFya0NvbnRleHRDaGFuZ2VkKCkKIAogICAgIG1fbGF5ZXJDbGVhcmVkID0gZmFsc2U7
CiAKLSAgICBhdXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCk7Ci0gICAgaWYgKCFjYW52YXMpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gY2FudmFzLT5yZW5k
ZXJCb3goKTsKLSAgICBpZiAoaXNBY2NlbGVyYXRlZCgpICYmIHJlbmRlckJveCAmJiByZW5kZXJC
b3gtPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkgewotICAgICAgICBtX21hcmtlZENhbnZh
c0RpcnR5ID0gdHJ1ZTsKLSAgICAgICAgaHRtbENhbnZhcygpLT5jbGVhckNvcGllZEltYWdlKCk7
Ci0gICAgICAgIHJlbmRlckJveC0+Y29udGVudENoYW5nZWQoQ2FudmFzUGl4ZWxzQ2hhbmdlZCk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKCFtX21hcmtlZENhbnZhc0RpcnR5KSB7CisgICAg
aWYgKGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKSkgeworICAgICAgICBSZW5kZXJCb3gqIHJl
bmRlckJveCA9IGNhbnZhcy0+cmVuZGVyQm94KCk7CisgICAgICAgIGlmIChpc0FjY2VsZXJhdGVk
KCkgJiYgcmVuZGVyQm94ICYmIHJlbmRlckJveC0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygp
KSB7CiAgICAgICAgICAgICBtX21hcmtlZENhbnZhc0RpcnR5ID0gdHJ1ZTsKLSAgICAgICAgICAg
IGNhbnZhcy0+ZGlkRHJhdyhGbG9hdFJlY3QoRmxvYXRQb2ludCgwLCAwKSwgY2xhbXBlZENhbnZh
c1NpemUoKSkpOworICAgICAgICAgICAgY2FudmFzLT5jbGVhckNvcGllZEltYWdlKCk7CisgICAg
ICAgICAgICByZW5kZXJCb3gtPmNvbnRlbnRDaGFuZ2VkKENhbnZhc1BpeGVsc0NoYW5nZWQpOwor
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQorCisgICAgaWYgKCFtX21hcmtl
ZENhbnZhc0RpcnR5KSB7CisgICAgICAgIG1fbWFya2VkQ2FudmFzRGlydHkgPSB0cnVlOworICAg
ICAgICBjYW52YXNCYXNlKCkuZGlkRHJhdyhGbG9hdFJlY3QoRmxvYXRQb2ludCgwLCAwKSwgY2xh
bXBlZENhbnZhc1NpemUoKSkpOworICAgIH0KIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjptYXJrQ29udGV4dENoYW5nZWRBbmROb3RpZnlDYW52YXNPYnNlcnZlcigpCkBAIC0x
MDM4LDMwICsxMDM5LDMwIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGFpbnRS
ZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5n
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKTsK
LSAgICBpZiAoIWNhbnZhcykKLSAgICAgICAgcmV0dXJuOworICAgIGF1dG8mIGJhc2UgPSBjYW52
YXNCYXNlKCk7CiAKLSAgICBpZiAoY2FudmFzLT5kb2N1bWVudCgpLnByaW50aW5nKCkpCi0gICAg
ICAgIGNhbnZhcy0+Y2xlYXJQcmVzZW50YXRpb25Db3B5KCk7CisgICAgaWYgKGF1dG8gY2FudmFz
ID0gaHRtbENhbnZhcygpKSB7CisgICAgICAgIGlmIChjYW52YXMtPmRvY3VtZW50KCkucHJpbnRp
bmcoKSkKKyAgICAgICAgICAgIGNhbnZhcy0+Y2xlYXJQcmVzZW50YXRpb25Db3B5KCk7CisgICAg
fQogCiAgICAgLy8gVW50aWwgdGhlIGNhbnZhcyBpcyB3cml0dGVuIHRvIGJ5IHRoZSBhcHBsaWNh
dGlvbiwgdGhlIGNsZWFyIHRoYXQKICAgICAvLyBoYXBwZW5lZCBhZnRlciBpdCB3YXMgY29tcG9z
aXRlZCBzaG91bGQgYmUgaWdub3JlZCBieSB0aGUgY29tcG9zaXRvci4KICAgICBpZiAobV9jb250
ZXh0LT5sYXllckNvbXBvc2l0ZWQoKSAmJiAhbV9hdHRyaWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1
ZmZlcikgewotICAgICAgICBtX2NvbnRleHQtPnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZh
cyhjYW52YXMtPmJ1ZmZlcigpKTsKKyAgICAgICAgbV9jb250ZXh0LT5wYWludENvbXBvc2l0ZWRS
ZXN1bHRzVG9DYW52YXMoYmFzZS5idWZmZXIoKSk7CiAKLSAgICAgICAgY2FudmFzLT5tYWtlUHJl
c2VudGF0aW9uQ29weSgpOworICAgICAgICBiYXNlLm1ha2VQcmVzZW50YXRpb25Db3B5KCk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIGNhbnZhcy0+Y2xlYXJQcmVzZW50YXRpb25Db3B5KCk7CisgICAg
ICAgIGJhc2UuY2xlYXJQcmVzZW50YXRpb25Db3B5KCk7CiAgICAgY2xlYXJJZkNvbXBvc2l0ZWQo
KTsKIAogICAgIGlmICghbV9tYXJrZWRDYW52YXNEaXJ0eSAmJiAhbV9sYXllckNsZWFyZWQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNhbnZhcy0+Y2xlYXJDb3BpZWRJbWFnZSgpOworICAgIGJh
c2UuY2xlYXJDb3BpZWRJbWFnZSgpOwogICAgIG1fbWFya2VkQ2FudmFzRGlydHkgPSBmYWxzZTsK
IAotICAgIG1fY29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoY2FudmFzLT5i
dWZmZXIoKSk7CisgICAgbV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhi
YXNlLmJ1ZmZlcigpKTsKIH0KIAogUmVmUHRyPEltYWdlRGF0YT4gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9JbWFnZURhdGEoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390644</attachid>
            <date>2020-02-13 08:16:47 -0800</date>
            <delta_ts>2020-03-31 10:45:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200213161645.patch</filename>
            <type>text/plain</type>
            <size>60042</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2I5OTJlZjY0NWU0NjBh
OTcyOTc1NGI3YjRjNzJjNTNiYzRhMDZiNy4uOTE0Zjg3OTQxNDZkOWY5ZWFjYjU2M2U3YTRiMDRl
MTY1NGIwZDFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBodG1sL0NhbnZhc0Jhc2UuaDoKKyAgICAgICAgKiBodG1sL0N1c3RvbVBhaW50Q2FudmFzLmg6
CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
YW52YXNFbGVtZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q2FudmFzRWxlbWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAq
IGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVt
ZW50LmlkbDoKKyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMp
OgorICAgICAgICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhv
bGRlckNhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpyZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JXZWJH
TCk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRFbmFibGVXZWJHTCk6CisgICAgICAgIChXZWJD
b3JlOjpPZmZzY3JlZW5DYW52YXM6OmlzV2ViR0xUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok9m
ZnNjcmVlbkNhbnZhczo6Y3JlYXRlQ29udGV4dFdlYkdMKToKKyAgICAgICAgKFdlYkNvcmU6Ok9m
ZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5D
YW52YXM6OmRpZERyYXcpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpkZXRh
Y2gpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpzZXRQbGFjZWhvbGRlckNh
bnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OnBsYWNlaG9sZGVyQ2Fu
dmFzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6cHVzaEJ1ZmZl
clRvUGxhY2Vob2xkZXIpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpjb21t
aXRUb1BsYWNlaG9sZGVyQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZh
czo6c2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6
Ok9mZnNjcmVlbkNhbnZhczo6cmVzZXQpOgorICAgICAgICAqIGh0bWwvT2Zmc2NyZWVuQ2FudmFz
Lmg6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52YXMuaWRsOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6
CisgICAgICAgICogaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6UGxhY2Vob2xk
ZXJSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dDo6c2V0T2Zmc2NyZWVuQ2FudmFzKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9Q
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjptYXJrQ29udGV4dENoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52
YXMpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJH
bG9iYWxTY29wZTo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OndlYkdMRW5hYmxlZCBjb25zdCk6CisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAg
ICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUGFy
YW1ldGVyczo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRo
cmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2Vydmlj
ZVdvcmtlclRocmVhZCk6CisKIDIwMjAtMDItMTAgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIEltcGxlbWVudCBPZmZzY3JlZW5DYW52YXMuY29waWVkSW1hZ2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2FudmFzQmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9DYW52YXNCYXNlLmgKaW5kZXggMGRhNmU4YjYyZWQ4MGI5NTM4NDc3Mjc1MGZhNDQ5
MWZiM2FjMGFkNi4uMjAwN2MyNmI0YmIyM2Q1N2FkNTcwN2YwNTI2YjEzYTlkYjdiMDU5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DYW52YXNCYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9DYW52YXNCYXNlLmgKQEAgLTEwMSw2ICsxMDEsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRpZERyYXcoY29uc3QgRmxvYXRSZWN0JikgPSAwOwogCiAgICAgdmlydHVh
bCBJbWFnZSogY29waWVkSW1hZ2UoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIG1ha2VQ
cmVzZW50YXRpb25Db3B5KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclByZXNlbnRhdGlv
bkNvcHkoKSA9IDA7CisKICAgICBib29sIGNhbGxUcmFjaW5nQWN0aXZlKCkgY29uc3Q7CiAKIHBy
b3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRDYW52
YXMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRDYW52YXMuaAppbmRleCBmNDA0
MDZmMGJhMGNjNDFjNGI5ODMyODMyZDVlODI1ZTI5MmVhN2I3Li5jNjViYTVhYTJmYmFiZjgzMzAy
MDNjMTUyMjc0Y2JmZDIxZTI3MjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1
c3RvbVBhaW50Q2FudmFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENh
bnZhcy5oCkBAIC02Myw2ICs2Myw5IEBAIHB1YmxpYzoKIAogICAgIEFmZmluZVRyYW5zZm9ybSBi
YXNlVHJhbnNmb3JtKCkgY29uc3QgZmluYWwgeyBBU1NFUlQobV9kZXN0aW5hdGlvbkdyYXBoaWNz
Q29udGV4dCAmJiBtX2NvcGllZEJ1ZmZlcik7IHJldHVybiBtX2NvcGllZEJ1ZmZlci0+YmFzZVRy
YW5zZm9ybSgpOyB9CiAgICAgSW1hZ2UqIGNvcGllZEltYWdlKCkgY29uc3QgZmluYWw7CisgICAg
dm9pZCBtYWtlUHJlc2VudGF0aW9uQ29weSgpIGZpbmFsIHsgfTsKKyAgICB2b2lkIGNsZWFyUHJl
c2VudGF0aW9uQ29weSgpIGZpbmFsIHsgfTsKKwogICAgIHZvaWQgcmVwbGF5RGlzcGxheUxpc3Qo
R3JhcGhpY3NDb250ZXh0KikgY29uc3Q7CiAKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGY1ZTc2NTAwNjlh
NmQ4NjkwZDk0M2RlZTI2YmIzNjFmOTE4OWNlMzEuLjAzMjg4MWI4NzBmZDhmYTYyODI0OTc3MTg1
MWNhZGRlOGRkM2Y3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIk1JTUVU
eXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIK
ICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5o
IgogI2luY2x1ZGUgIlJlc291cmNlTG9hZE9ic2VydmVyLmgiCkBAIC0xNjQsNyArMTY1LDcgQEAg
Ym9vbCBIVE1MQ2FudmFzRWxlbWVudDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdAogCiBFeGNl
cHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVl
KQogewotICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisg
ICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oaGVpZ2h0QXR0ciwgQXRvbVN0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5v
bk5lZ2F0aXZlKHZhbHVlLCBkZWZhdWx0SGVpZ2h0KSkpOwogICAgIHJldHVybiB7IH07CkBAIC0x
NzIsNyArMTczLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhl
aWdodCh1bnNpZ25lZCB2YWx1ZSkKIAogRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1l
bnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZhbHVlKQogewotICAgIGlmIChtX2NvbnRleHQgJiYgbV9j
b250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVu
KCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAg
IHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5n
OjpudW1iZXIobGltaXRUb09ubHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRXaWR0aCkp
KTsKICAgICByZXR1cm4geyB9OwpAQCAtNTM2LDcgKzUzNyw3IEBAIHZvaWQgSFRNTENhbnZhc0Vs
ZW1lbnQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogCiB2b2lkIEhUTUxDYW52YXNF
bGVtZW50OjpyZXNldCgpCiB7Ci0gICAgaWYgKG1faWdub3JlUmVzZXQpCisgICAgaWYgKG1faWdu
b3JlUmVzZXQgfHwgaXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgYm9vbCBoYWRJbWFnZUJ1ZmZlciA9IGhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpOwpAQCAt
NzM4LDYgKzczOSwyMyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6dG9C
bG9iKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZgogICAgIHJldHVybiB7IH07
CiB9CiAKK0V4Y2VwdGlvbk9yPFJlZlB0cjxPZmZzY3JlZW5DYW52YXM+PiBIVE1MQ2FudmFzRWxl
bWVudDo6dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkKK3sKKyAgICBpZiAobV9jb250ZXh0KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIFJlZlB0cjxPZmZzY3JlZW5DYW52YXM+IGNh
bnZhcyA9IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKGNvbnRleHQsIHdpZHRoKCksIGhlaWdodCgp
KTsKKyAgICBjYW52YXMtPnNldFBsYWNlaG9sZGVyQ2FudmFzKG1ha2VXZWFrUHRyKCp0aGlzKSk7
CisgICAgbV9jb250ZXh0ID0gbWFrZVVuaXF1ZTxQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ+
KCp0aGlzLCBjYW52YXMuZ2V0KCkpOworCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAg
IC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVy
IGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzLgorICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVy
Q29tcG9zaXRpb24oKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIGNhbnZhczsKK30KKwogUmVmUHRy
PEltYWdlRGF0YT4gSFRNTENhbnZhc0VsZW1lbnQ6OmdldEltYWdlRGF0YSgpCiB7CiAjaWYgRU5B
QkxFKFdFQkdMKQpAQCAtOTA0LDggKzkyMiwyNSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojpj
cmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldElt
YWdlQnVmZmVyQW5kTWFya0RpcnR5KHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZm
ZXIpCiB7CisgICAgSW50U2l6ZSBvbGRTaXplID0gc2l6ZSgpOwogICAgIG1faGFzQ3JlYXRlZElt
YWdlQnVmZmVyID0gdHJ1ZTsKICAgICBzZXRJbWFnZUJ1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpOwor
CisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpIHsKKyAgICAgICAgaWYgKG9sZFNp
emUgIT0gc2l6ZSgpKSB7CisgICAgICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKHdpZHRoQXR0ciwgQXRvbVN0cmluZzo6bnVtYmVyKHdpZHRoKCkpKTsKKyAgICAgICAg
ICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0ciwgQXRvbVN0
cmluZzo6bnVtYmVyKGhlaWdodCgpKSk7CisgICAgICAgICAgICBub3RpZnlPYnNlcnZlcnNDYW52
YXNSZXNpemVkKCk7CisgICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRSZW5kZXJlcnNGb3JT
dWJ0cmVlKCk7CisgICAgICAgIH0KKyAgICB9CisjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFD
S0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyAgICBlbHNlIGlm
IChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pczJkKCkpIHsKKyAgICAgICAgLy8gUmVjYWxjdWxh
dGUgY29tcG9zaXRpbmcgcmVxdWlyZW1lbnRzIGlmIGFjY2VsZXJhdGlvbiBzdGF0ZSBjaGFuZ2Vk
LgorICAgICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CisgICAgfQor
I2VuZGlmCisKICAgICBkaWREcmF3KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNpemUoKSkpOwog
fQogCkBAIC05MzksNCArOTc0LDkgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3Bp
ZWRJbWFnZSgpCiAgICAgbV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKK2Jvb2wg
SFRNTENhbnZhc0VsZW1lbnQ6OmlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNQbGFjZWhvbGRlcigpOworfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggYjUyODY0NWM2NTg3
NGNkMGNhMDkzNDQ0NjFiNDU0ZDU2MDUwNjMyNi4uZTc2Y2I4M2Y0MTM1M2Y2ODIzMDM1YzRkOTJj
MzIzOTczNzZhMWU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApA
QCAtNDksNiArNDksNyBAQCBjbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIEltYWdlRGF0YTsKIGNs
YXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgTWVkaWFTdHJlYW07CitjbGFzcyBPZmZzY3JlZW5DYW52
YXM7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwogY2xhc3MgR1BVQ2FudmFzQ29u
dGV4dDsKIHN0cnVjdCBVbmNhY2hlZFN0cmluZzsKQEAgLTk2LDYgKzk3LDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2FjaGVkU3RyaW5nPiB0b0RhdGFVUkwo
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1ZhbHVlIHF1YWxpdHkpOwogICAgIFdFQkNP
UkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2FjaGVkU3RyaW5nPiB0b0RhdGFVUkwoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gdG9CbG9iKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBSZWY8QmxvYkNhbGxiYWNrPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CisgICAgRXhjZXB0aW9uT3I8UmVmUHRyPE9mZnNjcmVl
bkNhbnZhcz4+IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKTsKIAogICAgIC8vIFVzZWQgZm9yIHJlbmRlcmluZwogICAgIHZvaWQgZGlkRHJhdyhjb25z
dCBGbG9hdFJlY3QmKSBmaW5hbDsKQEAgLTExMCw4ICsxMTIsOSBAQCBwdWJsaWM6CiAgICAgSW1h
Z2UqIGNvcGllZEltYWdlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjbGVhckNvcGllZEltYWdl
KCk7CiAgICAgUmVmUHRyPEltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKCk7Ci0gICAgdm9pZCBtYWtl
UHJlc2VudGF0aW9uQ29weSgpOwotICAgIHZvaWQgY2xlYXJQcmVzZW50YXRpb25Db3B5KCk7CisK
KyAgICB2b2lkIG1ha2VQcmVzZW50YXRpb25Db3B5KCkgZmluYWw7CisgICAgdm9pZCBjbGVhclBy
ZXNlbnRhdGlvbkNvcHkoKSBmaW5hbDsKIAogICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9y
aWdpbigpIGNvbnN0IGZpbmFsOwogCkBAIC0xMjgsNiArMTMxLDggQEAgcHVibGljOgogCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0TWF4UGl4ZWxNZW1vcnlGb3JUZXN0aW5nKHNp
emVfdCk7CiAKKyAgICBib29sIGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkgY29uc3Q7CisKIHBy
aXZhdGU6CiAgICAgSFRNTENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKaW5kZXgg
NjlmMGE3MWU0M2UzNmExODRiNDg4MmRkN2NlZWY3ZGYxOWJiODFiYi4uMjVkMmFiYjFhODBkY2U1
ZWNlNjlhMjgxMmM4NGVkOWE3MmU4N2ZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5pZGwKQEAgLTQ5LDYgKzQ5LDcgQEAgdHlwZWRlZiAoCiAKICAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIERPTVN0cmluZyB0b0RhdGFVUkwob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgdG9CbG9iKEJsb2JDYWxsYmFjayBjYWxsYmFj
aywgb3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKKyAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIE9mZnNj
cmVlbkNhbnZhcyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOwogCiAgICAgW0NvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTSwgQ2FsbFdpdGg9RG9jdW1lbnQsIE1heVRocm93RXhjZXB0aW9uLCBO
ZXdPYmplY3RdIE1lZGlhU3RyZWFtIGNhcHR1cmVTdHJlYW0ob3B0aW9uYWwgZG91YmxlIGZyYW1l
UmVxdWVzdFJhdGUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2Ny
ZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcApp
bmRleCA2YmRiZTJmMzYyYzk3MzhhYzZjY2QwNmU2YTc3NmFhMTMxOGVlNTcwLi5iZGYzMWY2ZWUz
M2NjYTMyMTZlMDVlYjJhZWJkN2Q0OGE2ZmZhODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZz
Y3JlZW5DYW52YXMuY3BwCkBAIC0zMCwyMyArMzAsMzUgQEAKIAogI2luY2x1ZGUgIkNTU1ZhbHVl
UG9vbC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJI
VE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgiCiAjaW5jbHVkZSAi
SlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmgiCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAi
UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2Nv
cGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCisjaWYgRU5BQkxFKFdF
QkdMKQorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKworI2lmIEVOQUJMRShXRUJHTDIpCisjaW5j
bHVkZSAiV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIgorI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxF
KFdFQkdMKQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChPZmZzY3JlZW5DYW52YXMpOwogCi1EZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNo
ZWRPZmZzY3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmIGJ1ZmZlciwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBvcmlnaW5DbGVhbikKK0RldGFjaGVkT2Zmc2NyZWVu
Q2FudmFzOjpEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+JiYgYnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplLCBib29sIG9yaWdpbkNsZWFuLCBXZWFr
UHRyPEhUTUxDYW52YXNFbGVtZW50PiYmIHBsYWNlaG9sZGVyQ2FudmFzKQogICAgIDogbV9idWZm
ZXIoV1RGTW92ZShidWZmZXIpKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX29yaWdpbkNs
ZWFuKG9yaWdpbkNsZWFuKQorICAgICwgbV9wbGFjZWhvbGRlckNhbnZhcyhwbGFjZWhvbGRlckNh
bnZhcykKIHsKIH0KIApAQCAtNTUsNiArNjcsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiBEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6dGFrZUltYWdlQnVmZmVyKCkKICAgICByZXR1
cm4gV1RGTW92ZShtX2J1ZmZlcik7CiB9CiAKK1dlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IERl
dGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0YWtlUGxhY2Vob2xkZXJDYW52YXMoKQoreworICAgIHJl
dHVybiBXVEZNb3ZlKG1fcGxhY2Vob2xkZXJDYW52YXMpOworfQorCiBSZWY8T2Zmc2NyZWVuQ2Fu
dmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogewogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE9mZnNjcmVlbkNhbnZhcyhjb250ZXh0LCB3aWR0aCwgaGVpZ2h0KSk7CkBAIC02
MywxMCArODAsMjEgQEAgUmVmPE9mZnNjcmVlbkNhbnZhcz4gT2Zmc2NyZWVuQ2FudmFzOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgdW4KIFJlZjxPZmZzY3JlZW5DYW52
YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4mJiBkZXRhY2hlZENh
bnZhcykKIHsKICAgICBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBjbG9uZSA9IGFkb3B0UmVmKCpuZXcg
T2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQsIGRldGFjaGVkQ2FudmFzLT5zaXplKCkud2lkdGgoKSwg
ZGV0YWNoZWRDYW52YXMtPnNpemUoKS5oZWlnaHQoKSkpOworCiAgICAgY2xvbmUtPnNldEltYWdl
QnVmZmVyKGRldGFjaGVkQ2FudmFzLT50YWtlSW1hZ2VCdWZmZXIoKSk7CiAgICAgaWYgKCFkZXRh
Y2hlZENhbnZhcy0+b3JpZ2luQ2xlYW4oKSkKICAgICAgICAgY2xvbmUtPnNldE9yaWdpblRhaW50
ZWQoKTsKIAorICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbnZhcyA9IGRldGFjaGVkQ2FudmFzLT50
YWtlUGxhY2Vob2xkZXJDYW52YXMoKSwgb2Zmc2NyZWVuQ2FudmFzID0gY2xvbmUucHRyKCldICgp
IG11dGFibGUgeworICAgICAgICBpZiAoY2FudmFzKSB7CisgICAgICAgICAgICBpZiAoYXV0byBy
ZW5kZXJpbmdDb250ZXh0ID0gY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCkpIHsKKyAgICAgICAg
ICAgICAgICBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQmIHBsYWNlaG9sZGVyQ29udGV4dCA9
IGRvd25jYXN0PFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dD4oKnJlbmRlcmluZ0NvbnRleHQp
OworICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyQ29udGV4dC5zZXRPZmZzY3JlZW5DYW52YXMo
b2Zmc2NyZWVuQ2FudmFzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNjcmVlbkNh
bnZhcy0+c2V0UGxhY2Vob2xkZXJDYW52YXMoV1RGTW92ZShjYW52YXMpKTsKKyAgICAgICAgfQor
ICAgIH0pOworCiAgICAgcmV0dXJuIGNsb25lOwogfQogCkBAIC0xMTgsNDUgKzE0NiwxMDcgQEAg
dm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKICAg
ICByZXNldCgpOwogfQogCi1FeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiBP
ZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIFJl
bmRlcmluZ0NvbnRleHRUeXBlIGNvbnRleHRUeXBlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpV
bmtub3duPj4mJiBhcmd1bWVudHMpCisjaWYgRU5BQkxFKFdFQkdMKQorc3RhdGljIGJvb2wgcmVx
dWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yV2ViR0woKQoreworI2lmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV0lOX0NBSVJPKQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAg
cmV0dXJuIHRydWU7CisjZW5kaWYKK30KKworc3RhdGljIGJvb2wgc2hvdWxkRW5hYmxlV2ViR0wo
Ym9vbCB3ZWJHTEVuYWJsZWQsIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpCit7
CisgICAgaWYgKCF3ZWJHTEVuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlm
ICghcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yV2ViR0woKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICByZXR1cm4gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7Cit9
CisKK2Jvb2wgT2Zmc2NyZWVuQ2FudmFzOjppc1dlYkdMVHlwZShjb25zdCBTdHJpbmcmIHR5cGUp
Cit7CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICByZXR1cm4gdHlwZSA9PSAid2ViZ2wiIHx8IHR5
cGUgPT0gIndlYmdsMiI7CisjZWxzZQorICAgIHJldHVybiB0eXBlID09ICJ3ZWJnbCI7CisjZW5k
aWYKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZUNvbnRleHRXZWJHTChjb25zdCBT
dHJpbmcmIHR5cGUsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmJiBhdHRycykKK3sKKyAgICBBU1NF
UlQoT2Zmc2NyZWVuQ2FudmFzOjppc1dlYkdMVHlwZSh0eXBlKSk7CisgICAgQVNTRVJUKCFtX2Nv
bnRleHQpOworCisgICAgYXV0byBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwor
ICAgIGlmIChjb250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpIHsKKyAgICAgICAgV29ya2Vy
R2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KCpjb250ZXh0KTsKKyAgICAgICAgaWYgKCFzaG91bGRFbmFibGVXZWJHTCh3b3JrZXJHbG9i
YWxTY29wZS53ZWJHTEVuYWJsZWQoKSwgd29ya2VyR2xvYmFsU2NvcGUuYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWQoKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChj
b250ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgYXV0byYgc2V0dGluZ3MgPSBkb3duY2Fz
dDxEb2N1bWVudD4oKmNvbnRleHQpLnNldHRpbmdzKCk7CisgICAgICAgIGlmICghc2hvdWxkRW5h
YmxlV2ViR0woc2V0dGluZ3Mud2ViR0xFbmFibGVkKCksIHNldHRpbmdzLmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKCkpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpjcmVhdGUoKnRoaXMsIGF0dHJzLCB0eXBlKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShXRUJH
TCkKKworRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4+IE9m
ZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgY29u
c3QgU3RyaW5nJiBjb250ZXh0SWQsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYm
IGFyZ3VtZW50cykKIHsKICAgICBpZiAobV9kZXRhY2hlZCkKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBpZiAoY29udGV4dFR5cGUgPT0gUmVu
ZGVyaW5nQ29udGV4dFR5cGU6Ol8yZCkgeworICAgIGlmIChjb250ZXh0SWQgPT0gIjJkIikgewog
ICAgICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgICAgICBpZiAoIWlzPE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07Ci0gICAgICAgICAgICByZXR1cm4g
eyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gT3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4geyBX
VEY6Om51bGxvcHQgfTsKKyAgICAgICAgICAgIHJldHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5k
ZXJpbmdDb250ZXh0PiB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4
dCkgfSB9OwogICAgICAgICB9CiAKICAgICAgICAgbV9jb250ZXh0ID0gbWFrZVVuaXF1ZTxPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCp0aGlzKTsKICAgICAgICAgaWYgKCFtX2Nv
bnRleHQpCi0gICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPiB7IG51bGxwdHIgfSB9OworICAgICAgICAgICAgcmV0dXJuIE9wdGlvbmFs
PE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+IHsgV1RGOjpudWxsb3B0IH07CiAKLSAgICAgICAg
cmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93
bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH07
CisgICAgICAgIHJldHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiB7IFJl
ZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNj
cmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OwogICAgIH0KKwog
I2lmIEVOQUJMRShXRUJHTCkKLSAgICBpZiAoY29udGV4dFR5cGUgPT0gUmVuZGVyaW5nQ29udGV4
dFR5cGU6OldlYmdsKSB7CisgICAgaWYgKGlzV2ViR0xUeXBlKGNvbnRleHRJZCkpIHsKICAgICAg
ICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAgICAgaWYgKCFpczxXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ+KCptX2NvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OwotICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPFdlYkdMUmVu
ZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250
ZXh0KSB9IH07CisgICAgICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9j
b250ZXh0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gT3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVy
aW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyNpZiBFTkFCTEUoV0VCR0wy
KQorICAgICAgICAgICAgaWYgKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQp
KQorICAgICAgICAgICAgICAgIHJldHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250
ZXh0PiB7IFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisjZW5kaWYKKyAgICAgICAgICAgIHJl
dHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiB7IFdURjo6bnVsbG9wdCB9
OwogICAgICAgICB9CiAKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
c3RhdGUudm0oKSk7CiAgICAgICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnZlcnQ8SURMRGljdGlv
bmFyeTxXZWJHTENvbnRleHRBdHRyaWJ1dGVzPj4oc3RhdGUsICFhcmd1bWVudHMuaXNFbXB0eSgp
ID8gYXJndW1lbnRzWzBdLmdldCgpIDogSlNDOjpqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJv
ciB9KTsKIAotICAgICAgICBtX2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpj
cmVhdGUoKnRoaXMsIGF0dHJpYnV0ZXMsICJ3ZWJnbCIpOworICAgICAgICBjcmVhdGVDb250ZXh0
V2ViR0woY29udGV4dElkLCBXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKICAgICAgICAgaWYgKCFtX2Nv
bnRleHQpCi0gICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0
PiB7IG51bGxwdHIgfSB9OworICAgICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPE9mZnNjcmVlblJl
bmRlcmluZ0NvbnRleHQ+IHsgV1RGOjpudWxsb3B0IH07CiAKLSAgICAgICAgcmV0dXJuIHsgUmVm
UHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250
ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ+KCptX2NvbnRleHQpKQorICAgICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPE9mZnNjcmVlblJl
bmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNh
c3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisjaWYgRU5BQkxFKFdF
QkdMMikKKyAgICAgICAgQVNTRVJUKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRl
eHQpKTsKKyAgICAgICAgcmV0dXJuIE9wdGlvbmFsPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+
IHsgUmVmUHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyNlbmRpZgogICAgIH0KICNlbmRpZgogCi0g
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VCaXRt
YXA+PiBPZmZzY3JlZW5DYW52YXM6OnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpCkBAIC0yNTgsNiAr
MzQ4LDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OmNvbnZlcnRUb0Jsb2IoSW1hZ2VFbmNvZGVP
cHRpb25zJiYgb3B0aW9ucywgUmVmPERlZmVycmVkUHIKIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpk
aWREcmF3KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBjbGVhckNvcGllZEltYWdlKCk7
CisgICAgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CiAgICAgbm90aWZ5T2Jz
ZXJ2ZXJzQ2FudmFzQ2hhbmdlZChyZWN0KTsKIH0KIApAQCAtMzAwLDcgKzM5MSw3NCBAQCBzdGQ6
OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6ZGV0
YWNoKCkKIAogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8
RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+KHRha2VJbWFnZUJ1ZmZlcigpLCBzaXplKCksIG9yaWdp
bkNsZWFuKCkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFz
Pih0YWtlSW1hZ2VCdWZmZXIoKSwgc2l6ZSgpLCBvcmlnaW5DbGVhbigpLCBXVEZNb3ZlKG1fcGxh
Y2Vob2xkZXJDYW52YXMpKTsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFBsYWNlaG9s
ZGVyQ2FudmFzKFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiYgY2FudmFzKQoreworICAgIEFT
U0VSVCghbV9jb250ZXh0KTsKKyAgICBtX3BsYWNlaG9sZGVyQ2FudmFzID0gY2FudmFzOworfQor
CitIVE1MQ2FudmFzRWxlbWVudCogT2Zmc2NyZWVuQ2FudmFzOjpwbGFjZWhvbGRlckNhbnZhcygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGxhY2Vob2xkZXJDYW52YXMuZ2V0KCk7Cit9CisKK3Zv
aWQgT2Zmc2NyZWVuQ2FudmFzOjpwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpCit7CisgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpc10gKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9jb21taXRMb2NrKTsKKyAgICAgICAgbV9wZW5kaW5nQ29tbWl0ID0gZmFsc2U7
CisgICAgICAgIGlmICghbV9wbGFjZWhvbGRlckNhbnZhcyB8fCAhbV9wZW5kaW5nQ29tbWl0RGF0
YSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKEZsb2F0U2l6ZShtX3BlbmRpbmdDb21t
aXRTaXplKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CisgICAgICAgIGJ1ZmZlci0+
cHV0Qnl0ZUFycmF5KCptX3BlbmRpbmdDb21taXREYXRhLCBBbHBoYVByZW11bHRpcGxpY2F0aW9u
OjpQcmVtdWx0aXBsaWVkLCBtX3BlbmRpbmdDb21taXRTaXplLCBJbnRSZWN0KEludFBvaW50KCks
IG1fcGVuZGluZ0NvbW1pdFNpemUpLCBJbnRQb2ludCgpLCBJbWFnZUJ1ZmZlcjo6QmFja2luZ1N0
b3JlQ29vcmRpbmF0ZVN5c3RlbSk7CisgICAgICAgIG1fcGxhY2Vob2xkZXJDYW52YXMtPnNldElt
YWdlQnVmZmVyQW5kTWFya0RpcnR5KFdURk1vdmUoYnVmZmVyKSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgT2Zmc2NyZWVuQ2FudmFzOjpjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCkKK3sKKyAgICBh
dXRvKiBpbWFnZUJ1ZmZlciA9IGJ1ZmZlcigpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIFRPRE86IFRyYW5zZmVyIHRleHR1cmUgb3ZlciBpZiB3ZSdy
ZSB1c2luZyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZworICAgIGlmIChtX2NvbnRleHQgJiYgKG1f
Y29udGV4dC0+aXNXZWJHTCgpIHx8IG1fY29udGV4dC0+aXNBY2NlbGVyYXRlZCgpKSkKKyAgICAg
ICAgbV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcygpOworCisgICAgaWYg
KGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgIGlmIChtX3BsYWNlaG9sZGVyQ2FudmFzKSB7Cisg
ICAgICAgICAgICBhdXRvJiBzaXplID0gaW1hZ2VCdWZmZXItPmludGVybmFsU2l6ZSgpOworICAg
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXJDb3B5ID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShGbG9hdFNpemUoc2l6ZSksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0
ZWQpOworICAgICAgICAgICAgYXV0byBidWZmZXJEYXRhID0gaW1hZ2VCdWZmZXItPmdldFByZW11
bHRpcGxpZWRJbWFnZURhdGEoSW50UmVjdChJbnRQb2ludCgpLCBzaXplKSwgbnVsbHB0ciwgSW1h
Z2VCdWZmZXI6OkJhY2tpbmdTdG9yZUNvb3JkaW5hdGVTeXN0ZW0pOworICAgICAgICAgICAgYnVm
ZmVyQ29weS0+cHV0Qnl0ZUFycmF5KCpidWZmZXJEYXRhLCBBbHBoYVByZW11bHRpcGxpY2F0aW9u
OjpQcmVtdWx0aXBsaWVkLCBzaXplLCBJbnRSZWN0KEludFBvaW50KCksIHNpemUpLCBJbnRQb2lu
dCgpLCBJbWFnZUJ1ZmZlcjo6QmFja2luZ1N0b3JlQ29vcmRpbmF0ZVN5c3RlbSk7CisgICAgICAg
ICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzLT5zZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eShXVEZN
b3ZlKGJ1ZmZlckNvcHkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2NvbW1pdExvY2spOworCisgICAgbV9wZW5kaW5n
Q29tbWl0U2l6ZSA9IGltYWdlQnVmZmVyLT5pbnRlcm5hbFNpemUoKTsKKyAgICBtX3BlbmRpbmdD
b21taXREYXRhID0gaW1hZ2VCdWZmZXItPmdldFByZW11bHRpcGxpZWRJbWFnZURhdGEoSW50UmVj
dChJbnRQb2ludCgpLCBtX3BlbmRpbmdDb21taXRTaXplKSwgbnVsbHB0ciwgSW1hZ2VCdWZmZXI6
OkJhY2tpbmdTdG9yZUNvb3JkaW5hdGVTeXN0ZW0pOworCisgICAgaWYgKCFtX3BlbmRpbmdDb21t
aXQpIHsKKyAgICAgICAgbV9wZW5kaW5nQ29tbWl0ID0gdHJ1ZTsKKyAgICAgICAgcHVzaEJ1ZmZl
clRvUGxhY2Vob2xkZXIoKTsKKyAgICB9Cit9CisKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzY2hl
ZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKQoreworICAgIGlmICghbV9wZW5kaW5nQ29t
bWl0VGFzaykgeworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAgICBtX3BlbmRpbmdDb21taXRUYXNrID0gY29u
dGV4dC0+cG9zdFRhc2tUbyhjb250ZXh0LT5jb250ZXh0SWRlbnRpZmllcigpLCBbdGhpc10gKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgICAgICAgICBtX3BlbmRpbmdDb21taXRUYXNr
ID0gZmFsc2U7CisgICAgICAgICAgICBjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisgICAg
ICAgIH0pOworICAgIH0KIH0KIAogQ1NTVmFsdWVQb29sJiBPZmZzY3JlZW5DYW52YXM6OmNzc1Zh
bHVlUG9vbCgpCkBAIC0zNTAsNiArNTA4LDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OnJlc2V0
KCkKICAgICBjbGVhckNvcGllZEltYWdlKCk7CiAKICAgICBub3RpZnlPYnNlcnZlcnNDYW52YXNS
ZXNpemVkKCk7CisgICAgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCmluZGV4IDFiOTVmNjdhZmVlMjE4
MGI2YTkxMTc1YTQyMDgwZTM3ZDM1YjhlZmQuLjc2MjMzODBkZDI0MWIyNTUxNWQ1NjY3ZmY5NDFh
NGFkZDM0YWE1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2Fu
dmFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaApAQCAtMzUs
MzkgKzM1LDU0IEBACiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJJbnRTaXplLmgi
CiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
VWludDhDbGFtcGVkQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpZiBFTkFCTEUoV0VCR0wpCisjaW5jbHVkZSAiV2ViR0xD
b250ZXh0QXR0cmlidXRlcy5oIgorI2VuZGlmCisKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0OwogY2xhc3MgQ1NTVmFsdWVQb29sOwogY2xhc3Mg
RGVmZXJyZWRQcm9taXNlOworY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CiBjbGFzcyBJbWFnZUJp
dG1hcDsKIGNsYXNzIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDsKK2NsYXNzIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CitjbGFz
cyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwogCit1c2luZyBPZmZzY3JlZW5SZW5kZXJpbmdD
b250ZXh0ID0gVmFyaWFudDwKICNpZiBFTkFCTEUoV0VCR0wpCi11c2luZyBPZmZzY3JlZW5SZW5k
ZXJpbmdDb250ZXh0ID0gVmFyaWFudDxSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEPiwgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4+OwotI2Vsc2UKLXVzaW5nIE9m
ZnNjcmVlblJlbmRlcmluZ0NvbnRleHQgPSBWYXJpYW50PFJlZlB0cjxPZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ+PjsKKyAgICBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiwK
ICNlbmRpZgorI2lmIEVOQUJMRShXRUJHTDIpCisgICAgUmVmUHRyPFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ+LAorI2VuZGlmCisgICAgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRD4KKz47CiAKIGNsYXNzIERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcyk7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMoc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmLCBjb25zdCBJbnRTaXplJiwgYm9vbCBvcmlnaW5DbGVh
bik7CisgICAgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiYmLCBjb25zdCBJbnRTaXplJiwgYm9vbCBvcmlnaW5DbGVhbiwgV2Vha1B0cjxIVE1MQ2Fu
dmFzRWxlbWVudD4mJiBwbGFjZWhvbGRlckNhbnZhcyk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+IHRha2VJbWFnZUJ1ZmZlcigpOwogICAgIGNvbnN0IEludFNpemUmIHNpemUo
KSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICBib29sIG9yaWdpbkNsZWFuKCkgY29uc3Qg
eyByZXR1cm4gbV9vcmlnaW5DbGVhbjsgfQorICAgIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+
IHRha2VQbGFjZWhvbGRlckNhbnZhcygpOwogCiBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlcj4gbV9idWZmZXI7CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgYm9vbCBt
X29yaWdpbkNsZWFuOworICAgIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IG1fcGxhY2Vob2xk
ZXJDYW52YXM7CiB9OwogCiBjbGFzcyBPZmZzY3JlZW5DYW52YXMgZmluYWwgOiBwdWJsaWMgUmVm
Q291bnRlZDxPZmZzY3JlZW5DYW52YXM+LCBwdWJsaWMgQ2FudmFzQmFzZSwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIg
ewpAQCAtNzksMTEgKzk0LDYgQEAgcHVibGljOgogICAgICAgICBkb3VibGUgcXVhbGl0eSA9IDEu
MDsKICAgICB9OwogCi0gICAgZW51bSBjbGFzcyBSZW5kZXJpbmdDb250ZXh0VHlwZSB7Ci0gICAg
ICAgIF8yZCwKLSAgICAgICAgV2ViZ2wKLSAgICB9OwotCiAgICAgc3RhdGljIFJlZjxPZmZzY3Jl
ZW5DYW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgdW5zaWduZWQgd2lkdGgs
IHVuc2lnbmVkIGhlaWdodCk7CiAgICAgc3RhdGljIFJlZjxPZmZzY3JlZW5DYW52YXM+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPERldGFjaGVkT2Zmc2Ny
ZWVuQ2FudmFzPiYmKTsKICAgICB2aXJ0dWFsIH5PZmZzY3JlZW5DYW52YXMoKTsKQEAgLTk1LDE1
ICsxMDUsMTYgQEAgcHVibGljOgogCiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogcmVuZGVy
aW5nQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQogCi0j
aWYgRU5BQkxFKFdFQkdMKQotICAgIEV4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRl
eHQ+IGdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFJlbmRlcmluZ0NvbnRleHRUeXBl
LCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOwotI2VuZGlm
CisgICAgRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4+IGdl
dENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIGNvbnN0IFN0cmluZyYgY29udGV4dElkLCBW
ZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOwogICAgIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOwogICAg
IHZvaWQgY29udmVydFRvQmxvYihJbWFnZUVuY29kZU9wdGlvbnMmJiwgUmVmPERlZmVycmVkUHJv
bWlzZT4mJik7CiAKICAgICB2b2lkIGRpZERyYXcoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CiAK
ICAgICBJbWFnZSogY29waWVkSW1hZ2UoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIG1ha2VQcmVz
ZW50YXRpb25Db3B5KCkgZmluYWwgeyB9OworICAgIHZvaWQgY2xlYXJQcmVzZW50YXRpb25Db3B5
KCkgZmluYWwgeyB9OworCiAgICAgYm9vbCBoYXNDcmVhdGVkSW1hZ2VCdWZmZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlcjsgfQogCiAgICAgU2VjdXJpdHlP
cmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgZmluYWw7CkBAIC0xMTEsNiArMTIyLDEwIEBA
IHB1YmxpYzoKICAgICBib29sIGNhbkRldGFjaCgpIGNvbnN0OwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4gZGV0YWNoKCk7CiAKKyAgICB2b2lkIHNldFBsYWNl
aG9sZGVyQ2FudmFzKFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiYpOworICAgIEhUTUxDYW52
YXNFbGVtZW50KiBwbGFjZWhvbGRlckNhbnZhcygpIGNvbnN0OworICAgIHZvaWQgY29tbWl0VG9Q
bGFjZWhvbGRlckNhbnZhcygpOworCiAgICAgQ1NTVmFsdWVQb29sJiBjc3NWYWx1ZVBvb2woKTsK
IAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKQEAgLTEzMyw2ICsxNDgsMTIgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRlcmVmQ2FudmFzQmFzZSgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAg
dm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBmaW5hbDsKKworI2lmIEVOQUJMRShXRUJHTCkK
KyAgICBzdGF0aWMgYm9vbCBpc1dlYkdMVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNy
ZWF0ZUNvbnRleHRXZWJHTChjb25zdCBTdHJpbmcmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiYg
PSB7IH0pOworI2VuZGlmCisKICAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QgZmlu
YWw7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiB0YWtlSW1hZ2VCdWZmZXIoKSBj
b25zdDsKIApAQCAtMTQwLDYgKzE2MSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNsZWFyQ29w
aWVkSW1hZ2UoKSBjb25zdDsKIAorICAgIHZvaWQgcHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKTsK
KyAgICB2b2lkIHNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQ+IG1fY29udGV4dDsKIAogICAgIC8v
IG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyIG1lYW5zIHdlIHRyaWVkIHRvIG1hbGxvYyB0aGUgYnVm
ZmVyLiBXZSBkaWRuJ3QgbmVjZXNzYXJpbHkgZ2V0IGl0LgpAQCAtMTQ4LDYgKzE3MiwxNCBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9kZXRhY2hlZCB7IGZhbHNlIH07CiAKICAgICBtdXRhYmxlIFJl
ZlB0cjxJbWFnZT4gbV9jb3BpZWRJbWFnZTsKKworICAgIGJvb2wgbV9wZW5kaW5nQ29tbWl0VGFz
ayB7IGZhbHNlIH07CisgICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gbV9wbGFjZWhvbGRl
ckNhbnZhczsKKworICAgIG11dGFibGUgTG9jayBtX2NvbW1pdExvY2s7CisgICAgYm9vbCBtX3Bl
bmRpbmdDb21taXQgeyBmYWxzZSB9OworICAgIEludFNpemUgbV9wZW5kaW5nQ29tbWl0U2l6ZTsK
KyAgICBSZWZQdHI8VWludDhDbGFtcGVkQXJyYXk+IG1fcGVuZGluZ0NvbW1pdERhdGE7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5pZGwKaW5kZXggNzc5MDMxYTlj
YjZjMGFjMDU5MDNiYTZiYzQ0OGI5ZGNiMmMzYzQ1My4uYzA3OGJkZGJiNTAzMDI2NTgyMGNmMzU5
Y2E2ZDM0MjUyNDdkN2UzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmlk
bApAQCAtMjMsMTEgKzIzLDE0IEBACiAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICovCiAKK3R5cGVkZWYgKAogI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdMKSAmJiBFTkFCTEVfV0VC
R0wKLXR5cGVkZWYgKE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBvciBXZWJHTFJl
bmRlcmluZ0NvbnRleHQpIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ7Ci0jZWxzZQotdHlwZWRl
ZiAoT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBPZmZzY3JlZW5SZW5kZXJpbmdD
b250ZXh0OworICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBvcgogI2VuZGlmCisjaWYgZGVmaW5l
ZChFTkFCTEVfV0VCR0wyKSAmJiBFTkFCTEVfV0VCR0wyCisgICAgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dCBvcgorI2VuZGlmCisgICAgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSBP
ZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0OwogCiBkaWN0aW9uYXJ5IEltYWdlRW5jb2RlT3B0aW9u
cwogewpAQCAtMzUsMTIgKzM4LDYgQEAgZGljdGlvbmFyeSBJbWFnZUVuY29kZU9wdGlvbnMKICAg
IHVucmVzdHJpY3RlZCBkb3VibGUgcXVhbGl0eSA9IDEuMDsKIH07CiAKLWVudW0gT2Zmc2NyZWVu
UmVuZGVyaW5nQ29udGV4dFR5cGUKLXsKLSAgICIyZCIsCi0gICAid2ViZ2wiCi19OwotCiBbCiAg
ICAgQ29uc3RydWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgIENvbnN0
cnVjdG9yKFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgd2lkdGgsIFtFbmZvcmNlUmFuZ2Vd
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0KSwKQEAgLTUyLDcgKzQ5LDcgQEAgZW51bSBPZmZzY3JlZW5S
ZW5kZXJpbmdDb250ZXh0VHlwZQogICAgIGF0dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSB1bnNpZ25l
ZCBsb25nIHdpZHRoOwogICAgIGF0dHJpYnV0ZSBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25n
IGhlaWdodDsKIAotICAgIFtDYWxsV2l0aD1HbG9iYWxPYmplY3QsIE1heVRocm93RXhjZXB0aW9u
XSBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PyBnZXRDb250ZXh0KE9mZnNjcmVlblJlbmRlcmlu
Z0NvbnRleHRUeXBlIGNvbnRleHRUeXBlLCBhbnkuLi4gYXJndW1lbnRzKTsKKyAgICBbQ2FsbFdp
dGg9R2xvYmFsT2JqZWN0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gT2Zmc2NyZWVuUmVuZGVyaW5nQ29u
dGV4dD8gZ2V0Q29udGV4dChET01TdHJpbmcgY29udGV4dFR5cGUsIGFueS4uLiBhcmd1bWVudHMp
OwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gSW1hZ2VCaXRtYXAgdHJhbnNmZXJUb0ltYWdlQml0
bWFwKCk7CiAgICAgUHJvbWlzZTxCbG9iPiBjb252ZXJ0VG9CbG9iKG9wdGlvbmFsIEltYWdlRW5j
b2RlT3B0aW9ucyBvcHRpb25zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oCmluZGV4IDNkZmM5YzlmY2U1
MmJlODg5MmJmNDk4YWU2NzIyMTg3ZjFiZWU5MWQuLjI3Zjk4ZDdjZDcwNzMzYzU4ODBlODY4YTQ2
NTNlNjU3NGQxZWNjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgKQEAgLTIyNSw2ICsyMjUsOCBAQCBw
dWJsaWM6CiAgICAgU3RyaW5nIGRpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1RleHRG
bGFncykgY29uc3Q7CiAgICAgU3RyaW5nIHJlcGxheURpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlM
aXN0OjpBc1RleHRGbGFncykgY29uc3Q7CiAKKyAgICB2b2lkIGNsZWFyQ2FudmFzKCk7CisKICAg
ICB1c2luZyBEaXJlY3Rpb24gPSBDYW52YXNEaXJlY3Rpb247CiAKICAgICBjbGFzcyBGb250UHJv
eHkgOiBwdWJsaWMgRm9udFNlbGVjdG9yQ2xpZW50IHsKQEAgLTM1OCw3ICszNjAsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBpc1BvaW50SW5QYXRoSW50ZXJuYWwoY29uc3QgUGF0aCYsIGZsb2F0
IHgsIGZsb2F0IHksIENhbnZhc0ZpbGxSdWxlKTsKICAgICBib29sIGlzUG9pbnRJblN0cm9rZUlu
dGVybmFsKGNvbnN0IFBhdGgmLCBmbG9hdCB4LCBmbG9hdCB5KTsKIAotICAgIHZvaWQgY2xlYXJD
YW52YXMoKTsKICAgICBQYXRoIHRyYW5zZm9ybUFyZWFUb0RldmljZShjb25zdCBQYXRoJikgY29u
c3Q7CiAgICAgUGF0aCB0cmFuc2Zvcm1BcmVhVG9EZXZpY2UoY29uc3QgRmxvYXRSZWN0JikgY29u
c3Q7CiAgICAgYm9vbCByZWN0Q29udGFpbnNDYW52YXMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA4NmQ3ODRhMzUxZDU4NGNlNmVm
M2E2OTkyZTdlYzIwNmU2OGQ5NjAwLi5mMDJiMzdjOTJiYjRiOWE1MjllYTAxNDQ0YTZjZDNhMzBl
MWVhOTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTQ4LDYgKzQ4LDEy
IEBAIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6T2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEKENhbnZhc0Jhc2UmCiAKIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6fk9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCgpID0gZGVmYXVsdDsK
IAordm9pZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNvbW1pdCgpCit7Cisg
ICAgT2Zmc2NyZWVuQ2FudmFzJiBvZmZzY3JlZW5DYW52YXMgPSBkb3duY2FzdDxPZmZzY3JlZW5D
YW52YXM+KGNhbnZhc0Jhc2UoKSk7CisgICAgb2Zmc2NyZWVuQ2FudmFzLmNvbW1pdFRvUGxhY2Vo
b2xkZXJDYW52YXMoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgKaW5kZXggY2NiMTZlOTJjZDJiZDA0Y2E1NjhiY2Y2MTYz
Mjc5MmU2OTQ5MzNlMC4uZWU5MjlhZjJiMjlkYWU4MjYzZGUxZGFmNjBkZDE2NDU0MjU3ZTllMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgog
ICAgIGJvb2wgaXNPZmZzY3JlZW4yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IAogICAgIE9mZnNjcmVlbkNhbnZhcyYgY2FudmFzKCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8
T2Zmc2NyZWVuQ2FudmFzPihjYW52YXNCYXNlKCkpOyB9CisKKyAgICB2b2lkIGNvbW1pdCgpOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5p
ZGwKaW5kZXggMDRlYzZhNzUxOWIxNGE3NWExMjU2NGY1ZTlkZWI5MTBlYzhiZjEzOS4uZDdmZWM4
Nzk5MzY5MDQ0YmRhNzJkZTBlYjVjNTNkNjM3YWUwMjcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaWRsCkBAIC0yNywxNCArMjcsMTMgQEAKICAgICBDdXN0b21Jc1JlYWNoYWJsZSwK
ICAgICBFbmFibGVkQXRSdW50aW1lPU9mZnNjcmVlbkNhbnZhcywKICAgICBDb25kaXRpb25hbD1P
RkZTQ1JFRU5fQ0FOVkFTLAotICAgIEV4cG9zZWQ9KFdpbmRvdyksIC8vIEZJWE1FOiBPZmZzY3Jl
ZW5DYW52YXMgLSBzaG91bGQgYmUgV2luZG93LFdvcmtlcgorICAgIEV4cG9zZWQ9KFdpbmRvdyxX
b3JrZXIpLAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgIEpTQ3VzdG9tTWFya0Z1bmN0
aW9uLAogICAgIC8vIENhbGxUcmFjaW5nQ2FsbGJhY2s9cmVjb3JkQ2FudmFzQWN0aW9uLCAvLyBG
SVhNRTogT2Zmc2NyZWVuQ2FudmFzLgogXSBpbnRlcmZhY2UgT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgT2Zmc2NyZWVuQ2FudmFzIGNh
bnZhczsKLSAgICAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgotICAgIC8vIHZvaWQgY29tbWl0
KCk7CisgICAgdm9pZCBjb21taXQoKTsKIAogICAgIC8vIEluc3BlY3Rvci1vbmx5LgogICAgIC8v
IEZJWE1FOiBPZmZzY3JlZW5DYW52YXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAwOTJjNGFl
ZjYwYTU1MTNmNDc2YzdkNzE0MzNlYmU3MWFmYTc4MWQ0Li4xMWJhNTAyNjdjNWMwZGI0OTdkYmJh
NTQyYjgzZDQ5ODhkOTc3ZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI2LDE1ICsyNiwy
MyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBsYWNlaG9sZGVyUmVuZGVyaW5n
Q29udGV4dC5oIgogCisjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KTsKIAotUGxhY2Vo
b2xkZXJSZW5kZXJpbmdDb250ZXh0OjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQoQ2FudmFz
QmFzZSYgY2FudmFzKQorUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0OjpQbGFjZWhvbGRlclJl
bmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYgY2FudmFzLCBPZmZzY3JlZW5DYW52YXMqIG9mZnNj
cmVlbkNhbnZhcykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQoY2FudmFzKQorICAgICwg
bV9vZmZzY3JlZW5DYW52YXMob2Zmc2NyZWVuQ2FudmFzKQogewogfQogCit2b2lkIFBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6c2V0T2Zmc2NyZWVuQ2FudmFzKE9mZnNjcmVlbkNhbnZhcyog
b2Zmc2NyZWVuQ2FudmFzKQoreworICAgIEFTU0VSVChvZmZzY3JlZW5DYW52YXMpOworICAgIG1f
b2Zmc2NyZWVuQ2FudmFzID0gb2Zmc2NyZWVuQ2FudmFzOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5o
CmluZGV4IGMzNDhlNTE4OTUyY2I5ZDQxNWM2YmQxNzk1ZjIxNmRjYjE2NWQyNTkuLmM4ZmNiYTNk
NTk3MmM1MDIxOGY0ZThlNDRkZWU0NzMyZWJiYTg4OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0y
OSwxMyArMjksMjIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDYW52YXNCYXNl
OworY2xhc3MgT2Zmc2NyZWVuQ2FudmFzOworCiBjbGFzcyBQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQgZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQpOwogcHVibGljOgot
ICAgIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNlJik7CisgICAgUGxhY2Vo
b2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmLCBPZmZzY3JlZW5DYW52YXMqKTsKKwor
ICAgIEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxI
VE1MQ2FudmFzRWxlbWVudD4oY2FudmFzQmFzZSgpKTsgfQorCisgICAgdm9pZCBzZXRPZmZzY3Jl
ZW5DYW52YXMoT2Zmc2NyZWVuQ2FudmFzKik7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1BsYWNl
aG9sZGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgT2Zmc2NyZWVuQ2Fu
dmFzKiBtX29mZnNjcmVlbkNhbnZhczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwKaW5kZXggYzgwZWI5MmRm
M2RiMDg2YTMxZDcyZWE1ZWZiNTY0NTU5Yzg0MmY1Ni4uMWFiYmNiMTlmOTIwZjE3NTJjZWRjNWYx
NDQ4MDFmZGYyM2NkM2ZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5pZGwKQEAgLTU0LDYgKzU0LDcgQEAgdHlwZWRlZiAo
SW1hZ2VCaXRtYXAgb3IgSW1hZ2VEYXRhIG9yIEhUTUxJbWFnZUVsZW1lbnQgb3IgSFRNTENhbnZh
c0VsZW1lbnQpIFRleEkKICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9V0VC
R0wyLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR0wyLAorICAgIEV4cG9zZWQ9KFdpbmRvdyxX
b3JrZXIpLAogICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgIEpTR2VuZXJhdGVUb0pTT2Jq
ZWN0LAogICAgIERvTm90Q2hlY2tDb25zdGFudHMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbAppbmRleCBmYzVkMzMwZTNjNThj
N2I5MmNhNjc2MTc4NDUyY2QyMzIzZDZlODIzLi5mZTJiYjY2YjZlMzQ1N2FmZmI5NjNkNTI1MjVm
NTAyZTQ1NGM1ZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5pZGwKQEAgLTQwLDYgKzQwLDcgQEAgdHlwZWRlZiAoSW1hZ2VC
aXRtYXAgb3IgSW1hZ2VEYXRhIG9yIEhUTUxJbWFnZUVsZW1lbnQgb3IgSFRNTENhbnZhc0VsZW1l
bnQpIFRleEkKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAgICBEb05vdENoZWNrQ29uc3Rh
bnRzLAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAorICAgIEV4cG9zZWQ9KFdpbmRv
dyxXb3JrZXIpLAogICAgIENhbGxUcmFjaW5nQ2FsbGJhY2s9cmVjb3JkQ2FudmFzQWN0aW9uLAog
XSBpbnRlcmZhY2UgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmlu
ZGV4IDBlZmE0YjRmOWEwYzk5MDA5NGUwNDhlYTM3OGMxODQ1MGE1NzM2NmYuLmMwM2FlNDE5NGEx
NWNjMjk5YjVmM2Q4NjUwZTc4MmY1YThkYTllNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC02MjQs
NyArNjI0LDggQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFdlYkdMQ28KICAgICBtX3Jlc3RvcmVUaW1lci5z
dXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIHJlZ2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKCk7
Ci0gICAgbV9jaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmdUaW1lci5zdGFydE9uZVNob3QoY2hl
Y2tDb250ZXh0TG9zc0hhbmRsaW5nRGVsYXkpOworICAgIGlmIChjYW52YXMuaXNIVE1MQ2FudmFz
RWxlbWVudCgpKQorICAgICAgICBtX2NoZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZ1RpbWVyLnN0
YXJ0T25lU2hvdChjaGVja0NvbnRleHRMb3NzSGFuZGxpbmdEZWxheSk7CiB9CiAKIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYg
Y2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+JiYgY29udGV4dCwgV2ViR0xDb250
ZXh0QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQpAQCAtNjUyLDcgKzY1Myw4IEBAIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2Fu
dmFzLCBSZWY8R3JhCiAgICAgc2V0dXBGbGFncygpOwogICAgIGluaXRpYWxpemVOZXdDb250ZXh0
KCk7CiAgICAgcmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIoKTsKLSAgICBtX2NoZWNrRm9y
Q29udGV4dExvc3NIYW5kbGluZ1RpbWVyLnN0YXJ0T25lU2hvdChjaGVja0NvbnRleHRMb3NzSGFu
ZGxpbmdEZWxheSk7CisgICAgaWYgKGNhbnZhcy5pc0hUTUxDYW52YXNFbGVtZW50KCkpCisgICAg
ICAgIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXIuc3RhcnRPbmVTaG90KGNoZWNr
Q29udGV4dExvc3NIYW5kbGluZ0RlbGF5KTsKIAogICAgIGFkZEFjdGl2aXR5U3RhdGVDaGFuZ2VP
YnNlcnZlcklmTmVjZXNzYXJ5KCk7CiB9CkBAIC05MDUsMjEgKzkwNywyMCBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6Om1hcmtDb250ZXh0Q2hhbmdlZCgpCiAKICAgICBtX2xheWVy
Q2xlYXJlZCA9IGZhbHNlOwogCi0gICAgYXV0byogY2FudmFzID0gaHRtbENhbnZhcygpOwotICAg
IGlmICghY2FudmFzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZW5kZXJCb3gqIHJlbmRlckJv
eCA9IGNhbnZhcy0+cmVuZGVyQm94KCk7Ci0gICAgaWYgKGlzQWNjZWxlcmF0ZWQoKSAmJiByZW5k
ZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpIHsKLSAgICAg
ICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9IHRydWU7Ci0gICAgICAgIGh0bWxDYW52YXMoKS0+Y2xl
YXJDb3BpZWRJbWFnZSgpOwotICAgICAgICByZW5kZXJCb3gtPmNvbnRlbnRDaGFuZ2VkKENhbnZh
c1BpeGVsc0NoYW5nZWQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghbV9tYXJrZWRDYW52
YXNEaXJ0eSkgeworICAgIGlmIChhdXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCkpIHsKKyAgICAg
ICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBjYW52YXMtPnJlbmRlckJveCgpOworICAgICAgICBp
ZiAoaXNBY2NlbGVyYXRlZCgpICYmIHJlbmRlckJveCAmJiByZW5kZXJCb3gtPmhhc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmcoKSkgewogICAgICAgICAgICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9IHRy
dWU7Ci0gICAgICAgICAgICBjYW52YXMtPmRpZERyYXcoRmxvYXRSZWN0KEZsb2F0UG9pbnQoMCwg
MCksIGNsYW1wZWRDYW52YXNTaXplKCkpKTsKKyAgICAgICAgICAgIGNhbnZhcy0+Y2xlYXJDb3Bp
ZWRJbWFnZSgpOworICAgICAgICAgICAgcmVuZGVyQm94LT5jb250ZW50Q2hhbmdlZChDYW52YXNQ
aXhlbHNDaGFuZ2VkKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KKwor
ICAgIGlmICghbV9tYXJrZWRDYW52YXNEaXJ0eSkgeworICAgICAgICBtX21hcmtlZENhbnZhc0Rp
cnR5ID0gdHJ1ZTsKKyAgICAgICAgY2FudmFzQmFzZSgpLmRpZERyYXcoRmxvYXRSZWN0KEZsb2F0
UG9pbnQoMCwgMCksIGNsYW1wZWRDYW52YXNTaXplKCkpKTsKKyAgICB9CiB9CiAKIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWFya0NvbnRleHRDaGFuZ2VkQW5kTm90aWZ5Q2FudmFz
T2JzZXJ2ZXIoKQpAQCAtMTAxNiwzMCArMTAxNywzMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkKICAgICBpZiAoaXNDb250
ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvKiBjYW52YXMg
PSBodG1sQ2FudmFzKCk7Ci0gICAgaWYgKCFjYW52YXMpCi0gICAgICAgIHJldHVybjsKKyAgICBh
dXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOworICAgIGF1dG8gY2FudmFzID0gaHRtbENhbnZhcygp
OwogCi0gICAgaWYgKGNhbnZhcy0+ZG9jdW1lbnQoKS5wcmludGluZygpKQorICAgIGlmIChjYW52
YXMgJiYgY2FudmFzLT5kb2N1bWVudCgpLnByaW50aW5nKCkpCiAgICAgICAgIGNhbnZhcy0+Y2xl
YXJQcmVzZW50YXRpb25Db3B5KCk7CiAKICAgICAvLyBVbnRpbCB0aGUgY2FudmFzIGlzIHdyaXR0
ZW4gdG8gYnkgdGhlIGFwcGxpY2F0aW9uLCB0aGUgY2xlYXIgdGhhdAogICAgIC8vIGhhcHBlbmVk
IGFmdGVyIGl0IHdhcyBjb21wb3NpdGVkIHNob3VsZCBiZSBpZ25vcmVkIGJ5IHRoZSBjb21wb3Np
dG9yLgogICAgIGlmIChtX2NvbnRleHQtPmxheWVyQ29tcG9zaXRlZCgpICYmICFtX2F0dHJpYnV0
ZXMucHJlc2VydmVEcmF3aW5nQnVmZmVyKSB7Ci0gICAgICAgIG1fY29udGV4dC0+cGFpbnRDb21w
b3NpdGVkUmVzdWx0c1RvQ2FudmFzKGNhbnZhcy0+YnVmZmVyKCkpOworICAgICAgICBtX2NvbnRl
eHQtPnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhiYXNlLmJ1ZmZlcigpKTsKIAotICAg
ICAgICBjYW52YXMtPm1ha2VQcmVzZW50YXRpb25Db3B5KCk7CisgICAgICAgIGJhc2UubWFrZVBy
ZXNlbnRhdGlvbkNvcHkoKTsKICAgICB9IGVsc2UKLSAgICAgICAgY2FudmFzLT5jbGVhclByZXNl
bnRhdGlvbkNvcHkoKTsKKyAgICAgICAgYmFzZS5jbGVhclByZXNlbnRhdGlvbkNvcHkoKTsKICAg
ICBjbGVhcklmQ29tcG9zaXRlZCgpOwogCiAgICAgaWYgKCFtX21hcmtlZENhbnZhc0RpcnR5ICYm
ICFtX2xheWVyQ2xlYXJlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2FudmFzLT5jbGVhckNv
cGllZEltYWdlKCk7CisgICAgaWYgKGNhbnZhcykKKyAgICAgICAgY2FudmFzLT5jbGVhckNvcGll
ZEltYWdlKCk7CisKICAgICBtX21hcmtlZENhbnZhc0RpcnR5ID0gZmFsc2U7CiAKLSAgICBtX2Nv
bnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKGNhbnZhcy0+YnVmZmVyKCkpOwor
ICAgIG1fY29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoYmFzZS5idWZmZXIo
KSk7CiB9CiAKIFJlZlB0cjxJbWFnZURhdGE+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggYTY5YjZjNDIzOTU1ZTA4YTlmOTc0NGU1YzM1
YmIzYzQ0MmQ4YTZjYi4uNGJjODEwMmM5ZGJjMzU3ZWNjYjdiZTBhNjZkNjA1OWZlM2UwZWFlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTc5
LDYgKzc5LDggQEAgV29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFdv
cmtlclBhcmFtZXRlcnMmIHBhcmFtcywgUmVmPFNlY3VyaXQKICAgICAsIG1fcGVyZm9ybWFuY2Uo
UGVyZm9ybWFuY2U6OmNyZWF0ZSh0aGlzLCBwYXJhbXMudGltZU9yaWdpbikpCiAgICAgLCBtX3Jl
ZmVycmVyUG9saWN5KHBhcmFtcy5yZWZlcnJlclBvbGljeSkKICAgICAsIG1fcmVxdWVzdEFuaW1h
dGlvbkZyYW1lRW5hYmxlZChwYXJhbXMucmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCkKKyAg
ICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQocGFyYW1zLmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKQorICAgICwgbV93ZWJHTEVuYWJsZWQocGFyYW1zLndlYkdMRW5hYmxl
ZCkKIHsKICNpZiAhRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgVU5VU0VEX1BBUkFNKGNv
bm5lY3Rpb25Qcm94eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmgKaW5kZXggYmFkMTUxZTRmMzk5MjY2MmFmYWUwODg5NWJiY2RjYWNkOTZjZDFmOS4uYmQ5Y2Yx
NDBkZDUyZmI4NDk4YjlmYTQxMDYwYzkzYWJmYTY4Mzg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMTQyLDYgKzE0Miw4IEBAIHB1YmxpYzoKICAg
ICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9v
bCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0
QW5pbWF0aW9uRnJhbWVFbmFibGVkOyB9CisgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5n
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7
IH0KKyAgICBib29sIHdlYkdMRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViR0xFbmFibGVk
OyB9CiAKIHByb3RlY3RlZDoKICAgICBXb3JrZXJHbG9iYWxTY29wZShjb25zdCBXb3JrZXJQYXJh
bWV0ZXJzJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmLCBXb3JrZXJUaHJlYWQmLCBSZWY8U2VjdXJp
dHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNv
Y2tldFByb3ZpZGVyKik7CkBAIC0yMjMsNiArMjI1LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q1NTVmFsdWVQb29sPiBtX2Nzc1ZhbHVlUG9vbDsKICAgICBSZWZlcnJlclBvbGlj
eSBtX3JlZmVycmVyUG9saWN5OwogICAgIGJvb2wgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFi
bGVkOworICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAgICBib29s
IG1fd2ViR0xFbmFibGVkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA4ODYwY2I3
NjQxNTM5ZjU0MmRmYjg0OTA4OTAwMWJlODUyYzlkZjc1Li5jYjNlNWM1NWY4YTVjNzkzNDJiMDky
ODQwYTMzNzgwYzU1NmM1OGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdAogCiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyID0gZG9jdW1lbnQuc29j
a2V0UHJvdmlkZXIoKTsKIAotICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRV
UkwsIG5hbWUsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCB0aW1lT3JpZ2luLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQuc2V0dGluZ3Mo
KS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkKCkgfTsKKyAgICBXb3JrZXJQYXJhbWV0ZXJz
IHBhcmFtcyA9IHsgc2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25s
aW5lLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ks
IGRvY3VtZW50LnNldHRpbmdzKCkucmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpLCBkb2N1
bWVudC5zZXR0aW5ncygpLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCksIGRvY3VtZW50
LnNldHRpbmdzKCkud2ViR0xFbmFibGVkKCkgfTsKICAgICBhdXRvIHRocmVhZCA9IERlZGljYXRl
ZFdvcmtlclRocmVhZDo6Y3JlYXRlKHBhcmFtcywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAq
dGhpcywgc3RhcnRNb2RlLCBkb2N1bWVudC50b3BPcmlnaW4oKSwgcHJveHksIHNvY2tldFByb3Zp
ZGVyLCBydW50aW1lRmxhZ3MpOwogCiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDNiY2VjY2Ri
Mzk1YzY4YjA4Y2RhNjU5MzZhNDRiZWYyMzZkYjUxYmIuLjIwZjRiNTNjZGI0YTRkMTYwOTE4MjI3
YTQ3NTNiNTZjNGY4NDk3NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAKQEAgLTgyLDYgKzgyLDggQEAgV29ya2VyUGFyYW1ldGVycyBXb3JrZXJQYXJhbWV0ZXJzOjpp
c29sYXRlZENvcHkoKSBjb25zdAogICAgICAgICB0aW1lT3JpZ2luLAogICAgICAgICByZWZlcnJl
clBvbGljeSwKICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCwKKyAgICAgICAg
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsCisgICAgICAgIHdlYkdMRW5hYmxlZCwKICAg
ICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCBjNjI1ZTQy
ZWRkMWEyOTVmMTgyZWI4MWIwNGI4MGE1ZDc0NTJkMzdhLi5kNzc2MzNjMDU0NmY0M2RlZGZkNWEw
NGM2ZTQ0M2E4OWY5OTBmMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgK
QEAgLTY5LDYgKzY5LDggQEAgcHVibGljOgogICAgIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbjsK
ICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeTsKICAgICBib29sIHJlcXVlc3RBbmlt
YXRpb25GcmFtZUVuYWJsZWQ7CisgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZDsKKyAgICBib29sIHdlYkdMRW5hYmxlZDsKIAogICAgIFdvcmtlclBhcmFtZXRlcnMgaXNvbGF0
ZWRDb3B5KCkgY29uc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBkY2Iw
YTRlOWNhNGZhMDk2N2QzZTdkODQxOGU2NTQxNDZlMmFmMWRhLi4wYjQ3ZjEzZTNiYzFmYWY1MTYy
NzdhZTE3ZDg2MjY1ZTYxNGU2ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAt
NzMsNyArNzMsNyBAQCBwcml2YXRlOgogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZsYWdz
CiAKIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcmJiB1c2VyQWdlbnQsIFdvcmtlckxvYWRl
clByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVidWdnZXJQcm94eSwg
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Qcm94eSwgU29ja2V0
UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQotICAgIDogV29ya2VyVGhyZWFkKHsgZGF0YS5zY3Jp
cHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50
aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHBs
YXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09uTGluZSgpLCBkYXRhLmNv
bnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6Om5vdygpLCB7IH0sIHRy
dWUgfSwgZGF0YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9y
bWFsLCBkYXRhLnJlZ2lzdHJhdGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5n
ZXQoKSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxh
Z3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSkKKyAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0
VVJMLCBlbXB0eVN0cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlm
aWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0
Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250
ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCB0cnVl
LCB0cnVlLCB0cnVlIH0sIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwg
RHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5
T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6
UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkpCiAgICAgLCBtX2RhdGEoZGF0YS5pc29s
YXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkoRHVtbXlTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHk6OnNoYXJlZCgpKQogICAgICwgbV9oZWFydEJlYXRUaW1lb3V0KFNXQ29udGV4
dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24oKS0+c2hvdWxkVXNlU2hvcnRUaW1lb3V0
KCkgPyBoZWFydEJlYXRUaW1lb3V0Rm9yVGVzdCA6IGhlYXJ0QmVhdFRpbWVvdXQpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBhNjhjZDkyYzdlMDAyZDE3NWRhZjk0NTQ0MDhhYmYw
ZWY1ODE5ZDM1Li45NDNjMjIxMmQ2NGUxMzJhYjUxYzExNTc1ODUwNjYxZGRiNTk2NThhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMi0xMyAg
Q2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IENhbnZh
cy50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBhbmQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNvbW1pdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAyNzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVl
bmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50
cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dDoK
KwogMjAxOS0xMS0yNSAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAg
TWFrZSBDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVDb2xvciBzYWZlIHRvIHVzZSB3
aXRoaW4gYSB3b3JrZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dAppbmRleCA2ZjFjNzA1MGU1ZTgy
OGMzZjMyM2YyOTVmYjFkMmE0ZmVjOGMwMDdjLi41YjkzOGEyZjcwN2JkNzVmN2UwNjRkNmYyMWZi
MTAyOTJkMTEyMjRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDM0NjM6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBHcmVlbiBj
aGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0ZWQgMjU1IGJ1dCBnb3QgMAogCi1G
QUlMIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRz
IGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBjb21taXQgb24gYW4g
T2Zmc2NyZWVuQ2FudmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVkIGZyb20gYSBIVE1MQ2FudmFz
RWxlbWVudCBpcyBhIG5vb3AuIGN0eC5jb21taXQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnY3R4
LmNvbW1pdCgpJywgJ2N0eC5jb21taXQnIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGNh
bGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRz
IHBsYWNlaG9sZGVyLiAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNj
cmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1l
bnQgaXMgYSBub29wLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29m
ZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dAppbmRleCA0MzQzMzJj
ZTUxYWJmZTM3MTJkMGUyNDk1OGE4MDUyODFhNjA3MDc0Li5jNDIxOGVjYWMyNzNkMDU0N2Y1ZTQ5
YzNkMTIzZmRhZjgzZjNlYWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDQgQEAKIAotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21t
aXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBsYWNlaG9sZGVyLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9s
ZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcg
T2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNl
aG9sZGVyLiAKIFBBU1MgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNjcmVlbkNh
bnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1lbnQgdGhy
b3dzIGFuIGV4Y2VwdGlvbiBpbiBhIHdvcmtlci4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52
YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0
ZWQudHh0CmluZGV4IGJkOWFhMGUxNjc3ZTk0OTQ4MGIyMjMzMTIyMzhmNDcwOTllZjEzNzcuLjJl
Y2QwYmFhOGM4NWNiYTU0YjhhZTQxOTg4MjZiNTI0MmI3MzU0NDggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90
aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZz
Y3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250
ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBUZXN0IHRoYXQgZ2V0Q29u
dGV4dCB3aXRoIHVuLXN1cHBvcnRlZCBzdHJpbmcgdGhyb3dzIGEgVHlwZUVycm9yLiAKLUZBSUwg
VGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVj
dCByZXN1bHRzIEFyZ3VtZW50IDEgKCdjb250ZXh0VHlwZScpIHRvIE9mZnNjcmVlbkNhbnZhcy5n
ZXRDb250ZXh0IG11c3QgYmUgb25lIG9mOiAiMmQiLCAid2ViZ2wiCi1GQUlMIFRlc3QgdGhhdCBn
ZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwg
dGhlIHNlY29uZCB0aW1lIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4KK1BBU1Mg
VGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVj
dCByZXN1bHRzIAorUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVu
dCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSAKIFBBU1MgVGVzdCB0
aGF0IDJkY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVu
Q2FudmFzIAogUEFTUyBUZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJu
IHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBGQUlMIFRlc3QgdGhhdCBPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQgd2l0aCBhbHBoYSBkaXNhYmxlZCBtYWtlcyB0aGUgT2Zm
c2NyZWVuQ2FudmFzIG9wYXF1ZSBhc3NlcnRfYXBwcm94X2VxdWFsczogR3JlZW4gY2hhbm5lbCBv
ZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4cGVjdGVkIDEyNyArLy0gMiBidXQgZ290IDI1NQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZz
Y3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250
ZXh0Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBmMjI0Y2U3NGVl
YTg3OGNmNzZhMTMzM2JjYWUxYmFhMTBmZDRmNjY3Li4yZWNkMGJhYThjODVjYmE1NGI4YWU0MTk4
ODI2YjUyNDJiNzM1NDQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zm
c2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRo
IHVuLXN1cHBvcnRlZCBzdHJpbmcgdGhyb3dzIGEgVHlwZUVycm9yLiAKLUZBSUwgVGVzdCB0aGF0
IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRz
IENhbid0IGZpbmQgdmFyaWFibGU6IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRAot
RkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5
cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFs
aWQgc3RhdGUuCitQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0cmlu
ZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyAKK1BBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgdHdp
Y2Ugd2l0aCBkaWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRp
bWUgCiBQQVNTIFRlc3QgdGhhdCAyZGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9y
aWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKIFBBU1MgVGVzdCB0aGF0IHdlYmdsY29udGV4dC5jYW52
YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAogRkFJTCBUZXN0
IHRoYXQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHdpdGggYWxwaGEgZGlzYWJs
ZWQgbWFrZXMgdGhlIE9mZnNjcmVlbkNhbnZhcyBvcGFxdWUgYXNzZXJ0X2FwcHJveF9lcXVhbHM6
IEdyZWVuIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCA1KSBleHBlY3RlZCAxMjcgKy8tIDIg
YnV0IGdvdCAyNTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dAppbmRleCBmNDU1MDcxNzJiNzZiYWYw
NmFiMGU0NGVkMTVjZTMzMDZhZDQ4MThhLi42YzExYzhkZjRiNjVhNzkwMGFkZGM3NDZhYTlhMGVl
Nzc5NDE4NjFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0CkBAIC0yLDExICsyLDExIEBACiBQ
QVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRl
cyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hlbiB0aGVyZSBpcyBubyBjb250ZXh0IGF0
dGFjaGVkLiAKIFBBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdo
dCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIGEg
MmQgY29udGV4dCBhdHRhY2hlZC4gCiBQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdp
ZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hl
biB0aGVyZSBpcyBhIHdlYmdsIGNvbnRleHQgYXR0YWNoZWQuIAotRkFJTCBWZXJpZnkgdGhhdCB3
cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIg
Y2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
bicgaXMgdW5kZWZpbmVkKQotRkFJTCBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBv
ciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNl
cHRpb24gZXZlbiB3aGVuIG5vdCBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4g
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBWZXJp
ZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxh
Y2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gCitQQVNTIFZlcmlmeSB0aGF0IHdy
aXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBj
YW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBldmVuIHdoZW4gbm90IGNoYW5naW5nIHRoZSB2YWx1
ZSBvZiB0aGUgYXR0cmlidXRlLiAKIFBBU1MgVmVyaWZ5IHRoYXQgcmVzaXppbmcgYSAyZCBjb250
ZXh0IHJlc2V0cyBpdHMgc3RhdGUuIAogUEFTUyBWZXJpZnkgdGhhdCBzZXR0aW5nIHRoZSBzaXpl
IG9mIGEgMmQgY29udGV4dCB0byB0aGUgc2FtZSBzaXplIGl0IGFscmVhZHkgaGFkIHJlc2V0cyBp
dHMgc3RhdGUuIAotRkFJTCBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMg
d2l0aCBhIDJkIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9s
ZGVyIGNhbnZhcyBhc3luY2hyb25vdXNseS4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
bicgaXMgdW5kZWZpbmVkKQotRkFJTCBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5D
YW52YXMgd2l0aCBhIHdlYmdsIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRz
IHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25vdXNseS4gcGxhY2Vob2xkZXIudHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBWZXJpZnkgdGhhdCBkcmF3SW1hZ2UgdXNl
cyB0aGUgc2l6ZSBvZiB0aGUgZnJhbWUgYXMgdGhlIGludGluc2ljIHNpemUgb2YgYSBwbGFjZWhv
bGRlciBjYW52YXMuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
KCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5l
ZCkKK1BBU1MgVmVyaWZ5IHRoYXQgcmVzaXppbmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSAy
ZCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52
YXMgYXN5bmNocm9ub3VzbHkuIAorUEFTUyBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3Jl
ZW5DYW52YXMgd2l0aCBhIHdlYmdsIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8g
aXRzIHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25vdXNseS4gCitQQVNTIFZlcmlmeSB0aGF0
IGRyYXdJbWFnZSB1c2VzIHRoZSBzaXplIG9mIHRoZSBmcmFtZSBhcyB0aGUgaW50aW5zaWMgc2l6
ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcy4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRy
YW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0CmluZGV4IDRmNDJlNTA3NDI4
MjgwYTJlYTE5Zjc2M2NmOGM5NjE5YWU1YmIzMDUuLjI5NjA0ODViN2I2YWQ2ZjcwNjJkZWY5ZmU3
Yjc5ZTVjYjc0YjgzYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4t
Y2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRy
b2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBUZXN0
IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCBwbGFjZWhvbGRlci50cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIGdldENv
bnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhhdCBoYXMgYWxyZWFkeSB0cmFuc2ZlcnJl
ZCBpdHMgY29udHJvbCB0aHJvd3MgYW4gZXhjZXB0aW9uIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiBwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBhbiBPZmZz
Y3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMg
Y29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250
ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRoYXQgaGFzIGFscmVhZHkgdHJhbnNmZXJyZWQg
aXRzIGNvbnRyb2wgdGhyb3dzIGFuIGV4Y2VwdGlvbiAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcg
dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9v
ZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFu
c2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnct
ZXhwZWN0ZWQudHh0CmluZGV4IDJjZDNkYjRiMjc2ZGMxYzExZDFlY2RiMDQ4YjNiNzkwOTNlZWUw
ZGEuLjMzYjg1MzJjYjJlMDA0MTRhNmQ1NGE2ZGE3OWFlNzZlYWY0NjU2M2YgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNh
bnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9s
LnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3Rl
ZC50eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZh
cyBnZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdp
ZHRoIGFuZCBoZWlnaHQgd2hlbiBpdCBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciBwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdw
bGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBj
YWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhhdCBpcyB0cmFuc2Zl
cnJlZCBpdHMgY29udHJvbCB0byBhbiBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlv
biwgd2hlbiB0aGUgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIHBs
YWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
SW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xk
ZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0
aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4
Y2VwdGlvbiwgd2hlbiBpdHMgYXNzb2NpYXRlZCBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJy
ZWQgdG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMg
bm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZp
bmVkKQorUEFTUyBUZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCB3aGVu
IGl0IGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBn
ZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRoYXQgaXMgdHJhbnNmZXJyZWQgaXRz
IGNvbnRyb2wgdG8gYW4gT2Zmc2NyZWVuQ2FudmFzIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4g
dGhlIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciAKK1BBU1MgVGVz
dCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFu
IGV4Y2VwdGlvbiwgd2hlbiBpdHMgYXNzb2NpYXRlZCBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNm
ZXJyZWQgdG8gYSB3b3JrZXIgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395065</attachid>
            <date>2020-03-31 10:45:06 -0700</date>
            <delta_ts>2020-04-01 03:26:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200331184504.patch</filename>
            <type>text/plain</type>
            <size>39160</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRiZGEzMGEwYThiYzc3
OWM1NDA3ZTllZmJhODlmNGE0NjhjZjQwZi4uYWQyZTZiYzMzNTU0MmEyZDFlNDMzNGZlMzdhYzNh
NmY0NWI4NzUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmRpZERyYXcpOgorICAgICAgICAoV2ViQ29yZTo6
T2Zmc2NyZWVuQ2FudmFzOjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2Fu
dmFzOjpzZXRQbGFjZWhvbGRlckNhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5D
YW52YXM6OnBsYWNlaG9sZGVyQ2FudmFzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNj
cmVlbkNhbnZhczo6cHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
T2Zmc2NyZWVuQ2FudmFzOjpjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKToKKyAgICAgICAgKFdl
YkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6cmVzZXQpOgorICAgICAgICAq
IGh0bWwvT2Zmc2NyZWVuQ2FudmFzLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvT2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y29tbWl0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ6OmNh
bnZhcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQ6OnNldE9mZnNjcmVlbkNhbnZhcyk6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxhY2Vob2xk
ZXJSZW5kZXJpbmdDb250ZXh0Lmg6CisKIDIwMTktMTAtMDQgIENocmlzIExvcmQgIDxjbG9yZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSBhbmQgY2FuY2VsQW5p
bWF0aW9uRnJhbWUgc2hvdWxkIGJlIHByZXNlbnQgb24gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggMzU0NTYx
NjcxOGMyNWFhMDk5OTM2OGQ2OGUyYTk4MTAyN2ZmMDlkMi4uYjlhMzY5ZTVmZjFhMWU4NDgyNWQx
ODUyYjk3NjlkMjJlOTNhMzQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJIVE1MQ2Fu
dmFzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKQEAgLTE2NSw3ICsxNjYs
NyBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50OjpjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0CiAK
IEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxDYW52YXNFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQg
dmFsdWUpCiB7Ci0gICAgaWYgKG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIo
KSkKKyAgICBpZiAoaXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09ubHlI
VE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRIZWlnaHQpKSk7CiAgICAgcmV0dXJuIHsgfTsK
QEAgLTE3Myw3ICsxNzQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFz
RWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiB7Ci0gICAgaWYgKG1fY29udGV4dCAm
JiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKSkKKyAgICBpZiAoaXNDb250cm9sbGVkQnlPZmZz
Y3JlZW4oKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07
CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih3aWR0aEF0dHIsIEF0b21T
dHJpbmc6Om51bWJlcihsaW1pdFRvT25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVsdFdp
ZHRoKSkpOwogICAgIHJldHVybiB7IH07CkBAIC01MzQsNyArNTM1LDcgQEAgdm9pZCBIVE1MQ2Fu
dmFzRWxlbWVudDo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAKIHZvaWQgSFRNTENh
bnZhc0VsZW1lbnQ6OnJlc2V0KCkKIHsKLSAgICBpZiAobV9pZ25vcmVSZXNldCkKKyAgICBpZiAo
bV9pZ25vcmVSZXNldCB8fCBpc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpKQogICAgICAgICByZXR1
cm47CiAKICAgICBib29sIGhhZEltYWdlQnVmZmVyID0gaGFzQ3JlYXRlZEltYWdlQnVmZmVyKCk7
CkBAIC03MzYsNiArNzM3LDIzIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxDYW52YXNFbGVtZW50
Ojp0b0Jsb2IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmCiAgICAgcmV0dXJu
IHsgfTsKIH0KIAorRXhjZXB0aW9uT3I8UmVmUHRyPE9mZnNjcmVlbkNhbnZhcz4+IEhUTUxDYW52
YXNFbGVtZW50Ojp0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQoreworICAgIGlmIChtX2NvbnRleHQpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgUmVmUHRyPE9mZnNjcmVlbkNhbnZh
cz4gY2FudmFzID0gT2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGUoY29udGV4dCwgd2lkdGgoKSwgaGVp
Z2h0KCkpOworICAgIGNhbnZhcy0+c2V0UGxhY2Vob2xkZXJDYW52YXMobWFrZVdlYWtQdHIoKnRo
aXMpKTsKKyAgICBtX2NvbnRleHQgPSBtYWtlVW5pcXVlPFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dD4oKnRoaXMsIGNhbnZhcy5nZXQoKSk7CisKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wp
CisgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcg
bGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMuCisgICAgaW52YWxpZGF0ZVN0eWxlQW5k
TGF5ZXJDb21wb3NpdGlvbigpOworI2VuZGlmCisKKyAgICByZXR1cm4gY2FudmFzOworfQorCiBS
ZWZQdHI8SW1hZ2VEYXRhPiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0SW1hZ2VEYXRhKCkKIHsKICNp
ZiBFTkFCTEUoV0VCR0wpCkBAIC05MTAsOCArOTI4LDE3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYm
IGJ1ZmZlcikKIHsKKyAgICBJbnRTaXplIG9sZFNpemUgPSBzaXplKCk7CiAgICAgbV9oYXNDcmVh
dGVkSW1hZ2VCdWZmZXIgPSB0cnVlOwogICAgIHNldEltYWdlQnVmZmVyKFdURk1vdmUoYnVmZmVy
KSk7CisKKyAgICBpZiAoaXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSAmJiBvbGRTaXplICE9IHNp
emUoKSkgeworICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdpZHRo
QXR0ciwgQXRvbVN0cmluZzo6bnVtYmVyKHdpZHRoKCkpKTsKKyAgICAgICAgc2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIoaGVp
Z2h0KCkpKTsKKyAgICAgICAgbm90aWZ5T2JzZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAgICAg
ICBpbnZhbGlkYXRlU3R5bGVBbmRSZW5kZXJlcnNGb3JTdWJ0cmVlKCk7CisgICAgfQorCiAgICAg
ZGlkRHJhdyhGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBzaXplKCkpKTsKIH0KIApAQCAtOTQ1LDQg
Kzk3Miw5IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVkSW1hZ2UoKQogICAg
IG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IGZhbHNlOwogfQogCitib29sIEhUTUxDYW52YXNFbGVt
ZW50Ojppc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29u
dGV4dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDQyMTM0YTEyMjk0MTQ5NmJmMzFiY2RkNzlj
NmJjNWMzOTFhNzhhNDUuLjE5ZDZjMmY0MTJkM2Q4YjNlMDY1NzQwNTM1YWRhNzExMDNhM2NhZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTQ5LDYgKzQ5LDcg
QEAgY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7CiBjbGFzcyBNZWRpYVNhbXBs
ZTsKIGNsYXNzIE1lZGlhU3RyZWFtOworY2xhc3MgT2Zmc2NyZWVuQ2FudmFzOwogY2xhc3MgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKIGNsYXNzIEdQVUNhbnZhc0NvbnRleHQ7CiBzdHJ1Y3Qg
VW5jYWNoZWRTdHJpbmc7CkBAIC05Niw2ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBFeGNlcHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNl
cHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHRvQmxvYihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
UmVmPEJsb2JDYWxsYmFjaz4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1ZhbHVl
IHF1YWxpdHkpOworICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxPZmZzY3JlZW5DYW52YXM+PiB0cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKICAgICAv
LyBVc2VkIGZvciByZW5kZXJpbmcKICAgICB2b2lkIGRpZERyYXcoY29uc3QgRmxvYXRSZWN0Jikg
ZmluYWw7CkBAIC0xMjgsNiArMTMwLDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgc2V0TWF4UGl4ZWxNZW1vcnlGb3JUZXN0aW5nKHNpemVfdCk7CiAKKyAgICBi
b29sIGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFRN
TENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKaW5kZXggNjlmMGE3MWU0M2UzNmEx
ODRiNDg4MmRkN2NlZWY3ZGYxOWJiODFiYi4uMjVkMmFiYjFhODBkY2U1ZWNlNjlhMjgxMmM4NGVk
OWE3MmU4N2ZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwK
QEAgLTQ5LDYgKzQ5LDcgQEAgdHlwZWRlZiAoCiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERP
TVN0cmluZyB0b0RhdGFVUkwob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGFueSBx
dWFsaXR5KTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dF
eGNlcHRpb25dIHZvaWQgdG9CbG9iKEJsb2JDYWxsYmFjayBjYWxsYmFjaywgb3B0aW9uYWwgRE9N
U3RyaW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIE9mZnNjcmVlbkNhbnZhcyB0cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOwogCiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVB
TSwgQ2FsbFdpdGg9RG9jdW1lbnQsIE1heVRocm93RXhjZXB0aW9uLCBOZXdPYmplY3RdIE1lZGlh
U3RyZWFtIGNhcHR1cmVTdHJlYW0ob3B0aW9uYWwgZG91YmxlIGZyYW1lUmVxdWVzdFJhdGUpOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAppbmRleCA2YmRiZTJmMzYy
Yzk3MzhhYzZjY2QwNmU2YTc3NmFhMTMxOGVlNTcwLi42ZTE5YTYyNWY0NGQ5M2JkMTgzOWUzMGU3
MzFlZjZjYTNlYjcyNDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVl
bkNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3Bw
CkBAIC0zMCwxMiArMzAsMTUgQEAKIAogI2luY2x1ZGUgIkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1
ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgiCisjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAj
aW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNp
bmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSAiUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2Vy
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC00
MywxMCArNDYsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoT2Zmc2NyZWVuQ2FudmFzKTsKIAotRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OkRl
dGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZm
ZXIsIGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wgb3JpZ2luQ2xlYW4pCitEZXRhY2hlZE9mZnNj
cmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiYmIGJ1ZmZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBvcmlnaW5DbGVhbiwg
V2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4mJiBwbGFjZWhvbGRlckNhbnZhcykKICAgICA6IG1f
YnVmZmVyKFdURk1vdmUoYnVmZmVyKSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9vcmln
aW5DbGVhbihvcmlnaW5DbGVhbikKKyAgICAsIG1fcGxhY2Vob2xkZXJDYW52YXMoV1RGTW92ZShw
bGFjZWhvbGRlckNhbnZhcykpCiB7CiB9CiAKQEAgLTU1LDYgKzU5LDExIEBAIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlcj4gRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VJbWFnZUJ1ZmZl
cigpCiAgICAgcmV0dXJuIFdURk1vdmUobV9idWZmZXIpOwogfQogCitXZWFrUHRyPEhUTUxDYW52
YXNFbGVtZW50PiBEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6dGFrZVBsYWNlaG9sZGVyQ2FudmFz
KCkKK3sKKyAgICByZXR1cm4gV1RGTW92ZShtX3BsYWNlaG9sZGVyQ2FudmFzKTsKK30KKwogUmVm
PE9mZnNjcmVlbkNhbnZhcz4gT2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwgd2lkdGgsIGhl
aWdodCkpOwpAQCAtNjMsMTAgKzcyLDIxIEBAIFJlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVl
bkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVuCiBSZWY8
T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+
JiYgZGV0YWNoZWRDYW52YXMpCiB7CiAgICAgUmVmPE9mZnNjcmVlbkNhbnZhcz4gY2xvbmUgPSBh
ZG9wdFJlZigqbmV3IE9mZnNjcmVlbkNhbnZhcyhjb250ZXh0LCBkZXRhY2hlZENhbnZhcy0+c2l6
ZSgpLndpZHRoKCksIGRldGFjaGVkQ2FudmFzLT5zaXplKCkuaGVpZ2h0KCkpKTsKKwogICAgIGNs
b25lLT5zZXRJbWFnZUJ1ZmZlcihkZXRhY2hlZENhbnZhcy0+dGFrZUltYWdlQnVmZmVyKCkpOwog
ICAgIGlmICghZGV0YWNoZWRDYW52YXMtPm9yaWdpbkNsZWFuKCkpCiAgICAgICAgIGNsb25lLT5z
ZXRPcmlnaW5UYWludGVkKCk7CiAKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYW52YXMgPSBkZXRh
Y2hlZENhbnZhcy0+dGFrZVBsYWNlaG9sZGVyQ2FudmFzKCksIG9mZnNjcmVlbkNhbnZhcyA9IGNs
b25lLnB0cigpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGNhbnZhcykgeworICAgICAgICAg
ICAgaWYgKGF1dG8gcmVuZGVyaW5nQ29udGV4dCA9IGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgp
KSB7CisgICAgICAgICAgICAgICAgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0JiBwbGFjZWhv
bGRlckNvbnRleHQgPSBkb3duY2FzdDxQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ+KCpyZW5k
ZXJpbmdDb250ZXh0KTsKKyAgICAgICAgICAgICAgICBwbGFjZWhvbGRlckNvbnRleHQuc2V0T2Zm
c2NyZWVuQ2FudmFzKG9mZnNjcmVlbkNhbnZhcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBvZmZzY3JlZW5DYW52YXMtPnNldFBsYWNlaG9sZGVyQ2FudmFzKFdURk1vdmUoY2FudmFzKSk7
CisgICAgICAgIH0KKyAgICB9KTsKKwogICAgIHJldHVybiBjbG9uZTsKIH0KIApAQCAtMTE4LDcg
KzEzOCw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRTaXplKGNvbnN0IEludFNpemUmIG5l
d1NpemUpCiAgICAgcmVzZXQoKTsKIH0KIAotRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5n
Q29udGV4dD4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3Qm
IHN0YXRlLCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ry
b25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQorRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zm
c2NyZWVuUmVuZGVyaW5nQ29udGV4dD4+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6
OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgUmVuZGVyaW5nQ29udGV4dFR5cGUgY29udGV4dFR5cGUs
IFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKICAgICBp
ZiAobV9kZXRhY2hlZCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH07CkBAIC0xMjYsMjIgKzE0NiwyMiBAQCBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJp
bmdDb250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbAogICAg
IGlmIChjb250ZXh0VHlwZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6XzJkKSB7CiAgICAgICAg
IGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgICAgIGlmICghaXM8T2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0
cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICAgICAg
ICAgIHJldHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiB7IFdURjo6bnVs
bG9wdCB9OworICAgICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPE9mZnNjcmVlblJlbmRlcmluZ0Nv
bnRleHQ+IHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93
bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH07
CiAgICAgICAgIH0KIAogICAgICAgICBtX2NvbnRleHQgPSBtYWtlVW5pcXVlPE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKnRoaXMpOwogICAgICAgICBpZiAoIW1fY29udGV4dCkK
LSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ+IHsgbnVsbHB0ciB9IH07CisgICAgICAgICAgICByZXR1cm4gT3B0aW9uYWw8T2Zmc2Ny
ZWVuUmVuZGVyaW5nQ29udGV4dD4geyBXVEY6Om51bGxvcHQgfTsKIAotICAgICAgICByZXR1cm4g
eyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAg
ICAgcmV0dXJuIE9wdGlvbmFsPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH07CiAgICAgfQogI2lmIEVOQUJM
RShXRUJHTCkKICAgICBpZiAoY29udGV4dFR5cGUgPT0gUmVuZGVyaW5nQ29udGV4dFR5cGU6Oldl
YmdsKSB7CiAgICAgICAgIGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgICAgIGlmICghaXM8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVybiB7IFJl
ZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29u
dGV4dD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5n
Q29udGV4dD4oKm1fY29udGV4dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPE9m
ZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4g
eyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAg
ICAgICAgICByZXR1cm4gT3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4geyBXVEY6
Om51bGxvcHQgfTsKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHN0YXRlLnZtKCkpOwpAQCAtMTUwLDEzICsxNzAsMTMgQEAgRXhjZXB0aW9uT3I8
T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpT
Qzo6SlNHbG9iYWwKIAogICAgICAgICBtX2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJpYnV0ZXMsICJ3ZWJnbCIpOwogICAgICAgICBpZiAoIW1f
Y29udGV4dCkKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ+IHsgbnVsbHB0ciB9IH07CisgICAgICAgICAgICByZXR1cm4gT3B0aW9uYWw8T2Zmc2NyZWVu
UmVuZGVyaW5nQ29udGV4dD4geyBXVEY6Om51bGxvcHQgfTsKIAotICAgICAgICByZXR1cm4geyBS
ZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgcmV0dXJuIE9wdGlvbmFsPE9mZnNjcmVl
blJlbmRlcmluZ0NvbnRleHQ+IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93
bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CiAgICAgfQogI2Vu
ZGlmCiAKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKyAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZlB0cjxJ
bWFnZUJpdG1hcD4+IE9mZnNjcmVlbkNhbnZhczo6dHJhbnNmZXJUb0ltYWdlQml0bWFwKCkKQEAg
LTI1OCw2ICsyNzgsNyBAQCB2b2lkIE9mZnNjcmVlbkNhbnZhczo6Y29udmVydFRvQmxvYihJbWFn
ZUVuY29kZU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQcgogdm9pZCBPZmZzY3JlZW5D
YW52YXM6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGNsZWFyQ29waWVk
SW1hZ2UoKTsKKyAgICBzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKICAgICBu
b3RpZnlPYnNlcnZlcnNDYW52YXNDaGFuZ2VkKHJlY3QpOwogfQogCkBAIC0zMDAsNyArMzIxLDcz
IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4gT2Zmc2NyZWVuQ2Fu
dmFzOjpkZXRhY2goKQogCiAgICAgbV9kZXRhY2hlZCA9IHRydWU7CiAKLSAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4odGFrZUltYWdlQnVmZmVyKCksIHNpemUo
KSwgb3JpZ2luQ2xlYW4oKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8RGV0YWNoZWRPZmZzY3Jl
ZW5DYW52YXM+KHRha2VJbWFnZUJ1ZmZlcigpLCBzaXplKCksIG9yaWdpbkNsZWFuKCksIFdURk1v
dmUobV9wbGFjZWhvbGRlckNhbnZhcykpOworfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMoV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4mJiBjYW52YXMpCit7
CisgICAgQVNTRVJUKCFtX2NvbnRleHQpOworICAgIG1fcGxhY2Vob2xkZXJDYW52YXMgPSBjYW52
YXM7Cit9CisKK0hUTUxDYW52YXNFbGVtZW50KiBPZmZzY3JlZW5DYW52YXM6OnBsYWNlaG9sZGVy
Q2FudmFzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGFjZWhvbGRlckNhbnZhcy5nZXQoKTsK
K30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnB1c2hCdWZmZXJUb1BsYWNlaG9sZGVyKCkKK3sK
KyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX2NvbW1pdExvY2spOworICAgICAgICBtX3BlbmRpbmdDb21taXQg
PSBmYWxzZTsKKyAgICAgICAgaWYgKCFtX3BsYWNlaG9sZGVyQ2FudmFzIHx8ICFtX3BlbmRpbmdD
b21taXREYXRhKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKG1fcGVu
ZGluZ0NvbW1pdERhdGEtPnNpemUoKSksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwor
ICAgICAgICBidWZmZXItPnB1dEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVt
dWx0aXBsaWVkLCAqbV9wZW5kaW5nQ29tbWl0RGF0YSwgSW50UmVjdChJbnRQb2ludCgpLCBtX3Bl
bmRpbmdDb21taXREYXRhLT5zaXplKCkpKTsKKyAgICAgICAgbV9wbGFjZWhvbGRlckNhbnZhcy0+
c2V0SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoV1RGTW92ZShidWZmZXIpKTsKKyAgICB9KTsKK30K
Kwordm9pZCBPZmZzY3JlZW5DYW52YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKQorewor
ICAgIGF1dG8qIGltYWdlQnVmZmVyID0gYnVmZmVyKCk7CisgICAgaWYgKCFpbWFnZUJ1ZmZlcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gVE9ETzogVHJhbnNmZXIgdGV4dHVyZSBvdmVyIGlm
IHdlJ3JlIHVzaW5nIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgaWYgKG1fY29udGV4dCAm
JiAobV9jb250ZXh0LT5pc1dlYkdMKCkgfHwgbV9jb250ZXh0LT5pc0FjY2VsZXJhdGVkKCkpKQor
ICAgICAgICBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCk7CisKKyAg
ICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXJDYW52YXMp
IHsKKyAgICAgICAgICAgIGF1dG8gc2l6ZSA9IGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpOwor
ICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXJDb3B5ID0gSW1h
Z2VCdWZmZXI6OmNyZWF0ZShGbG9hdFNpemUoc2l6ZSksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxl
cmF0ZWQpOworICAgICAgICAgICAgYXV0byBidWZmZXJEYXRhID0gaW1hZ2VCdWZmZXItPmdldElt
YWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBJbnRSZWN0KElu
dFBvaW50KCksIHNpemUpKTsKKyAgICAgICAgICAgIGJ1ZmZlckNvcHktPnB1dEltYWdlRGF0YShB
bHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCAqYnVmZmVyRGF0YSwgSW50UmVj
dChJbnRQb2ludCgpLCBzaXplKSk7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzLT5z
ZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eShXVEZNb3ZlKGJ1ZmZlckNvcHkpKTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X2NvbW1pdExvY2spOworCisgICAgbV9wZW5kaW5nQ29tbWl0RGF0YSA9IGltYWdlQnVmZmVyLT5n
ZXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgSW50UmVj
dChJbnRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSkpOworCisgICAgaWYgKCFt
X3BlbmRpbmdDb21taXQpIHsKKyAgICAgICAgbV9wZW5kaW5nQ29tbWl0ID0gdHJ1ZTsKKyAgICAg
ICAgcHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKTsKKyAgICB9Cit9CisKK3ZvaWQgT2Zmc2NyZWVu
Q2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKQoreworICAgIGlmICgh
bV9wZW5kaW5nQ29tbWl0VGFzaykgeworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAgICBtX3BlbmRpbmdDb21t
aXRUYXNrID0gY29udGV4dC0+cG9zdFRhc2tUbyhjb250ZXh0LT5jb250ZXh0SWRlbnRpZmllcigp
LCBbdGhpc10gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgICAgICAgICBtX3BlbmRp
bmdDb21taXRUYXNrID0gZmFsc2U7CisgICAgICAgICAgICBjb21taXRUb1BsYWNlaG9sZGVyQ2Fu
dmFzKCk7CisgICAgICAgIH0pOworICAgIH0KIH0KIAogQ1NTVmFsdWVQb29sJiBPZmZzY3JlZW5D
YW52YXM6OmNzc1ZhbHVlUG9vbCgpCkBAIC0zNTAsNiArNDM3LDcgQEAgdm9pZCBPZmZzY3JlZW5D
YW52YXM6OnJlc2V0KCkKICAgICBjbGVhckNvcGllZEltYWdlKCk7CiAKICAgICBub3RpZnlPYnNl
cnZlcnNDYW52YXNSZXNpemVkKCk7CisgICAgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2Fu
dmFzKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVu
Q2FudmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCmluZGV4IDNl
NWUzMGE1NzZlMzFhOTMyYTZmMTQ2YTk3ZWJmMDhkZTlhMjVmMzkuLjA3Y2NkYjU4Yjc3ZjBkZWJk
NWU1ODYwZWRhODU4NWYzNzVlY2UwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
T2Zmc2NyZWVuQ2FudmFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52
YXMuaApAQCAtMzUsOCArMzUsMTAgQEAKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUg
IkludFNpemUuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9VaW50OENsYW1wZWRBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC00NCw3ICs0Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQ7CiBjbGFzcyBDU1NWYWx1ZVBvb2w7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7Citj
bGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKIGNsYXNzIEltYWdlQml0bWFwOworY2xhc3MgSW1hZ2VE
YXRhOwogY2xhc3MgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOwogY2xhc3MgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OwogCkBAIC01OCwxNiArNjIsMTggQEAgY2xhc3MgRGV0YWNoZWRP
ZmZzY3JlZW5DYW52YXMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERldGFjaGVkT2Zmc2Ny
ZWVuQ2FudmFzKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhcyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYsIGNv
bnN0IEludFNpemUmLCBib29sIG9yaWdpbkNsZWFuKTsKKyAgICBEZXRhY2hlZE9mZnNjcmVlbkNh
bnZhcyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYsIGNvbnN0IEludFNpemUmLCBib29s
IG9yaWdpbkNsZWFuLCBXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiYmIHBsYWNlaG9sZGVyQ2Fu
dmFzKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gdGFrZUltYWdlQnVmZmVy
KCk7CiAgICAgY29uc3QgSW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQog
ICAgIGJvb2wgb3JpZ2luQ2xlYW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbkNsZWFuOyB9Cisg
ICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gdGFrZVBsYWNlaG9sZGVyQ2FudmFzKCk7CiAK
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBtX2J1ZmZlcjsKICAg
ICBJbnRTaXplIG1fc2l6ZTsKICAgICBib29sIG1fb3JpZ2luQ2xlYW47CisgICAgV2Vha1B0cjxI
VE1MQ2FudmFzRWxlbWVudD4gbV9wbGFjZWhvbGRlckNhbnZhczsKIH07CiAKIGNsYXNzIE9mZnNj
cmVlbkNhbnZhcyBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE9mZnNjcmVlbkNhbnZhcz4sIHB1
YmxpYyBDYW52YXNCYXNlLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHJpdmF0
ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CkBAIC05NSw3ICsxMDEsNyBAQCBwdWJsaWM6
CiAKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiByZW5kZXJpbmdDb250ZXh0KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKLSAgICBFeGNlcHRpb25PcjxPZmZz
Y3JlZW5SZW5kZXJpbmdDb250ZXh0PiBnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBS
ZW5kZXJpbmdDb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYg
YXJndW1lbnRzKTsKKyAgICBFeGNlcHRpb25PcjxPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdD
b250ZXh0Pj4gZ2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVuZGVyaW5nQ29udGV4
dFR5cGUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7CiAg
ICAgRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gdHJhbnNmZXJUb0ltYWdlQml0bWFw
KCk7CiAgICAgdm9pZCBjb252ZXJ0VG9CbG9iKEltYWdlRW5jb2RlT3B0aW9ucyYmLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmKTsKIApAQCAtMTA5LDYgKzExNSwxMCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBjYW5EZXRhY2goKSBjb25zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3Jl
ZW5DYW52YXM+IGRldGFjaCgpOwogCisgICAgdm9pZCBzZXRQbGFjZWhvbGRlckNhbnZhcyhXZWFr
UHRyPEhUTUxDYW52YXNFbGVtZW50PiYmKTsKKyAgICBIVE1MQ2FudmFzRWxlbWVudCogcGxhY2Vo
b2xkZXJDYW52YXMoKSBjb25zdDsKKyAgICB2b2lkIGNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMo
KTsKKwogICAgIENTU1ZhbHVlUG9vbCYgY3NzVmFsdWVQb29sKCk7CiAKICAgICB1c2luZyBSZWZD
b3VudGVkOjpyZWY7CkBAIC0xMzgsNiArMTQ4LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY2xl
YXJDb3BpZWRJbWFnZSgpIGNvbnN0OwogCisgICAgdm9pZCBwdXNoQnVmZmVyVG9QbGFjZWhvbGRl
cigpOworICAgIHZvaWQgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dD4gbV9jb250ZXh0OwogCiAg
ICAgLy8gbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQgdG8gbWFsbG9jIHRo
ZSBidWZmZXIuIFdlIGRpZG4ndCBuZWNlc3NhcmlseSBnZXQgaXQuCkBAIC0xNDYsNiArMTU5LDEz
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RldGFjaGVkIHsgZmFsc2UgfTsKIAogICAgIG11dGFi
bGUgUmVmUHRyPEltYWdlPiBtX2NvcGllZEltYWdlOworCisgICAgYm9vbCBtX3BlbmRpbmdDb21t
aXRUYXNrIHsgZmFsc2UgfTsKKyAgICBXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiBtX3BsYWNl
aG9sZGVyQ2FudmFzOworCisgICAgbXV0YWJsZSBMb2NrIG1fY29tbWl0TG9jazsKKyAgICBib29s
IG1fcGVuZGluZ0NvbW1pdCB7IGZhbHNlIH07CisgICAgUmVmUHRyPEltYWdlRGF0YT4gbV9wZW5k
aW5nQ29tbWl0RGF0YTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmlu
ZGV4IDg2ZDc4NGEzNTFkNTg0Y2U2ZWYzYTY5OTJlN2VjMjA2ZTY4ZDk2MDAuLmYwMmIzN2M5MmJi
NGI5YTUyOWVhMDE0NDRhNmNkM2EzMGUxZWE5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcApAQCAtNDgsNiArNDgsMTIgQEAgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoQ2FudmFzQmFzZSYKIAogT2Zm
c2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp+T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEKCkgPSBkZWZhdWx0OwogCit2b2lkIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y29tbWl0KCkKK3sKKyAgICBPZmZzY3JlZW5DYW52YXMmIG9mZnNjcmVlbkNhbnZh
cyA9IGRvd25jYXN0PE9mZnNjcmVlbkNhbnZhcz4oY2FudmFzQmFzZSgpKTsKKyAgICBvZmZzY3Jl
ZW5DYW52YXMuY29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRleCBjY2Ix
NmU5MmNkMmJkMDRjYTU2OGJjZjYxNjMyNzkyZTY5NDkzM2UwLi5lZTkyOWFmMmIyOWRhZTgyNjNk
ZTFkYWY2MGRkMTY0NTQyNTdlOWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAt
NDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc09mZnNjcmVlbjJkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgT2Zmc2NyZWVuQ2FudmFzJiBjYW52YXMoKSBj
b25zdCB7IHJldHVybiBkb3duY2FzdDxPZmZzY3JlZW5DYW52YXM+KGNhbnZhc0Jhc2UoKSk7IH0K
KworICAgIHZvaWQgY29tbWl0KCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAppbmRleCAwNGVjNmE3NTE5YjE0YTc1YTEyNTY0ZjVl
OWRlYjkxMGVjOGJmMTM5Li5kN2ZlYzg3OTkzNjkwNDRiZGE3MmRlMGViNWM1M2Q2MzdhZTAyNzA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKQEAgLTI3LDE0ICsyNywxMyBAQAog
ICAgIEN1c3RvbUlzUmVhY2hhYmxlLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9T2Zmc2NyZWVuQ2Fu
dmFzLAogICAgIENvbmRpdGlvbmFsPU9GRlNDUkVFTl9DQU5WQVMsCi0gICAgRXhwb3NlZD0oV2lu
ZG93KSwgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcyAtIHNob3VsZCBiZSBXaW5kb3csV29ya2Vy
CisgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3Qs
CiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgLy8gQ2FsbFRyYWNpbmdDYWxsYmFjaz1y
ZWNvcmRDYW52YXNBY3Rpb24sIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52YXMuCiBdIGludGVyZmFj
ZSBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgewogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBPZmZzY3JlZW5DYW52YXMgY2FudmFzOwotICAgIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52
YXMuCi0gICAgLy8gdm9pZCBjb21taXQoKTsKKyAgICB2b2lkIGNvbW1pdCgpOwogCiAgICAgLy8g
SW5zcGVjdG9yLW9ubHkuCiAgICAgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuY3BwCmluZGV4IDA5MmM0YWVmNjBhNTUxM2Y0NzZjN2Q3MTQzM2ViZTcxYWZhNzgxZDQu
Ljk1MTg4OThkMzgzOWY5Yzk4OWMyNjkwYWRhNmViYzY3NDM1MWI0YTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250
ZXh0LmNwcApAQCAtMjYsMTUgKzI2LDMyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgiCiAKKyNpbmNsdWRlICJIVE1MQ2FudmFz
RWxlbWVudC5oIgorI2luY2x1ZGUgIk9mZnNjcmVlbkNhbnZhcy5oIgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dCk7CiAKLVBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jh
c2UmIGNhbnZhcykKK1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6UGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcywgT2Zmc2NyZWVuQ2FudmFzKiBvZmZzY3Jl
ZW5DYW52YXMpCiAgICAgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKKyAgICAsIG1f
b2Zmc2NyZWVuQ2FudmFzKG9mZnNjcmVlbkNhbnZhcykKIHsKIH0KIAorSFRNTENhbnZhc0VsZW1l
bnQqIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzKCkgY29uc3QKK3sKKyAgICBh
dXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOworICAgIGlmICghaXM8SFRNTENhbnZhc0VsZW1lbnQ+
KGJhc2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gJmRvd25jYXN0PEhU
TUxDYW52YXNFbGVtZW50PihiYXNlKTsKK30KKwordm9pZCBQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQ6OnNldE9mZnNjcmVlbkNhbnZhcyhPZmZzY3JlZW5DYW52YXMqIG9mZnNjcmVlbkNhbnZh
cykKK3sKKyAgICBBU1NFUlQob2Zmc2NyZWVuQ2FudmFzKTsKKyAgICBtX29mZnNjcmVlbkNhbnZh
cyA9IG9mZnNjcmVlbkNhbnZhczsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAppbmRleCBjMzQ4ZTUx
ODk1MmNiOWQ0MTVjNmJkMTc5NWYyMTZkY2IxNjVkMjU5Li42ZmRkZTM0N2ZjYTc5Nzc3MDc0YTM3
NTc5ZDgzZDg2Y2VmY2Y2MWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaApAQCAtMjksMTMgKzI5LDIxIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgT2Zmc2NyZWVuQ2FudmFzOworCiBjbGFz
cyBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChQbGFjZWhvbGRlclJlbmRl
cmluZ0NvbnRleHQpOwogcHVibGljOgotICAgIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dChD
YW52YXNCYXNlJik7CisgICAgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2Um
LCBPZmZzY3JlZW5DYW52YXMqKTsKKworICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMoKSBj
b25zdDsKKworICAgIHZvaWQgc2V0T2Zmc2NyZWVuQ2FudmFzKE9mZnNjcmVlbkNhbnZhcyopOwog
CiBwcml2YXRlOgogICAgIGJvb2wgaXNQbGFjZWhvbGRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KKworICAgIE9mZnNjcmVlbkNhbnZhcyogbV9vZmZzY3JlZW5DYW52YXM7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAwNDNkN2Y2NzQzN2MyNjFlZjEw
MmJiNjIyZjQ3NDdhMTkyY2MyNzhlLi5iZjM0ZDc4YjhiYTBhMTZlNWUzMjM4NWIxNmQzYTAyOGQ4
YjE2MGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAyMC0wMi0xMyAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IENhbnZhcy50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBhbmQgT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNvbW1pdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZh
cy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4
cGVjdGVkLnR4dDoKKwogMjAyMC0wMy0yNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBn
bWFpbC5jb20+CiAKICAgICAgICAgU3luYyB3cHQvZG9teHBhdGggYW5kIHJlLXN5bmMgd3B0L2Nz
cy9jc3NvbS12aWV3IGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dAppbmRleCA2
ZjFjNzA1MGU1ZTgyOGMzZjMyM2YyOTVmYjFkMmE0ZmVjOGMwMDdjLi41YjkzOGEyZjcwN2JkNzVm
N2UwNjRkNmYyMWZiMTAyOTJkMTEyMjRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0NjM6IEVycm9yOiBhc3NlcnRfZXF1
YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0ZWQgMjU1IGJ1
dCBnb3QgMAogCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1p
dCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gcGxhY2Vob2xkZXIudHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xk
ZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBj
b21taXQgb24gYW4gT2Zmc2NyZWVuQ2FudmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVkIGZyb20g
YSBIVE1MQ2FudmFzRWxlbWVudCBpcyBhIG5vb3AuIGN0eC5jb21taXQgaXMgbm90IGEgZnVuY3Rp
b24uIChJbiAnY3R4LmNvbW1pdCgpJywgJ2N0eC5jb21taXQnIGlzIHVuZGVmaW5lZCkKK1BBU1Mg
VGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29u
dGVudHMgdG8gaXRzIHBsYWNlaG9sZGVyLiAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0
IG9uIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRN
TENhbnZhc0VsZW1lbnQgaXMgYSBub29wLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dApp
bmRleCA0MzQzMzJjZTUxYWJmZTM3MTJkMGUyNDk1OGE4MDUyODFhNjA3MDc0Li5jNDIxOGVjYWMy
NzNkMDU0N2Y1ZTQ5YzNkMTIzZmRhZjgzZjNlYWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52
YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5D
YW52YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBs
YWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
SW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xk
ZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0
aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMg
dG8gaXRzIHBsYWNlaG9sZGVyLiAKIFBBU1MgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFu
IE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZh
c0VsZW1lbnQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpbiBhIHdvcmtlci4gCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNh
bnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNv
bnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IGJkOWFhMGUxNjc3ZTk0OTQ4MGIyMjMzMTIyMzhmNDcw
OTllZjEzNzcuLmM1N2EyOTNlYzRhOWJkNjhjNmQ5MWY5YWJjODI1NTRjNGRmODhmNmEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2Ny
ZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBUZXN0
IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHVuLXN1cHBvcnRlZCBzdHJpbmcgdGhyb3dzIGEgVHlwZUVy
cm9yLiAKIEZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJl
dHVybnMgY29ycmVjdCByZXN1bHRzIEFyZ3VtZW50IDEgKCdjb250ZXh0VHlwZScpIHRvIE9mZnNj
cmVlbkNhbnZhcy5nZXRDb250ZXh0IG11c3QgYmUgb25lIG9mOiAiMmQiLCAid2ViZ2wiCi1GQUlM
IFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSBy
ZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1lIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBz
dGF0ZS4KK1BBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgdHdpY2Ugd2l0aCBkaWZmZXJlbnQgY29u
dGV4dCB0eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRpbWUgCiBQQVNTIFRlc3QgdGhhdCAy
ZGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZh
cyAKIFBBU1MgVGVzdCB0aGF0IHdlYmdsY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUg
b3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAogRkFJTCBUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEIHdpdGggYWxwaGEgZGlzYWJsZWQgbWFrZXMgdGhlIE9mZnNjcmVl
bkNhbnZhcyBvcGFxdWUgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IEdyZWVuIGNoYW5uZWwgb2YgdGhl
IHBpeGVsIGF0ICg1LCA1KSBleHBlY3RlZCAxMjcgKy8tIDIgYnV0IGdvdCAyNTUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVu
LWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZjIyNGNlNzRlZWE4Nzhj
Zjc2YTEzMzNiY2FlMWJhYTEwZmQ0ZjY2Ny4uMzlmYzJjZjlhYWRkZTdmMmRiMWIzZTJlMzM2ODll
ZDcwNzE3OGNhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVl
bmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50
eHQKQEAgLTEsNyArMSw3IEBACiAKIFBBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCB1bi1z
dXBwb3J0ZWQgc3RyaW5nIHRocm93cyBhIFR5cGVFcnJvci4gCi1GQUlMIFRlc3QgdGhhdCBnZXRD
b250ZXh0IHdpdGggc3VwcG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBDYW4n
dCBmaW5kIHZhcmlhYmxlOiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQKLUZBSUwg
VGVzdCB0aGF0IGdldENvbnRleHQgdHdpY2Ugd2l0aCBkaWZmZXJlbnQgY29udGV4dCB0eXBlIHJl
dHVybnMgbnVsbCB0aGUgc2Vjb25kIHRpbWUgVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0
YXRlLgorRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBzdHJpbmcgcmV0
dXJucyBjb3JyZWN0IHJlc3VsdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV2ViR0xSZW5kZXJpbmdD
b250ZXh0CitQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNv
bnRleHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1lIAogUEFTUyBUZXN0IHRoYXQg
MmRjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52
YXMgCiBQQVNTIFRlc3QgdGhhdCB3ZWJnbGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhl
IG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKIEZBSUwgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCB3aXRoIGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBPZmZzY3Jl
ZW5DYW52YXMgb3BhcXVlIGFzc2VydF9hcHByb3hfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRo
ZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0ZWQgMTI3ICsvLSAyIGJ1dCBnb3QgMjU1CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6
ZS1leHBlY3RlZC50eHQKaW5kZXggZjQ1NTA3MTcyYjc2YmFmMDZhYjBlNDRlZDE1Y2UzMzA2YWQ0
ODE4YS4uNmMxMWM4ZGY0YjY1YTc5MDBhZGRjNzQ2YWE5YTBlZTc3OTQxODYxZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4t
Y2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
b2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVz
aXplLWV4cGVjdGVkLnR4dApAQCAtMiwxMSArMiwxMSBAQAogUEFTUyBWZXJpZnkgdGhhdCB3cml0
aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2Fu
dmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgbm8gY29udGV4dCBhdHRhY2hlZC4gCiBQQVNTIFZlcmlm
eSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBP
ZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hlbiB0aGVyZSBpcyBhIDJkIGNvbnRleHQgYXR0YWNoZWQu
IAogUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJp
YnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgYSB3ZWJnbCBj
b250ZXh0IGF0dGFjaGVkLiAKLUZBSUwgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGgg
b3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhj
ZXB0aW9uIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAn
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZB
SUwgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBv
ZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGV2ZW4gd2hlbiBub3Qg
Y2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuIHBsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0
aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJv
d3MgYW4gZXhjZXB0aW9uIAorUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBv
ciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNl
cHRpb24gZXZlbiB3aGVuIG5vdCBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4g
CiBQQVNTIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGEgMmQgY29udGV4dCByZXNldHMgaXRzIHN0YXRl
LiAKIFBBU1MgVmVyaWZ5IHRoYXQgc2V0dGluZyB0aGUgc2l6ZSBvZiBhIDJkIGNvbnRleHQgdG8g
dGhlIHNhbWUgc2l6ZSBpdCBhbHJlYWR5IGhhZCByZXNldHMgaXRzIHN0YXRlLiAKLUZBSUwgVmVy
aWZ5IHRoYXQgcmVzaXppbmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSAyZCBjb250ZXh0IHBy
b3BhZ2F0ZXMgdGhlIG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9u
b3VzbHkuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAn
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZB
SUwgVmVyaWZ5IHRoYXQgcmVzaXppbmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSB3ZWJnbCBj
b250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMg
YXN5bmNocm9ub3VzbHkuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlz
IG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2Ny
ZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVm
aW5lZCkKLUZBSUwgVmVyaWZ5IHRoYXQgZHJhd0ltYWdlIHVzZXMgdGhlIHNpemUgb2YgdGhlIGZy
YW1lIGFzIHRoZSBpbnRpbnNpYyBzaXplIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzLiBwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdw
bGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFZlcmlmeSB0aGF0
IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgMmQgY29udGV4dCBwcm9wYWdhdGVz
IHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiAK
K1BBU1MgVmVyaWZ5IHRoYXQgcmVzaXppbmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSB3ZWJn
bCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52
YXMgYXN5bmNocm9ub3VzbHkuIAorUEFTUyBWZXJpZnkgdGhhdCBkcmF3SW1hZ2UgdXNlcyB0aGUg
c2l6ZSBvZiB0aGUgZnJhbWUgYXMgdGhlIGludGluc2ljIHNpemUgb2YgYSBwbGFjZWhvbGRlciBj
YW52YXMuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3Ro
ZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zm
c2NyZWVuLWV4cGVjdGVkLnR4dAppbmRleCA0ZjQyZTUwNzQyODI4MGEyZWExOWY3NjNjZjhjOTYx
OWFlNWJiMzA1Li4yOTYwNDg1YjdiNmFkNmY3MDYyZGVmOWZlN2I3OWU1Y2I3NGI4M2JlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNj
cmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVy
Y29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBl
Y3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNh
bnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0
IHdpZHRoIGFuZCBoZWlnaHQgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4g
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5k
ZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xk
ZXIgY2FudmFzIHRoYXQgaGFzIGFscmVhZHkgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdGhyb3dz
IGFuIGV4Y2VwdGlvbiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBu
b3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
bigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmlu
ZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3
aWNlIHRocm93cyBhbiBleGNlcHRpb24gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicg
aXMgdW5kZWZpbmVkKQorUEFTUyBUZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRl
ZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhl
aWdodCAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVy
IGNhbnZhcyB0aGF0IGhhcyBhbHJlYWR5IHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRocm93cyBh
biBleGNlcHRpb24gCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zm
c2NyZWVuIHR3aWNlIHRocm93cyBhbiBleGNlcHRpb24gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNj
cmVlbi53LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dAppbmRleCAy
Y2QzZGI0YjI3NmRjMWMxMWQxZWNkYjA0OGIzYjc5MDkzZWVlMGRhLi4zM2I4NTMyY2IyZTAwNDE0
YTZkNTRhNmRhNzlhZTc2ZWFmNDY1NjNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50
cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBA
QAogCi1GQUlMIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHdoZW4g
aXQgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9u
IGEgcGxhY2Vob2xkZXIgY2FudmFzIHRoYXQgaXMgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdG8g
YW4gT2Zmc2NyZWVuQ2FudmFzIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gdGhlIE9mZnNjcmVl
bkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gaXRzIGFz
c29jaWF0ZWQgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIHBsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIu
dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0
IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgd2hlbiBpdCBpcyB0cmFuc2ZlcnJlZCB0
byBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNl
aG9sZGVyIGNhbnZhcyB0aGF0IGlzIHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRvIGFuIE9mZnNj
cmVlbkNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMg
aXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gaXRz
IGFzc29jaWF0ZWQgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIAog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395157</attachid>
            <date>2020-04-01 03:27:41 -0700</date>
            <delta_ts>2020-04-07 03:44:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200401112740.patch</filename>
            <type>text/plain</type>
            <size>39254</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRiZGEzMGEwYThiYzc3
OWM1NDA3ZTllZmJhODlmNGE0NjhjZjQwZi4uYWQyZTZiYzMzNTU0MmEyZDFlNDMzNGZlMzdhYzNh
NmY0NWI4NzUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmRpZERyYXcpOgorICAgICAgICAoV2ViQ29yZTo6
T2Zmc2NyZWVuQ2FudmFzOjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2Fu
dmFzOjpzZXRQbGFjZWhvbGRlckNhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5D
YW52YXM6OnBsYWNlaG9sZGVyQ2FudmFzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNj
cmVlbkNhbnZhczo6cHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
T2Zmc2NyZWVuQ2FudmFzOjpjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKToKKyAgICAgICAgKFdl
YkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6cmVzZXQpOgorICAgICAgICAq
IGh0bWwvT2Zmc2NyZWVuQ2FudmFzLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvT2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y29tbWl0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ6OmNh
bnZhcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQ6OnNldE9mZnNjcmVlbkNhbnZhcyk6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxhY2Vob2xk
ZXJSZW5kZXJpbmdDb250ZXh0Lmg6CisKIDIwMTktMTAtMDQgIENocmlzIExvcmQgIDxjbG9yZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSBhbmQgY2FuY2VsQW5p
bWF0aW9uRnJhbWUgc2hvdWxkIGJlIHByZXNlbnQgb24gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggMzU0NTYx
NjcxOGMyNWFhMDk5OTM2OGQ2OGUyYTk4MTAyN2ZmMDlkMi4uOGZmYmY3MzZmMzFlMzkyYzMwMjlk
Njg3ZjcyYjNlMmI0YTIxOTA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJIVE1MQ2Fu
dmFzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKQEAgLTE2NSw3ICsxNjYs
NyBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50OjpjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0CiAK
IEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxDYW52YXNFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQg
dmFsdWUpCiB7Ci0gICAgaWYgKG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIo
KSkKKyAgICBpZiAoaXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09ubHlI
VE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRIZWlnaHQpKSk7CiAgICAgcmV0dXJuIHsgfTsK
QEAgLTE3Myw3ICsxNzQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6
c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFz
RWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiB7Ci0gICAgaWYgKG1fY29udGV4dCAm
JiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKSkKKyAgICBpZiAoaXNDb250cm9sbGVkQnlPZmZz
Y3JlZW4oKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07
CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih3aWR0aEF0dHIsIEF0b21T
dHJpbmc6Om51bWJlcihsaW1pdFRvT25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVsdFdp
ZHRoKSkpOwogICAgIHJldHVybiB7IH07CkBAIC01MzQsNyArNTM1LDcgQEAgdm9pZCBIVE1MQ2Fu
dmFzRWxlbWVudDo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAKIHZvaWQgSFRNTENh
bnZhc0VsZW1lbnQ6OnJlc2V0KCkKIHsKLSAgICBpZiAobV9pZ25vcmVSZXNldCkKKyAgICBpZiAo
bV9pZ25vcmVSZXNldCB8fCBpc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpKQogICAgICAgICByZXR1
cm47CiAKICAgICBib29sIGhhZEltYWdlQnVmZmVyID0gaGFzQ3JlYXRlZEltYWdlQnVmZmVyKCk7
CkBAIC03MzYsNiArNzM3LDI1IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxDYW52YXNFbGVtZW50
Ojp0b0Jsb2IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmCiAgICAgcmV0dXJu
IHsgfTsKIH0KIAorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorRXhjZXB0aW9uT3I8UmVm
UHRyPE9mZnNjcmVlbkNhbnZhcz4+IEhUTUxDYW52YXNFbGVtZW50Ojp0cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQoreworICAgIGlmICht
X2NvbnRleHQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9
OworCisgICAgUmVmUHRyPE9mZnNjcmVlbkNhbnZhcz4gY2FudmFzID0gT2Zmc2NyZWVuQ2FudmFz
OjpjcmVhdGUoY29udGV4dCwgd2lkdGgoKSwgaGVpZ2h0KCkpOworICAgIGNhbnZhcy0+c2V0UGxh
Y2Vob2xkZXJDYW52YXMobWFrZVdlYWtQdHIoKnRoaXMpKTsKKyAgICBtX2NvbnRleHQgPSBtYWtl
VW5pcXVlPFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dD4oKnRoaXMsIGNhbnZhcy5nZXQoKSk7
CisKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUg
YSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBD
YW52YXMuCisgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworI2VuZGlm
CisKKyAgICByZXR1cm4gY2FudmFzOworfQorI2VuZGlmCisKIFJlZlB0cjxJbWFnZURhdGE+IEhU
TUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEoKQogewogI2lmIEVOQUJMRShXRUJHTCkKQEAg
LTkxMCw4ICs5MzAsMTcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZm
ZXIoKSBjb25zdAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlckFuZE1h
cmtEaXJ0eShzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyKQogeworICAgIElu
dFNpemUgb2xkU2l6ZSA9IHNpemUoKTsKICAgICBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlciA9IHRy
dWU7CiAgICAgc2V0SW1hZ2VCdWZmZXIoV1RGTW92ZShidWZmZXIpKTsKKworICAgIGlmIChpc0Nv
bnRyb2xsZWRCeU9mZnNjcmVlbigpICYmIG9sZFNpemUgIT0gc2l6ZSgpKSB7CisgICAgICAgIHNl
dEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpu
dW1iZXIod2lkdGgoKSkpOworICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKGhlaWdodEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcihoZWlnaHQoKSkpOworICAgICAgICBu
b3RpZnlPYnNlcnZlcnNDYW52YXNSZXNpemVkKCk7CisgICAgICAgIGludmFsaWRhdGVTdHlsZUFu
ZFJlbmRlcmVyc0ZvclN1YnRyZWUoKTsKKyAgICB9CisKICAgICBkaWREcmF3KEZsb2F0UmVjdChG
bG9hdFBvaW50KCksIHNpemUoKSkpOwogfQogCkBAIC05NDUsNCArOTc0LDkgQEAgdm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6Y2xlYXJDb3BpZWRJbWFnZSgpCiAgICAgbV9kaWRDbGVhckltYWdlQnVm
ZmVyID0gZmFsc2U7CiB9CiAKK2Jvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzQ29udHJvbGxlZEJ5
T2Zmc2NyZWVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0ICYmIG1fY29udGV4dC0+
aXNQbGFjZWhvbGRlcigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmgKaW5kZXggNDIxMzRhMTIyOTQxNDk2YmYzMWJjZGQ3OWM2YmM1YzM5MWE3OGE0NS4uMzE0
ODYzMmE4NzVkNDAzYjAwODgxNTM2MzE3ZjQ5Y2Y2NDk5N2FkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBJbWFnZUJ1ZmZl
cjsKIGNsYXNzIEltYWdlRGF0YTsKIGNsYXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgTWVkaWFTdHJl
YW07CitjbGFzcyBPZmZzY3JlZW5DYW52YXM7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOwogY2xhc3MgR1BVQ2FudmFzQ29udGV4dDsKIHN0cnVjdCBVbmNhY2hlZFN0cmluZzsKQEAg
LTk2LDYgKzk3LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVu
Y2FjaGVkU3RyaW5nPiB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1Zh
bHVlIHF1YWxpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2FjaGVkU3Ry
aW5nPiB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gdG9CbG9iKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8QmxvYkNhbGxiYWNrPiYm
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CisjaWYgRU5B
QkxFKE9GRlNDUkVFTl9DQU5WQVMpCisgICAgRXhjZXB0aW9uT3I8UmVmUHRyPE9mZnNjcmVlbkNh
bnZhcz4+IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKKyNlbmRpZgogCiAgICAgLy8gVXNlZCBmb3IgcmVuZGVyaW5nCiAgICAgdm9pZCBkaWREcmF3
KGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwpAQCAtMTI4LDYgKzEzMiw4IEBAIHB1YmxpYzoKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldE1heFBpeGVsTWVtb3J5Rm9yVGVzdGlu
ZyhzaXplX3QpOwogCisgICAgYm9vbCBpc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIEhUTUxDYW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCmlu
ZGV4IDY5ZjBhNzFlNDNlMzZhMTg0YjQ4ODJkZDdjZWVmN2RmMTliYjgxYmIuLjcyZGVhY2ViNThl
MjdkYjIwNmI5YjBkMDgzZjNiMmU4MWQxODM1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaWRsCkBAIC00OSw2ICs0OSw3IEBAIHR5cGVkZWYgKAogCiAgICAgW01h
eVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgdG9EYXRhVVJMKG9wdGlvbmFsIERPTVN0cmluZyB0
eXBlLCBvcHRpb25hbCBhbnkgcXVhbGl0eSk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSB2b2lkIHRvQmxvYihCbG9iQ2FsbGJhY2sgY2Fs
bGJhY2ssIG9wdGlvbmFsIERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBhbnkgcXVhbGl0eSk7Cisg
ICAgW0NvbmRpdGlvbmFsPU9GRlNDUkVFTl9DQU5WQVMsIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBPZmZzY3JlZW5DYW52YXMgdHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4oKTsKIAogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIENhbGxX
aXRoPURvY3VtZW50LCBNYXlUaHJvd0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBNZWRpYVN0cmVhbSBj
YXB0dXJlU3RyZWFtKG9wdGlvbmFsIGRvdWJsZSBmcmFtZVJlcXVlc3RSYXRlKTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKaW5kZXggNmJkYmUyZjM2MmM5NzM4YWM2
Y2NkMDZlNmE3NzZhYTEzMThlZTU3MC4uYWUzOWI2YTFiNDc5ZDIzN2NjNWQ1MzI3MmNmZDg1Yjgy
YWE2MzU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcApAQCAtMzAs
MTEgKzMwLDE0IEBACiAKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDYW52
YXNSZW5kZXJpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNp
bmNsdWRlICJJbWFnZUJpdG1hcC5oIgorI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUg
IkpTQmxvYi5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIgorI2luY2x1ZGUgIlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNj
b3BlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTQzLDEwICs0Niwx
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChP
ZmZzY3JlZW5DYW52YXMpOwogCi1EZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZz
Y3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmIGJ1ZmZlciwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSwgYm9vbCBvcmlnaW5DbGVhbikKK0RldGFjaGVkT2Zmc2NyZWVuQ2FudmFz
OjpEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYg
YnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplLCBib29sIG9yaWdpbkNsZWFuLCBXZWFrUHRyPEhU
TUxDYW52YXNFbGVtZW50PiYmIHBsYWNlaG9sZGVyQ2FudmFzKQogICAgIDogbV9idWZmZXIoV1RG
TW92ZShidWZmZXIpKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX29yaWdpbkNsZWFuKG9y
aWdpbkNsZWFuKQorICAgICwgbV9wbGFjZWhvbGRlckNhbnZhcyhXVEZNb3ZlKHBsYWNlaG9sZGVy
Q2FudmFzKSkKIHsKIH0KIApAQCAtNTUsNiArNTksMTEgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiBEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6dGFrZUltYWdlQnVmZmVyKCkKICAgICBy
ZXR1cm4gV1RGTW92ZShtX2J1ZmZlcik7CiB9CiAKK1dlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+
IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0YWtlUGxhY2Vob2xkZXJDYW52YXMoKQoreworICAg
IHJldHVybiBXVEZNb3ZlKG1fcGxhY2Vob2xkZXJDYW52YXMpOworfQorCiBSZWY8T2Zmc2NyZWVu
Q2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogewogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IE9mZnNjcmVlbkNhbnZhcyhjb250ZXh0LCB3aWR0aCwgaGVpZ2h0KSk7CkBA
IC02MywxMCArNzIsMjEgQEAgUmVmPE9mZnNjcmVlbkNhbnZhcz4gT2Zmc2NyZWVuQ2FudmFzOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgdW4KIFJlZjxPZmZzY3JlZW5D
YW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4mJiBkZXRhY2hl
ZENhbnZhcykKIHsKICAgICBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBjbG9uZSA9IGFkb3B0UmVmKCpu
ZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQsIGRldGFjaGVkQ2FudmFzLT5zaXplKCkud2lkdGgo
KSwgZGV0YWNoZWRDYW52YXMtPnNpemUoKS5oZWlnaHQoKSkpOworCiAgICAgY2xvbmUtPnNldElt
YWdlQnVmZmVyKGRldGFjaGVkQ2FudmFzLT50YWtlSW1hZ2VCdWZmZXIoKSk7CiAgICAgaWYgKCFk
ZXRhY2hlZENhbnZhcy0+b3JpZ2luQ2xlYW4oKSkKICAgICAgICAgY2xvbmUtPnNldE9yaWdpblRh
aW50ZWQoKTsKIAorICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbnZhcyA9IGRldGFjaGVkQ2FudmFz
LT50YWtlUGxhY2Vob2xkZXJDYW52YXMoKSwgb2Zmc2NyZWVuQ2FudmFzID0gY2xvbmUucHRyKCld
ICgpIG11dGFibGUgeworICAgICAgICBpZiAoY2FudmFzKSB7CisgICAgICAgICAgICBpZiAoYXV0
byByZW5kZXJpbmdDb250ZXh0ID0gY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCkpIHsKKyAgICAg
ICAgICAgICAgICBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQmIHBsYWNlaG9sZGVyQ29udGV4
dCA9IGRvd25jYXN0PFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dD4oKnJlbmRlcmluZ0NvbnRl
eHQpOworICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyQ29udGV4dC5zZXRPZmZzY3JlZW5DYW52
YXMob2Zmc2NyZWVuQ2FudmFzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNjcmVl
bkNhbnZhcy0+c2V0UGxhY2Vob2xkZXJDYW52YXMoV1RGTW92ZShjYW52YXMpKTsKKyAgICAgICAg
fQorICAgIH0pOworCiAgICAgcmV0dXJuIGNsb25lOwogfQogCkBAIC0xMTgsNyArMTM4LDcgQEAg
dm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKICAg
ICByZXNldCgpOwogfQogCi1FeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiBP
ZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIFJl
bmRlcmluZ0NvbnRleHRUeXBlIGNvbnRleHRUeXBlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpV
bmtub3duPj4mJiBhcmd1bWVudHMpCitFeGNlcHRpb25PcjxPcHRpb25hbDxPZmZzY3JlZW5SZW5k
ZXJpbmdDb250ZXh0Pj4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxP
YmplY3QmIHN0YXRlLCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0VHlwZSwgVmVjdG9yPEpT
Qzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQogewogICAgIGlmIChtX2RldGFj
aGVkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKQEAg
LTEyNiwyMiArMTQ2LDIyIEBAIEV4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+
IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xvYmFsCiAgICAgaWYgKGNvbnRl
eHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpfMmQpIHsKICAgICAgICAgaWYgKG1fY29u
dGV4dCkgewogICAgICAgICAgICAgaWYgKCFpczxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ+KCptX2NvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OwotICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH07CisgICAgICAgICAgICAgICAgcmV0dXJu
IE9wdGlvbmFsPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+IHsgV1RGOjpudWxsb3B0IH07Cisg
ICAgICAgICAgICByZXR1cm4gT3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4geyBS
ZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKICAgICAgICAg
fQogCiAgICAgICAgIG1fY29udGV4dCA9IG1ha2VVbmlxdWU8T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPigqdGhpcyk7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAg
ICAgcmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyBu
dWxscHRyIH0gfTsKKyAgICAgICAgICAgIHJldHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJp
bmdDb250ZXh0PiB7IFdURjo6bnVsbG9wdCB9OwogCi0gICAgICAgIHJldHVybiB7IFJlZlB0cjxP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICByZXR1cm4g
T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8T2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKICAgICB9CiAjaWYgRU5BQkxFKFdFQkdMKQog
ICAgIGlmIChjb250ZXh0VHlwZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6V2ViZ2wpIHsKICAg
ICAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAgICAgaWYgKCFpczxXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ+KCptX2NvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9OwotICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9j
b250ZXh0KSB9IH07CisgICAgICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0Pigq
bV9jb250ZXh0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gT3B0aW9uYWw8T2Zmc2NyZWVuUmVu
ZGVyaW5nQ29udGV4dD4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2Fz
dDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgICAgIHJl
dHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiB7IFdURjo6bnVsbG9wdCB9
OwogICAgICAgICB9CiAKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
c3RhdGUudm0oKSk7CkBAIC0xNTAsMTMgKzE3MCwxMyBAQCBFeGNlcHRpb25PcjxPZmZzY3JlZW5S
ZW5kZXJpbmdDb250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2Jh
bAogCiAgICAgICAgIG1fY29udGV4dCA9IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0
ZSgqdGhpcywgYXR0cmlidXRlcywgIndlYmdsIik7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQot
ICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyBudWxs
cHRyIH0gfTsKKyAgICAgICAgICAgIHJldHVybiBPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdD
b250ZXh0PiB7IFdURjo6bnVsbG9wdCB9OwogCi0gICAgICAgIHJldHVybiB7IFJlZlB0cjxXZWJH
TFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1f
Y29udGV4dCkgfSB9OworICAgICAgICByZXR1cm4gT3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5n
Q29udGV4dD4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJH
TFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKICAgICB9CiAjZW5kaWYKIAotICAg
IHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IgfTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFw
Pj4gT2Zmc2NyZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKQpAQCAtMjU4LDYgKzI3
OCw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpjb252ZXJ0VG9CbG9iKEltYWdlRW5jb2RlT3B0
aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByCiB2b2lkIE9mZnNjcmVlbkNhbnZhczo6ZGlk
RHJhdyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgY2xlYXJDb3BpZWRJbWFnZSgpOwor
ICAgIHNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOwogICAgIG5vdGlmeU9ic2Vy
dmVyc0NhbnZhc0NoYW5nZWQocmVjdCk7CiB9CiAKQEAgLTMwMCw3ICszMjEsNzAgQEAgc3RkOjp1
bmlxdWVfcHRyPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmRldGFj
aCgpCiAKICAgICBtX2RldGFjaGVkID0gdHJ1ZTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPERl
dGFjaGVkT2Zmc2NyZWVuQ2FudmFzPih0YWtlSW1hZ2VCdWZmZXIoKSwgc2l6ZSgpLCBvcmlnaW5D
bGVhbigpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4o
dGFrZUltYWdlQnVmZmVyKCksIHNpemUoKSwgb3JpZ2luQ2xlYW4oKSwgV1RGTW92ZShtX3BsYWNl
aG9sZGVyQ2FudmFzKSk7Cit9CisKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRQbGFjZWhvbGRl
ckNhbnZhcyhXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiYmIGNhbnZhcykKK3sKKyAgICBBU1NF
UlQoIW1fY29udGV4dCk7CisgICAgbV9wbGFjZWhvbGRlckNhbnZhcyA9IGNhbnZhczsKK30KKwor
SFRNTENhbnZhc0VsZW1lbnQqIE9mZnNjcmVlbkNhbnZhczo6cGxhY2Vob2xkZXJDYW52YXMoKSBj
b25zdAoreworICAgIHJldHVybiBtX3BsYWNlaG9sZGVyQ2FudmFzLmdldCgpOworfQorCit2b2lk
IE9mZnNjcmVlbkNhbnZhczo6cHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKQoreworICAgIGNhbGxP
bk1haW5UaHJlYWQoW3RoaXNdICgpIG11dGFibGUgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fY29tbWl0TG9jayk7CisgICAgICAgIG1fcGVuZGluZ0NvbW1pdCA9IGZhbHNlOwor
ICAgICAgICBpZiAoIW1fcGxhY2Vob2xkZXJDYW52YXMgfHwgIW1fcGVuZGluZ0NvbW1pdERhdGEp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShGbG9hdFNpemUobV9wZW5kaW5nQ29tbWl0
RGF0YS0+c2l6ZSgpKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CisgICAgICAgIGJ1
ZmZlci0+cHV0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQs
ICptX3BlbmRpbmdDb21taXREYXRhLCBJbnRSZWN0KEludFBvaW50KCksIG1fcGVuZGluZ0NvbW1p
dERhdGEtPnNpemUoKSkpOworICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzLT5zZXRJbWFnZUJ1
ZmZlckFuZE1hcmtEaXJ0eShXVEZNb3ZlKGJ1ZmZlcikpOworICAgIH0pOworfQorCit2b2lkIE9m
ZnNjcmVlbkNhbnZhczo6Y29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAgYXV0byog
aW1hZ2VCdWZmZXIgPSBidWZmZXIoKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBUT0RPOiBUcmFuc2ZlciB0ZXh0dXJlIG92ZXIgaWYgd2UncmUgdXNp
bmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICBpZiAobV9jb250ZXh0ICYmIChtX2NvbnRl
eHQtPmlzV2ViR0woKSB8fCBtX2NvbnRleHQtPmlzQWNjZWxlcmF0ZWQoKSkpCisgICAgICAgIG1f
Y29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKTsKKworICAgIGlmIChpc01h
aW5UaHJlYWQoKSkgeworICAgICAgICBpZiAobV9wbGFjZWhvbGRlckNhbnZhcykgeworICAgICAg
ICAgICAgaWYgKGF1dG8gYnVmZmVyQ29weSA9IGltYWdlQnVmZmVyLT5jb3B5UmVjdFRvQnVmZmVy
KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwgQ29s
b3JTcGFjZTo6U1JHQiwgaW1hZ2VCdWZmZXItPmNvbnRleHQoKSkpCisgICAgICAgICAgICAgICAg
bV9wbGFjZWhvbGRlckNhbnZhcy0+c2V0SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoV1RGTW92ZShi
dWZmZXJDb3B5KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb21taXRMb2NrKTsKKworICAgIG1fcGVuZGluZ0NvbW1p
dERhdGEgPSBpbWFnZUJ1ZmZlci0+Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb246
OlByZW11bHRpcGxpZWQsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxT
aXplKCkpKTsKKworICAgIGlmICghbV9wZW5kaW5nQ29tbWl0KSB7CisgICAgICAgIG1fcGVuZGlu
Z0NvbW1pdCA9IHRydWU7CisgICAgICAgIHB1c2hCdWZmZXJUb1BsYWNlaG9sZGVyKCk7CisgICAg
fQorfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVy
Q2FudmFzKCkKK3sKKyAgICBpZiAoIW1fcGVuZGluZ0NvbW1pdFRhc2spIHsKKyAgICAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
KyAgICAgICAgbV9wZW5kaW5nQ29tbWl0VGFzayA9IGNvbnRleHQtPnBvc3RUYXNrVG8oY29udGV4
dC0+Y29udGV4dElkZW50aWZpZXIoKSwgW3RoaXNdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jikg
eworICAgICAgICAgICAgbV9wZW5kaW5nQ29tbWl0VGFzayA9IGZhbHNlOworICAgICAgICAgICAg
Y29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworICAgICAgICB9KTsKKyAgICB9CiB9CiAKIENT
U1ZhbHVlUG9vbCYgT2Zmc2NyZWVuQ2FudmFzOjpjc3NWYWx1ZVBvb2woKQpAQCAtMzUwLDYgKzQz
NCw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpyZXNldCgpCiAgICAgY2xlYXJDb3BpZWRJbWFn
ZSgpOwogCiAgICAgbm90aWZ5T2JzZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAgIHNjaGVkdWxl
Q29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZz
Y3JlZW5DYW52YXMuaAppbmRleCAzZTVlMzBhNTc2ZTMxYTkzMmE2ZjE0NmE5N2ViZjA4ZGU5YTI1
ZjM5Li4wN2NjZGI1OGI3N2YwZGViZDVlNTg2MGVkYTg1ODVmMzc1ZWNlMDU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKQEAgLTM1LDggKzM1LDEwIEBACiAjaW5jbHVkZSAi
SURMVHlwZXMuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBh
YmxlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDhDbGFtcGVkQXJyYXkuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsNyArNDYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0OwogY2xhc3MgQ1NTVmFsdWVQb29sOwogY2xh
c3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CiBjbGFzcyBJbWFn
ZUJpdG1hcDsKK2NsYXNzIEltYWdlRGF0YTsKIGNsYXNzIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dDsKIApAQCAtNTgsMTYgKzYy
LDE4IEBAIGNsYXNzIERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcyk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0gICAgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMoc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiYmLCBjb25zdCBJbnRTaXplJiwgYm9vbCBvcmlnaW5DbGVhbik7Cisg
ICAgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYm
LCBjb25zdCBJbnRTaXplJiwgYm9vbCBvcmlnaW5DbGVhbiwgV2Vha1B0cjxIVE1MQ2FudmFzRWxl
bWVudD4mJiBwbGFjZWhvbGRlckNhbnZhcyk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXI+IHRha2VJbWFnZUJ1ZmZlcigpOwogICAgIGNvbnN0IEludFNpemUmIHNpemUoKSBjb25z
dCB7IHJldHVybiBtX3NpemU7IH0KICAgICBib29sIG9yaWdpbkNsZWFuKCkgY29uc3QgeyByZXR1
cm4gbV9vcmlnaW5DbGVhbjsgfQorICAgIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IHRha2VQ
bGFjZWhvbGRlckNhbnZhcygpOwogCiBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlcj4gbV9idWZmZXI7CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgYm9vbCBtX29yaWdp
bkNsZWFuOworICAgIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IG1fcGxhY2Vob2xkZXJDYW52
YXM7CiB9OwogCiBjbGFzcyBPZmZzY3JlZW5DYW52YXMgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxPZmZzY3JlZW5DYW52YXM+LCBwdWJsaWMgQ2FudmFzQmFzZSwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEsIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewpAQCAt
OTUsNyArMTAxLDcgQEAgcHVibGljOgogCiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogcmVu
ZGVyaW5nQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQog
Ci0gICAgRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4gZ2V0Q29udGV4dChK
U0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVuZGVyaW5nQ29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0
cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7CisgICAgRXhjZXB0aW9uT3I8T3B0aW9u
YWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4+IGdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9i
amVjdCYsIFJlbmRlcmluZ0NvbnRleHRUeXBlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtu
b3duPj4mJiBhcmd1bWVudHMpOwogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+
IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOwogICAgIHZvaWQgY29udmVydFRvQmxvYihJbWFnZUVu
Y29kZU9wdGlvbnMmJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKQEAgLTEwOSw2ICsxMTUs
MTAgQEAgcHVibGljOgogICAgIGJvb2wgY2FuRGV0YWNoKCkgY29uc3Q7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPiBkZXRhY2goKTsKIAorICAgIHZvaWQgc2V0
UGxhY2Vob2xkZXJDYW52YXMoV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4mJik7CisgICAgSFRN
TENhbnZhc0VsZW1lbnQqIHBsYWNlaG9sZGVyQ2FudmFzKCkgY29uc3Q7CisgICAgdm9pZCBjb21t
aXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisKICAgICBDU1NWYWx1ZVBvb2wmIGNzc1ZhbHVlUG9v
bCgpOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwpAQCAtMTM4LDYgKzE0OCw5IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIGNsZWFyQ29waWVkSW1hZ2UoKSBjb25zdDsKIAorICAgIHZvaWQg
cHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKTsKKyAgICB2b2lkIHNjaGVkdWxlQ29tbWl0VG9QbGFj
ZWhvbGRlckNhbnZhcygpOworCiAgICAgc3RkOjp1bmlxdWVfcHRyPENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQ+IG1fY29udGV4dDsKIAogICAgIC8vIG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyIG1lYW5z
IHdlIHRyaWVkIHRvIG1hbGxvYyB0aGUgYnVmZmVyLiBXZSBkaWRuJ3QgbmVjZXNzYXJpbHkgZ2V0
IGl0LgpAQCAtMTQ2LDYgKzE1OSwxMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kZXRhY2hlZCB7
IGZhbHNlIH07CiAKICAgICBtdXRhYmxlIFJlZlB0cjxJbWFnZT4gbV9jb3BpZWRJbWFnZTsKKwor
ICAgIGJvb2wgbV9wZW5kaW5nQ29tbWl0VGFzayB7IGZhbHNlIH07CisgICAgV2Vha1B0cjxIVE1M
Q2FudmFzRWxlbWVudD4gbV9wbGFjZWhvbGRlckNhbnZhczsKKworICAgIG11dGFibGUgTG9jayBt
X2NvbW1pdExvY2s7CisgICAgYm9vbCBtX3BlbmRpbmdDb21taXQgeyBmYWxzZSB9OworICAgIFJl
ZlB0cjxJbWFnZURhdGE+IG1fcGVuZGluZ0NvbW1pdERhdGE7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA4NmQ3ODRhMzUxZDU4NGNlNmVmM2E2OTkyZTdlYzIw
NmU2OGQ5NjAwLi5mMDJiMzdjOTJiYjRiOWE1MjllYTAxNDQ0YTZjZDNhMzBlMWVhOTM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTQ4LDYgKzQ4LDEyIEBAIE9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEKENhbnZhc0Jhc2UmCiAKIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6fk9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCgpID0gZGVmYXVsdDsKIAordm9pZCBPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNvbW1pdCgpCit7CisgICAgT2Zmc2NyZWVu
Q2FudmFzJiBvZmZzY3JlZW5DYW52YXMgPSBkb3duY2FzdDxPZmZzY3JlZW5DYW52YXM+KGNhbnZh
c0Jhc2UoKSk7CisgICAgb2Zmc2NyZWVuQ2FudmFzLmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmgKaW5kZXggY2NiMTZlOTJjZDJiZDA0Y2E1NjhiY2Y2MTYzMjc5MmU2OTQ5MzNl
MC4uZWU5MjlhZjJiMjlkYWU4MjYzZGUxZGFmNjBkZDE2NDU0MjU3ZTllMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNP
ZmZzY3JlZW4yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIE9mZnNj
cmVlbkNhbnZhcyYgY2FudmFzKCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8T2Zmc2NyZWVuQ2Fu
dmFzPihjYW52YXNCYXNlKCkpOyB9CisKKyAgICB2b2lkIGNvbW1pdCgpOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKaW5kZXggMDRl
YzZhNzUxOWIxNGE3NWExMjU2NGY1ZTlkZWI5MTBlYzhiZjEzOS4uZDdmZWM4Nzk5MzY5MDQ0YmRh
NzJkZTBlYjVjNTNkNjM3YWUwMjcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRs
CkBAIC0yNywxNCArMjcsMTMgQEAKICAgICBDdXN0b21Jc1JlYWNoYWJsZSwKICAgICBFbmFibGVk
QXRSdW50aW1lPU9mZnNjcmVlbkNhbnZhcywKICAgICBDb25kaXRpb25hbD1PRkZTQ1JFRU5fQ0FO
VkFTLAotICAgIEV4cG9zZWQ9KFdpbmRvdyksIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52YXMgLSBz
aG91bGQgYmUgV2luZG93LFdvcmtlcgorICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAogICAg
IEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgIC8v
IENhbGxUcmFjaW5nQ2FsbGJhY2s9cmVjb3JkQ2FudmFzQWN0aW9uLCAvLyBGSVhNRTogT2Zmc2Ny
ZWVuQ2FudmFzLgogXSBpbnRlcmZhY2UgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
IHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgT2Zmc2NyZWVuQ2FudmFzIGNhbnZhczsKLSAgICAv
LyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgotICAgIC8vIHZvaWQgY29tbWl0KCk7CisgICAgdm9p
ZCBjb21taXQoKTsKIAogICAgIC8vIEluc3BlY3Rvci1vbmx5LgogICAgIC8vIEZJWE1FOiBPZmZz
Y3JlZW5DYW52YXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFj
ZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAwOTJjNGFlZjYwYTU1MTNmNDc2
YzdkNzE0MzNlYmU3MWFmYTc4MWQ0Li40ZjRmMzU4NGRlOTkxNWQ1Zjg4ZGYwN2FhMmQ4Y2UyODhm
ZWYxYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRl
clJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1Bs
YWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI2LDE1ICsyNiwzNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIgog
CisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxl
bWVudC5oIgorI2luY2x1ZGUgIk9mZnNjcmVlbkNhbnZhcy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dCk7CiAKLVBsYWNlaG9sZGVy
UmVuZGVyaW5nQ29udGV4dDo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2Um
IGNhbnZhcykKK1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6UGxhY2Vob2xkZXJSZW5kZXJp
bmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcywgT2Zmc2NyZWVuQ2FudmFzKiBvZmZzY3JlZW5D
YW52YXMpCiAgICAgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKKyAgICAsIG1fb2Zm
c2NyZWVuQ2FudmFzKG9mZnNjcmVlbkNhbnZhcykKK3sKK30KKworSFRNTENhbnZhc0VsZW1lbnQq
IFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzKCkgY29uc3QKIHsKKyAgICBhdXRv
JiBiYXNlID0gY2FudmFzQmFzZSgpOworICAgIGlmICghaXM8SFRNTENhbnZhc0VsZW1lbnQ+KGJh
c2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gJmRvd25jYXN0PEhUTUxD
YW52YXNFbGVtZW50PihiYXNlKTsKK30KKwordm9pZCBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQ6OnNldE9mZnNjcmVlbkNhbnZhcyhPZmZzY3JlZW5DYW52YXMqIG9mZnNjcmVlbkNhbnZhcykK
K3sKKyAgICBBU1NFUlQob2Zmc2NyZWVuQ2FudmFzKTsKKyAgICBtX29mZnNjcmVlbkNhbnZhcyA9
IG9mZnNjcmVlbkNhbnZhczsKIH0KIAogfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXgg
YzM0OGU1MTg5NTJjYjlkNDE1YzZiZDE3OTVmMjE2ZGNiMTY1ZDI1OS4uNDYwOTc4OWFjN2Q3YzRk
ODhmZjI3YjIzZWY2N2M0MDk4OGIzNTc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTI1LDE5ICsy
NSwzMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQor
CiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIE9mZnNjcmVlbkNhbnZhczsKKwogY2xhc3MgUGxhY2Vob2xkZXJSZW5kZXJp
bmdDb250ZXh0IGZpbmFsIDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgewogICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KTsKIHB1Ymxp
YzoKLSAgICBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYpOworICAgIFBs
YWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNlJiwgT2Zmc2NyZWVuQ2FudmFzKik7
CisKKyAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzKCkgY29uc3Q7CisKKyAgICB2b2lkIHNl
dE9mZnNjcmVlbkNhbnZhcyhPZmZzY3JlZW5DYW52YXMqKTsKIAogcHJpdmF0ZToKICAgICBib29s
IGlzUGxhY2Vob2xkZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBPZmZz
Y3JlZW5DYW52YXMqIG1fb2Zmc2NyZWVuQ2FudmFzOwogfTsKIAogfQogCiBTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0NBTlZBU1JFTkRFUklOR0NPTlRFWFQoV2ViQ29yZTo6UGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LCBpc1BsYWNlaG9sZGVyKCkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggMDQzZDdmNjc0MzdjMjYxZWYxMDJiYjYyMmY0NzQ3YTE5MmNjMjc4
ZS4uYmYzNGQ3OGI4YmEwYTE2ZTVlMzIzODViMTZkM2EwMjhkOGIxNjBjMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDItMTMgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDYW52YXMudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4gYW5kIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jb21taXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMjc5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52
YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdl
dGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMu
cmVzaXplLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2Ny
ZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJj
b250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQ6CisKIDIwMjAt
MDMtMjYgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAg
IFN5bmMgd3B0L2RvbXhwYXRoIGFuZCByZS1zeW5jIHdwdC9jc3MvY3Nzb20tdmlldyBmcm9tIHVw
c3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLmNvbW1pdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKaW5kZXggNmYxYzcwNTBlNWU4MjhjM2YzMjNm
Mjk1ZmIxZDJhNGZlYzhjMDA3Yy4uNWI5MzhhMmY3MDdiZDc1ZjdlMDY0ZDZmMjFmYjEwMjkyZDEx
MjI0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5jb21taXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAzNDYzOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogR3JlZW4gY2hhbm5lbCBv
ZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4cGVjdGVkIDI1NSBidXQgZ290IDAKIAotRkFJTCBUZXN0
IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50
cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2Ny
ZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlz
IHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNjcmVl
bkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1lbnQg
aXMgYSBub29wLiBjdHguY29tbWl0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2N0eC5jb21taXQo
KScsICdjdHguY29tbWl0JyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIE9m
ZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhv
bGRlci4gCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52
YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IGlzIGEg
bm9vcC4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29m
ZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKaW5kZXggNDM0MzMyY2U1MWFiZmUz
NzEyZDBlMjQ5NThhODA1MjgxYTYwNzA3NC4uYzQyMThlY2FjMjczZDA1NDdmNWU0OWMzZDEyM2Zk
YWY4M2YzZWFiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVl
bmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBA
CiAKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hl
cyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVyLiBwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVl
bkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4g
CiBQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52YXMgdGhh
dCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IHRocm93cyBhbiBl
eGNlcHRpb24gaW4gYSB3b3JrZXIuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dApp
bmRleCBiZDlhYTBlMTY3N2U5NDk0ODBiMjIzMzEyMjM4ZjQ3MDk5ZWYxMzc3Li5jNTdhMjkzZWM0
YTliZDY4YzZkOTFmOWFiYzgyNTU0YzRkZjg4ZjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNh
bnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBl
Y3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKIFBBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0
aCB1bi1zdXBwb3J0ZWQgc3RyaW5nIHRocm93cyBhIFR5cGVFcnJvci4gCiBGQUlMIFRlc3QgdGhh
dCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0
cyBBcmd1bWVudCAxICgnY29udGV4dFR5cGUnKSB0byBPZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4
dCBtdXN0IGJlIG9uZSBvZjogIjJkIiwgIndlYmdsIgotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4
dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNv
bmQgdGltZSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuCitQQVNTIFRlc3QgdGhh
dCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51
bGwgdGhlIHNlY29uZCB0aW1lIAogUEFTUyBUZXN0IHRoYXQgMmRjb250ZXh0LmNhbnZhcyBzaG91
bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBQQVNTIFRlc3QgdGhhdCB3
ZWJnbGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNh
bnZhcyAKIEZBSUwgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB3
aXRoIGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBPZmZzY3JlZW5DYW52YXMgb3BhcXVlIGFzc2Vy
dF9hcHByb3hfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoNSwgNSkgZXhw
ZWN0ZWQgMTI3ICsvLSAyIGJ1dCBnb3QgMjU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNh
bnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3Jr
ZXItZXhwZWN0ZWQudHh0CmluZGV4IGYyMjRjZTc0ZWVhODc4Y2Y3NmExMzMzYmNhZTFiYWExMGZk
NGY2NjcuLjM5ZmMyY2Y5YWFkZGU3ZjJkYjFiM2UyZTMzNjg5ZWQ3MDcxNzhjYTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVu
LWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53
b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAog
CiBQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggdW4tc3VwcG9ydGVkIHN0cmluZyB0aHJv
d3MgYSBUeXBlRXJyb3IuIAotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBvcnRl
ZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogT2Zm
c2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJECi1GQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0
IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29u
ZCB0aW1lIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4KK0ZBSUwgVGVzdCB0aGF0
IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRz
IENhbid0IGZpbmQgdmFyaWFibGU6IFdlYkdMUmVuZGVyaW5nQ29udGV4dAorUEFTUyBUZXN0IHRo
YXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBu
dWxsIHRoZSBzZWNvbmQgdGltZSAKIFBBU1MgVGVzdCB0aGF0IDJkY29udGV4dC5jYW52YXMgc2hv
dWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAogUEFTUyBUZXN0IHRoYXQg
d2ViZ2xjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5D
YW52YXMgCiBGQUlMIFRlc3QgdGhhdCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQg
d2l0aCBhbHBoYSBkaXNhYmxlZCBtYWtlcyB0aGUgT2Zmc2NyZWVuQ2FudmFzIG9wYXF1ZSBhc3Nl
cnRfYXBwcm94X2VxdWFsczogR3JlZW4gY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4
cGVjdGVkIDEyNyArLy0gMiBidXQgZ290IDI1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0CmluZGV4
IGY0NTUwNzE3MmI3NmJhZjA2YWIwZTQ0ZWQxNWNlMzMwNmFkNDgxOGEuLjZjMTFjOGRmNGI2NWE3
OTAwYWRkYzc0NmFhOWEwZWU3Nzk0MTg2MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQKQEAg
LTIsMTEgKzIsMTEgQEAKIFBBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggYW5k
IGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJl
IGlzIG5vIGNvbnRleHQgYXR0YWNoZWQuIAogUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRo
ZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdvcmtz
IHdoZW4gdGhlcmUgaXMgYSAyZCBjb250ZXh0IGF0dGFjaGVkLiAKIFBBU1MgVmVyaWZ5IHRoYXQg
d3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVl
bkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIGEgd2ViZ2wgY29udGV4dCBhdHRhY2hlZC4gCi1G
QUlMIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUg
b2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0aGF0IHdyaXRp
bmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52
YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBldmVuIHdoZW4gbm90IGNoYW5naW5nIHRoZSB2YWx1ZSBv
ZiB0aGUgYXR0cmlidXRlLiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBp
cyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRl
ZmluZWQpCitQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBh
dHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiAKK1BB
U1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBv
ZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGV2ZW4gd2hlbiBub3Qg
Y2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuIAogUEFTUyBWZXJpZnkgdGhhdCBy
ZXNpemluZyBhIDJkIGNvbnRleHQgcmVzZXRzIGl0cyBzdGF0ZS4gCiBQQVNTIFZlcmlmeSB0aGF0
IHNldHRpbmcgdGhlIHNpemUgb2YgYSAyZCBjb250ZXh0IHRvIHRoZSBzYW1lIHNpemUgaXQgYWxy
ZWFkeSBoYWQgcmVzZXRzIGl0cyBzdGF0ZS4gCi1GQUlMIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFu
IE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgMmQgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6
ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiBwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0aGF0IHJlc2l6
aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgd2ViZ2wgY29udGV4dCBwcm9wYWdhdGVzIHRo
ZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiBwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0
aGF0IGRyYXdJbWFnZSB1c2VzIHRoZSBzaXplIG9mIHRoZSBmcmFtZSBhcyB0aGUgaW50aW5zaWMg
c2l6ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcy4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3Jl
ZW5DYW52YXMgd2l0aCBhIDJkIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRz
IHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25vdXNseS4gCitQQVNTIFZlcmlmeSB0aGF0IHJl
c2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgd2ViZ2wgY29udGV4dCBwcm9wYWdhdGVz
IHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiAK
K1BBU1MgVmVyaWZ5IHRoYXQgZHJhd0ltYWdlIHVzZXMgdGhlIHNpemUgb2YgdGhlIGZyYW1lIGFz
IHRoZSBpbnRpbnNpYyBzaXplIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzLiAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4t
Y2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRy
b2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQK
aW5kZXggNGY0MmU1MDc0MjgyODBhMmVhMTlmNzYzY2Y4Yzk2MTlhZTViYjMwNS4uMjk2MDQ4NWI3
YjZhZDZmNzA2MmRlZjlmZTdiNzllNWNiNzRiODNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVu
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEs
NSBAQAogCi1GQUlMIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHBs
YWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
SW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xk
ZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0
aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGhhcyBh
bHJlYWR5IHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRocm93cyBhbiBleGNlcHRpb24gcGxhY2Vo
b2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQg
Y2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0
aW9uIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxh
Y2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1Mg
VGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgCitQQVNTIFRlc3QgdGhh
dCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhhdCBoYXMgYWxy
ZWFkeSB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0aHJvd3MgYW4gZXhjZXB0aW9uIAorUEFTUyBU
ZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3Mg
YW4gZXhjZXB0aW9uIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zm
c2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1j
YW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJv
bC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQKaW5kZXggMmNkM2RiNGIyNzZkYzFjMTFkMWVj
ZGIwNDhiM2I3OTA5M2VlZTBkYS4uMzNiODUzMmNiMmUwMDQxNGE2ZDU0YTZkYTc5YWU3NmVhZjQ2
NTYzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90
aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9m
ZnNjcmVlbi53LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBUZXN0IHRoYXQg
YW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCB3aGVuIGl0IGlzIHRyYW5zZmVycmVkIHRv
IGEgd29ya2VyIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCkn
LCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkK
LUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZh
cyB0aGF0IGlzIHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRvIGFuIE9mZnNjcmVlbkNhbnZhcyB0
aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJy
ZWQgdG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMg
bm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZp
bmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0
d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9mZnNjcmVlbkNh
bnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zm
c2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMg
Z2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0
aCBhbmQgaGVpZ2h0IHdoZW4gaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgCitQQVNTIFRl
c3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhhdCBp
cyB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0byBhbiBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGFu
IGV4Y2VwdGlvbiwgd2hlbiB0aGUgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRvIGEg
d29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9mZnNjcmVl
bkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395666</attachid>
            <date>2020-04-07 03:44:05 -0700</date>
            <delta_ts>2020-04-27 03:21:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200407114403.patch</filename>
            <type>text/plain</type>
            <size>38641</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRiZGEzMGEwYThiYzc3
OWM1NDA3ZTllZmJhODlmNGE0NjhjZjQwZi4uYzE4NTAxZDcxMDZiNjA3MWQxNWQ3OTZlMzgwNDdi
ZmUxYWUxYTIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52
YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAxOS0xMC0wNCAgQ2hyaXMgTG9y
ZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGFu
ZCBjYW5jZWxBbmltYXRpb25GcmFtZSBzaG91bGQgYmUgcHJlc2VudCBvbiBEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApp
bmRleCAzNTQ1NjE2NzE4YzI1YWEwOTk5MzY4ZDY4ZTJhOTgxMDI3ZmYwOWQyLi5jNDkxYzc4OWVi
MTg2MWU2NzVmYjNiYzAwM2UzMjk4YjIyNDc1OGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydERpY3Rpb25hcnkuaCIK
ICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJl
bmRlckhUTUxDYW52YXMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpAQCAt
MTY1LDcgKzE2Niw3IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmNhblN0YXJ0U2VsZWN0aW9u
KCkgY29uc3QKIAogRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdo
dCh1bnNpZ25lZCB2YWx1ZSkKIHsKLSAgICBpZiAobV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNQ
bGFjZWhvbGRlcigpKQorICAgIGlmIChpc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKICAgICBzZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhlaWdodEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcihs
aW1pdFRvT25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVsdEhlaWdodCkpKTsKICAgICBy
ZXR1cm4geyB9OwpAQCAtMTczLDcgKzE3NCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxDYW52
YXNFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgdmFsdWUpCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+
IEhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1ZSkKIHsKLSAgICBpZiAo
bV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNQbGFjZWhvbGRlcigpKQorICAgIGlmIChpc0NvbnRy
b2xsZWRCeU9mZnNjcmVlbigpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IgfTsKICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdpZHRo
QXR0ciwgQXRvbVN0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVl
LCBkZWZhdWx0V2lkdGgpKSk7CiAgICAgcmV0dXJuIHsgfTsKQEAgLTUzNCw3ICs1MzUsNyBAQCB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpkaWREcmF3KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIAog
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQoKQogewotICAgIGlmIChtX2lnbm9yZVJlc2V0
KQorICAgIGlmIChtX2lnbm9yZVJlc2V0IHx8IGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgaGFkSW1hZ2VCdWZmZXIgPSBoYXNDcmVhdGVkSW1h
Z2VCdWZmZXIoKTsKQEAgLTczNiw2ICs3MzcsMjQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENh
bnZhc0VsZW1lbnQ6OnRvQmxvYihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWYK
ICAgICByZXR1cm4geyB9OwogfQogCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCitFeGNl
cHRpb25PcjxSZWY8T2Zmc2NyZWVuQ2FudmFzPj4gSFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7Cisg
ICAgaWYgKG1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH07CisKKyAgICBhdXRvIGNhbnZhcyA9IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKGNv
bnRleHQsIG1ha2VXZWFrUHRyKCp0aGlzKSk7CisgICAgbV9jb250ZXh0ID0gbWFrZVVuaXF1ZTxQ
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ+KCp0aGlzKTsKKworI2lmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKKyAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21w
b3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIGNhbnZhcy4KKyAgICBpbnZhbGlkYXRl
U3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CisjZW5kaWYKKworICAgIHJldHVybiBjYW52YXM7
Cit9CisjZW5kaWYKKwogUmVmUHRyPEltYWdlRGF0YT4gSFRNTENhbnZhc0VsZW1lbnQ6OmdldElt
YWdlRGF0YSgpCiB7CiAjaWYgRU5BQkxFKFdFQkdMKQpAQCAtOTEwLDggKzkyOSwxNyBAQCB2b2lk
IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAKIHZvaWQgSFRN
TENhbnZhc0VsZW1lbnQ6OnNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5KHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIpCiB7CisgICAgSW50U2l6ZSBvbGRTaXplID0gc2l6ZSgp
OwogICAgIG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyID0gdHJ1ZTsKICAgICBzZXRJbWFnZUJ1ZmZl
cihXVEZNb3ZlKGJ1ZmZlcikpOworCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkg
JiYgb2xkU2l6ZSAhPSBzaXplKCkpIHsKKyAgICAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbih3aWR0aEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcih3aWR0aCgpKSk7CisgICAg
ICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0ciwgQXRvbVN0
cmluZzo6bnVtYmVyKGhlaWdodCgpKSk7CisgICAgICAgIG5vdGlmeU9ic2VydmVyc0NhbnZhc1Jl
c2l6ZWQoKTsKKyAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kUmVuZGVyZXJzRm9yU3VidHJlZSgp
OworICAgIH0KKwogICAgIGRpZERyYXcoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSgpKSk7
CiB9CiAKQEAgLTk0NSw0ICs5NzMsOSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNv
cGllZEltYWdlKCkKICAgICBtX2RpZENsZWFySW1hZ2VCdWZmZXIgPSBmYWxzZTsKIH0KIAorYm9v
bCBIVE1MQ2FudmFzRWxlbWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSBjb25zdAorewor
ICAgIHJldHVybiBtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA0MjEzNGExMjI5
NDE0OTZiZjMxYmNkZDc5YzZiYzVjMzkxYTc4YTQ1Li5iNWM4YjJjMzgxMTZjNDgzODEzMzU1Yzcw
MTc5OTIwZGIxNmM1YmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgSW1hZ2VEYXRhOwog
Y2xhc3MgTWVkaWFTYW1wbGU7CiBjbGFzcyBNZWRpYVN0cmVhbTsKK2NsYXNzIE9mZnNjcmVlbkNh
bnZhczsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiBjbGFzcyBHUFVDYW52YXND
b250ZXh0Owogc3RydWN0IFVuY2FjaGVkU3RyaW5nOwpAQCAtOTYsNiArOTcsOSBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVS
TChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25zdCBT
dHJpbmcmIG1pbWVUeXBlKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB0b0Jsb2IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFJlZjxCbG9iQ2FsbGJhY2s+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykK
KyAgICBFeGNlcHRpb25PcjxSZWY8T2Zmc2NyZWVuQ2FudmFzPj4gdHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworI2VuZGlmCiAKICAgICAvLyBVc2Vk
IGZvciByZW5kZXJpbmcKICAgICB2b2lkIGRpZERyYXcoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7
CkBAIC0xMjgsNiArMTMyLDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHZvaWQgc2V0TWF4UGl4ZWxNZW1vcnlGb3JUZXN0aW5nKHNpemVfdCk7CiAKKyAgICBib29sIGlz
Q29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFRNTENhbnZh
c0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKaW5kZXggNjlmMGE3MWU0M2UzNmExODRiNDg4
MmRkN2NlZWY3ZGYxOWJiODFiYi4uNzJkZWFjZWI1OGUyN2RiMjA2YjliMGQwODNmM2IyZTgxZDE4
MzVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKQEAgLTQ5
LDYgKzQ5LDcgQEAgdHlwZWRlZiAoCiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0cmlu
ZyB0b0RhdGFVUkwob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5
KTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRp
b25dIHZvaWQgdG9CbG9iKEJsb2JDYWxsYmFjayBjYWxsYmFjaywgb3B0aW9uYWwgRE9NU3RyaW5n
IHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKKyAgICBbQ29uZGl0aW9uYWw9T0ZGU0NSRUVO
X0NBTlZBUywgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRp
b25dIE9mZnNjcmVlbkNhbnZhcyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOwogCiAgICAg
W0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgQ2FsbFdpdGg9RG9jdW1lbnQsIE1heVRocm93RXhj
ZXB0aW9uLCBOZXdPYmplY3RdIE1lZGlhU3RyZWFtIGNhcHR1cmVTdHJlYW0ob3B0aW9uYWwgZG91
YmxlIGZyYW1lUmVxdWVzdFJhdGUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2Fu
dmFzLmNwcAppbmRleCA2YmRiZTJmMzYyYzk3MzhhYzZjY2QwNmU2YTc3NmFhMTMxOGVlNTcwLi45
MGMzMjNiYTIzNmYzYTc5NjBhN2RjZGYzNzhhMWYxMWY3MWNiMjYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBAIC0zMCwxMSArMzAsMTQgQEAKIAogI2luY2x1ZGUg
IkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKKyNp
bmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgiCisj
aW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5j
bHVkZSAiT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiCisjaW5jbHVkZSAiUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgpAQCAtNDMsMTAgKzQ2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE9mZnNjcmVlbkNhbnZhcyk7CiAKLURldGFj
aGVkT2Zmc2NyZWVuQ2FudmFzOjpEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcyhzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplLCBib29sIG9yaWdp
bkNsZWFuKQorRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OkRldGFjaGVkT2Zmc2NyZWVuQ2FudmFz
KHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIsIGNvbnN0IEludFNpemUmIHNp
emUsIGJvb2wgb3JpZ2luQ2xlYW4sIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiYgcGxhY2Vo
b2xkZXJDYW52YXMpCiAgICAgOiBtX2J1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpCiAgICAgLCBtX3Np
emUoc2l6ZSkKICAgICAsIG1fb3JpZ2luQ2xlYW4ob3JpZ2luQ2xlYW4pCisgICAgLCBtX3BsYWNl
aG9sZGVyQ2FudmFzKFdURk1vdmUocGxhY2Vob2xkZXJDYW52YXMpKQogewogfQogCkBAIC01NSw2
ICs1OSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IERldGFjaGVkT2Zmc2NyZWVu
Q2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKQogICAgIHJldHVybiBXVEZNb3ZlKG1fYnVmZmVyKTsK
IH0KIAorV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6
OnRha2VQbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAgcmV0dXJuIFdURk1vdmUobV9wbGFjZWhv
bGRlckNhbnZhcyk7Cit9CisKIFJlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVuc2lnbmVkIHdpZHRoLCB1
bnNpZ25lZCBoZWlnaHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2Fu
dmFzKGNvbnRleHQsIHdpZHRoLCBoZWlnaHQpKTsKQEAgLTYyLDE0ICs3MSwyNyBAQCBSZWY8T2Zm
c2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCB1bgogCiBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8
RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+JiYgZGV0YWNoZWRDYW52YXMpCiB7Ci0gICAgUmVmPE9m
ZnNjcmVlbkNhbnZhcz4gY2xvbmUgPSBhZG9wdFJlZigqbmV3IE9mZnNjcmVlbkNhbnZhcyhjb250
ZXh0LCBkZXRhY2hlZENhbnZhcy0+c2l6ZSgpLndpZHRoKCksIGRldGFjaGVkQ2FudmFzLT5zaXpl
KCkuaGVpZ2h0KCkpKTsKKyAgICBhdXRvIGNsb25lID0gYWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5D
YW52YXMoY29udGV4dCwgZGV0YWNoZWRDYW52YXMtPnNpemUoKS53aWR0aCgpLCBkZXRhY2hlZENh
bnZhcy0+c2l6ZSgpLmhlaWdodCgpKSk7CisKICAgICBjbG9uZS0+c2V0SW1hZ2VCdWZmZXIoZGV0
YWNoZWRDYW52YXMtPnRha2VJbWFnZUJ1ZmZlcigpKTsKICAgICBpZiAoIWRldGFjaGVkQ2FudmFz
LT5vcmlnaW5DbGVhbigpKQogICAgICAgICBjbG9uZS0+c2V0T3JpZ2luVGFpbnRlZCgpOwogCisg
ICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoW2NhbnZhcyA9IGRldGFjaGVkQ2FudmFzLT50YWtl
UGxhY2Vob2xkZXJDYW52YXMoKSwgb2Zmc2NyZWVuQ2FudmFzID0gY2xvbmUucHRyKCldICgpIG11
dGFibGUgeworICAgICAgICBpZiAoY2FudmFzKQorICAgICAgICAgICAgb2Zmc2NyZWVuQ2FudmFz
LT5zZXRQbGFjZWhvbGRlckNhbnZhcyhXVEZNb3ZlKGNhbnZhcykpOworICAgIH0pOworCiAgICAg
cmV0dXJuIGNsb25lOwogfQogCitSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXZWFrUHRyPEhUTUxDYW52
YXNFbGVtZW50PiYmIGNhbnZhcykKK3sKKyAgICBhdXRvIG9mZnNjcmVlbiA9IGFkb3B0UmVmKCpu
ZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQsIGNhbnZhcy0+d2lkdGgoKSwgY2FudmFzLT5oZWln
aHQoKSkpOworICAgIG9mZnNjcmVlbi0+c2V0UGxhY2Vob2xkZXJDYW52YXMoV1RGTW92ZShjYW52
YXMpKTsKKyAgICByZXR1cm4gb2Zmc2NyZWVuOworfQorCiBPZmZzY3JlZW5DYW52YXM6Ok9mZnNj
cmVlbkNhbnZhcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCB3aWR0
aCwgdW5zaWduZWQgaGVpZ2h0KQogICAgIDogQ2FudmFzQmFzZShJbnRTaXplKHdpZHRoLCBoZWln
aHQpKQogICAgICwgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCkBAIC0xMTgs
NyArMTQwLDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYg
bmV3U2l6ZSkKICAgICByZXNldCgpOwogfQogCi1FeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJp
bmdDb250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVj
dCYgc3RhdGUsIFJlbmRlcmluZ0NvbnRleHRUeXBlIGNvbnRleHRUeXBlLCBWZWN0b3I8SlNDOjpT
dHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpCitFeGNlcHRpb25PcjxPcHRpb25hbDxP
ZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0Pj4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpT
Qzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0VHlw
ZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQogewogICAg
IGlmIChtX2RldGFjaGVkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IgfTsKQEAgLTEyNiwyMiArMTQ4LDIyIEBAIEV4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRl
cmluZ0NvbnRleHQ+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xvYmFsCiAg
ICAgaWYgKGNvbnRleHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpfMmQpIHsKICAgICAg
ICAgaWYgKG1fY29udGV4dCkgewogICAgICAgICAgICAgaWYgKCFpczxPZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwotICAgICAgICAgICAgcmV0dXJuIHsgUmVm
UHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH07CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9OworICAgICAgICAgICAgcmV0dXJuIHsg
eyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfSB9OwogICAg
ICAgICB9CiAKICAgICAgICAgbV9jb250ZXh0ID0gbWFrZVVuaXF1ZTxPZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ+KCp0aGlzKTsKICAgICAgICAgaWYgKCFtX2NvbnRleHQpCi0gICAg
ICAgICAgICByZXR1cm4geyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
PiB7IG51bGxwdHIgfSB9OworICAgICAgICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9
OwogCi0gICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1f
Y29udGV4dCkgfSB9OworICAgICAgICByZXR1cm4geyB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRD4oKm1fY29udGV4dCkgfSB9IH07CiAgICAgfQogI2lmIEVOQUJMRShXRUJHTCkKICAg
ICBpZiAoY29udGV4dFR5cGUgPT0gUmVuZGVyaW5nQ29udGV4dFR5cGU6OldlYmdsKSB7CiAgICAg
ICAgIGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgICAgIGlmICghaXM8V2ViR0xSZW5kZXJpbmdD
b250ZXh0PigqbV9jb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29u
dGV4dCkgfSB9OworICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1f
Y29udGV4dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8V2ViR0xSZW5kZXJp
bmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQp
IH0gfSB9OworICAgICAgICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9OwogICAgICAg
ICB9CiAKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUudm0o
KSk7CkBAIC0xNTAsMTMgKzE3MiwxMyBAQCBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdD
b250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbAogCiAgICAg
ICAgIG1fY29udGV4dCA9IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSgqdGhpcywg
YXR0cmlidXRlcywgIndlYmdsIik7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAg
ICAgcmV0dXJuIHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyBudWxscHRyIH0gfTsK
KyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKIAotICAgICAgICByZXR1
cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8
V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
KCptX2NvbnRleHQpIH0gfSB9OwogICAgIH0KICNlbmRpZgogCi0gICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciB9OwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VCaXRtYXA+PiBPZmZzY3JlZW5DYW52
YXM6OnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpCkBAIC0yNTgsNiArMjgwLDcgQEAgdm9pZCBPZmZz
Y3JlZW5DYW52YXM6OmNvbnZlcnRUb0Jsb2IoSW1hZ2VFbmNvZGVPcHRpb25zJiYgb3B0aW9ucywg
UmVmPERlZmVycmVkUHIKIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKIHsKICAgICBjbGVhckNvcGllZEltYWdlKCk7CisgICAgc2NoZWR1bGVDb21t
aXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CiAgICAgbm90aWZ5T2JzZXJ2ZXJzQ2FudmFzQ2hhbmdl
ZChyZWN0KTsKIH0KIApAQCAtMzAwLDcgKzMyMyw2NCBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNo
ZWRPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6ZGV0YWNoKCkKIAogICAgIG1fZGV0
YWNoZWQgPSB0cnVlOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8RGV0YWNoZWRPZmZzY3JlZW5D
YW52YXM+KHRha2VJbWFnZUJ1ZmZlcigpLCBzaXplKCksIG9yaWdpbkNsZWFuKCkpOworICAgIHJl
dHVybiBtYWtlVW5pcXVlPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPih0YWtlSW1hZ2VCdWZmZXIo
KSwgc2l6ZSgpLCBvcmlnaW5DbGVhbigpLCBXVEZNb3ZlKG1fcGxhY2Vob2xkZXJDYW52YXMpKTsK
K30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFBsYWNlaG9sZGVyQ2FudmFzKFdlYWtQdHI8
SFRNTENhbnZhc0VsZW1lbnQ+JiYgY2FudmFzKQoreworICAgIEFTU0VSVCghbV9jb250ZXh0KTsK
KyAgICBtX3BsYWNlaG9sZGVyQ2FudmFzID0gY2FudmFzOworfQorCit2b2lkIE9mZnNjcmVlbkNh
bnZhczo6cHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKQoreworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXNdICgpIG11dGFibGUgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29t
bWl0TG9jayk7CisgICAgICAgIGlmICghbV9wbGFjZWhvbGRlckNhbnZhcyB8fCAhbV9wZW5kaW5n
Q29tbWl0RGF0YSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKEZsb2F0U2l6ZShtX3Bl
bmRpbmdDb21taXREYXRhLT5zaXplKCkpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsK
KyAgICAgICAgYnVmZmVyLT5wdXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJl
bXVsdGlwbGllZCwgKm1fcGVuZGluZ0NvbW1pdERhdGEsIEludFJlY3QoSW50UG9pbnQoKSwgbV9w
ZW5kaW5nQ29tbWl0RGF0YS0+c2l6ZSgpKSk7CisgICAgICAgIG1fcGxhY2Vob2xkZXJDYW52YXMt
PnNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5KFdURk1vdmUoYnVmZmVyKSk7CisgICAgICAgIG1f
cGVuZGluZ0NvbW1pdERhdGEgPSBudWxscHRyOworICAgIH0pOworfQorCit2b2lkIE9mZnNjcmVl
bkNhbnZhczo6Y29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAgYXV0byogaW1hZ2VC
dWZmZXIgPSBidWZmZXIoKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBGSVhNRTogVHJhbnNmZXIgdGV4dHVyZSBvdmVyIGlmIHdlJ3JlIHVzaW5nIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgaWYgKG1fY29udGV4dCAmJiAobV9jb250ZXh0LT5p
c1dlYkdMKCkgfHwgbV9jb250ZXh0LT5pc0FjY2VsZXJhdGVkKCkpKQorICAgICAgICBtX2NvbnRl
eHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCk7CisKKyAgICBpZiAoaXNNYWluVGhy
ZWFkKCkpIHsKKyAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXJDYW52YXMpIHsKKyAgICAgICAgICAg
IGlmIChhdXRvIGJ1ZmZlckNvcHkgPSBpbWFnZUJ1ZmZlci0+Y29weVJlY3RUb0J1ZmZlcihGbG9h
dFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbG9yU3Bh
Y2U6OlNSR0IsIGltYWdlQnVmZmVyLT5jb250ZXh0KCkpKQorICAgICAgICAgICAgICAgIG1fcGxh
Y2Vob2xkZXJDYW52YXMtPnNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5KFdURk1vdmUoYnVmZmVy
Q29weSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fY29tbWl0TG9jayk7CisKKyAgICBib29sIHNob3VsZFB1c2hCdWZm
ZXIgPSAhbV9wZW5kaW5nQ29tbWl0RGF0YTsKKyAgICBtX3BlbmRpbmdDb21taXREYXRhID0gaW1h
Z2VCdWZmZXItPmdldEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBs
aWVkLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSk7CisK
KyAgICBpZiAoc2hvdWxkUHVzaEJ1ZmZlcikKKyAgICAgICAgcHVzaEJ1ZmZlclRvUGxhY2Vob2xk
ZXIoKTsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnNjaGVkdWxlQ29tbWl0VG9QbGFjZWhv
bGRlckNhbnZhcygpCit7CisgICAgaWYgKCFtX2hhc1NjaGVkdWxlZENvbW1pdCkgeworICAgICAg
ICBhdXRvJiBjb250ZXh0ID0gKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAgICAgbV9o
YXNTY2hlZHVsZWRDb21taXQgPSBjb250ZXh0LnBvc3RUYXNrVG8oY29udGV4dC5jb250ZXh0SWRl
bnRpZmllcigpLCBbdGhpc10gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgICAgICAg
ICBtX2hhc1NjaGVkdWxlZENvbW1pdCA9IGZhbHNlOworICAgICAgICAgICAgY29tbWl0VG9QbGFj
ZWhvbGRlckNhbnZhcygpOworICAgICAgICB9KTsKKyAgICB9CiB9CiAKIENTU1ZhbHVlUG9vbCYg
T2Zmc2NyZWVuQ2FudmFzOjpjc3NWYWx1ZVBvb2woKQpAQCAtMzUwLDYgKzQzMCw3IEBAIHZvaWQg
T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCgpCiAgICAgY2xlYXJDb3BpZWRJbWFnZSgpOwogCiAgICAg
bm90aWZ5T2JzZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAgIHNjaGVkdWxlQ29tbWl0VG9QbGFj
ZWhvbGRlckNhbnZhcygpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L09mZnNjcmVlbkNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMu
aAppbmRleCAzZTVlMzBhNTc2ZTMxYTkzMmE2ZjE0NmE5N2ViZjA4ZGU5YTI1ZjM5Li42NTE1Njcw
ZTczYWU1ZGE3NTU5NjU0NTEzYmEyMjdmNjVhYTIwZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zm
c2NyZWVuQ2FudmFzLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFi
bGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsNyArNDUsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0OwogY2xhc3MgQ1NTVmFsdWVQ
b29sOwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CiBj
bGFzcyBJbWFnZUJpdG1hcDsKK2NsYXNzIEltYWdlRGF0YTsKIGNsYXNzIE9mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dDsKIApAQCAt
NTgsMTYgKzYxLDE4IEBAIGNsYXNzIERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcyk7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMoc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmLCBjb25zdCBJbnRTaXplJiwgYm9vbCBvcmlnaW5D
bGVhbik7CisgICAgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiYmLCBjb25zdCBJbnRTaXplJiwgYm9vbCBvcmlnaW5DbGVhbiwgV2Vha1B0cjxIVE1M
Q2FudmFzRWxlbWVudD4mJiBwbGFjZWhvbGRlckNhbnZhcyk7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXI+IHRha2VJbWFnZUJ1ZmZlcigpOwogICAgIGNvbnN0IEludFNpemUmIHNp
emUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICBib29sIG9yaWdpbkNsZWFuKCkgY29u
c3QgeyByZXR1cm4gbV9vcmlnaW5DbGVhbjsgfQorICAgIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1l
bnQ+IHRha2VQbGFjZWhvbGRlckNhbnZhcygpOwogCiBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlcj4gbV9idWZmZXI7CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgYm9v
bCBtX29yaWdpbkNsZWFuOworICAgIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IG1fcGxhY2Vo
b2xkZXJDYW52YXM7CiB9OwogCiBjbGFzcyBPZmZzY3JlZW5DYW52YXMgZmluYWwgOiBwdWJsaWMg
UmVmQ291bnRlZDxPZmZzY3JlZW5DYW52YXM+LCBwdWJsaWMgQ2FudmFzQmFzZSwgcHVibGljIEV2
ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIgewpAQCAtODYsNiArOTEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUmVmPE9mZnNjcmVl
bkNhbnZhcz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1bnNpZ25lZCB3aWR0aCwg
dW5zaWduZWQgaGVpZ2h0KTsKICAgICBzdGF0aWMgUmVmPE9mZnNjcmVlbkNhbnZhcz4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3Jl
ZW5DYW52YXM+JiYpOworICAgIHN0YXRpYyBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiYpOwogICAg
IHZpcnR1YWwgfk9mZnNjcmVlbkNhbnZhcygpOwogCiAgICAgdW5zaWduZWQgd2lkdGgoKSBjb25z
dCBmaW5hbDsKQEAgLTk1LDcgKzEwMSw3IEBAIHB1YmxpYzoKIAogICAgIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQqIHJlbmRlcmluZ0NvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbnRl
eHQuZ2V0KCk7IH0KIAotICAgIEV4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+
IGdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFJlbmRlcmluZ0NvbnRleHRUeXBlLCBW
ZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOworICAgIEV4Y2Vw
dGlvbk9yPE9wdGlvbmFsPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+PiBnZXRDb250ZXh0KEpT
Qzo6SlNHbG9iYWxPYmplY3QmLCBSZW5kZXJpbmdDb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ry
b25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKTsKICAgICBFeGNlcHRpb25PcjxSZWZQdHI8
SW1hZ2VCaXRtYXA+PiB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsKICAgICB2b2lkIGNvbnZlcnRU
b0Jsb2IoSW1hZ2VFbmNvZGVPcHRpb25zJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCkBA
IC0xMDksNiArMTE1LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuRGV0YWNoKCkgY29uc3Q7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPiBkZXRhY2goKTsKIAor
ICAgIHZvaWQgY29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworCiAgICAgQ1NTVmFsdWVQb29s
JiBjc3NWYWx1ZVBvb2woKTsKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKQEAgLTEzOCw2
ICsxNDYsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY2xlYXJDb3BpZWRJbWFnZSgpIGNvbnN0
OwogCisgICAgdm9pZCBzZXRQbGFjZWhvbGRlckNhbnZhcyhXZWFrUHRyPEhUTUxDYW52YXNFbGVt
ZW50PiYmKTsKKyAgICB2b2lkIHB1c2hCdWZmZXJUb1BsYWNlaG9sZGVyKCk7CisgICAgdm9pZCBz
Y2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKKwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAKICAgICAvLyBtX2hhc0NyZWF0
ZWRJbWFnZUJ1ZmZlciBtZWFucyB3ZSB0cmllZCB0byBtYWxsb2MgdGhlIGJ1ZmZlci4gV2UgZGlk
bid0IG5lY2Vzc2FyaWx5IGdldCBpdC4KQEAgLTE0Niw2ICsxNTgsMTIgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fZGV0YWNoZWQgeyBmYWxzZSB9OwogCiAgICAgbXV0YWJsZSBSZWZQdHI8SW1hZ2U+
IG1fY29waWVkSW1hZ2U7CisKKyAgICBib29sIG1faGFzU2NoZWR1bGVkQ29tbWl0IHsgZmFsc2Ug
fTsKKyAgICBXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiBtX3BsYWNlaG9sZGVyQ2FudmFzOwor
CisgICAgbXV0YWJsZSBMb2NrIG1fY29tbWl0TG9jazsKKyAgICBSZWZQdHI8SW1hZ2VEYXRhPiBt
X3BlbmRpbmdDb21taXREYXRhOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAKaW5kZXggODZkNzg0YTM1MWQ1ODRjZTZlZjNhNjk5MmU3ZWMyMDZlNjhkOTYwMC4uZjAyYjM3
YzkyYmI0YjlhNTI5ZWEwMTQ0NGE2Y2QzYTMwZTFlYTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCkBAIC00OCw2ICs0OCwxMiBAQCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6Ok9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChDYW52YXNCYXNlJgog
CiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6On5PZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQoKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQoKQoreworICAgIE9mZnNjcmVlbkNhbnZhcyYgb2Zmc2NyZWVu
Q2FudmFzID0gZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzPihjYW52YXNCYXNlKCkpOworICAgIG9m
ZnNjcmVlbkNhbnZhcy5jb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4
IGNjYjE2ZTkyY2QyYmQwNGNhNTY4YmNmNjE2MzI3OTJlNjk0OTMzZTAuLmVlOTI5YWYyYjI5ZGFl
ODI2M2RlMWRhZjYwZGQxNjQ1NDI1N2U5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
CkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzT2Zmc2NyZWVuMmQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBPZmZzY3JlZW5DYW52YXMmIGNhbnZh
cygpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PE9mZnNjcmVlbkNhbnZhcz4oY2FudmFzQmFzZSgp
KTsgfQorCisgICAgdm9pZCBjb21taXQoKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCmluZGV4IDA0ZWM2YTc1MTliMTRhNzVhMTI1
NjRmNWU5ZGViOTEwZWM4YmYxMzkuLmQ3ZmVjODc5OTM2OTA0NGJkYTcyZGUwZWI1YzUzZDYzN2Fl
MDI3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbApAQCAtMjcsMTQgKzI3LDEz
IEBACiAgICAgQ3VzdG9tSXNSZWFjaGFibGUsCiAgICAgRW5hYmxlZEF0UnVudGltZT1PZmZzY3Jl
ZW5DYW52YXMsCiAgICAgQ29uZGl0aW9uYWw9T0ZGU0NSRUVOX0NBTlZBUywKLSAgICBFeHBvc2Vk
PShXaW5kb3cpLCAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzIC0gc2hvdWxkIGJlIFdpbmRvdyxX
b3JrZXIKKyAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBKU0dlbmVyYXRlVG9KU09i
amVjdCwKICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAvLyBDYWxsVHJhY2luZ0NhbGxi
YWNrPXJlY29yZENhbnZhc0FjdGlvbiwgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4KIF0gaW50
ZXJmYWNlIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIE9mZnNjcmVlbkNhbnZhcyBjYW52YXM7Ci0gICAgLy8gRklYTUU6IE9mZnNjcmVl
bkNhbnZhcy4KLSAgICAvLyB2b2lkIGNvbW1pdCgpOworICAgIHZvaWQgY29tbWl0KCk7CiAKICAg
ICAvLyBJbnNwZWN0b3Itb25seS4KICAgICAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggMDkyYzRhZWY2MGE1NTEzZjQ3NmM3ZDcxNDMzZWJlNzFhZmE3
ODFkNC4uMWVjN2EyNGVkZjQ0NTIxMWJiYmE5OTQyZTgxNDZiYjFlN2Y2ODRjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmlu
Z0NvbnRleHQuY3BwCkBAIC0yNiw2ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIgogCisjaWYgRU5BQkxFKE9GRlND
UkVFTl9DQU5WQVMpCisKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUg
Ik9mZnNjcmVlbkNhbnZhcy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM3LDQgKzQxLDE0IEBAIFBsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dDo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZh
cykKIHsKIH0KIAorSFRNTENhbnZhc0VsZW1lbnQqIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dDo6Y2FudmFzKCkgY29uc3QKK3sKKyAgICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOworICAg
IGlmICghaXM8SFRNTENhbnZhc0VsZW1lbnQ+KGJhc2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gJmRvd25jYXN0PEhUTUxDYW52YXNFbGVtZW50PihiYXNlKTsKIH0KKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNl
aG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYzM0OGU1MTg5NTJjYjlkNDE1YzZiZDE3
OTVmMjE2ZGNiMTY1ZDI1OS4uNjQ1MDkxNDU5ZGQwMWNjMmE3OTc3ZGMwMDNiNDUyNjVkZTViYTdk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xk
ZXJSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTI1LDE1ICsyNSwyMSBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE9mZnNjcmVlbkNh
bnZhczsKKwogY2xhc3MgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVibGlj
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KTsKIHB1YmxpYzoKICAgICBQbGFjZWhvbGRlclJlbmRl
cmluZ0NvbnRleHQoQ2FudmFzQmFzZSYpOwogCisgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZh
cygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGJvb2wgaXNQbGFjZWhvbGRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIH07CkBAIC00MSwzICs0Nyw1IEBAIHByaXZhdGU6CiB9CiAK
IFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FOVkFTUkVOREVSSU5HQ09OVEVYVChXZWJDb3JlOjpQ
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQsIGlzUGxhY2Vob2xkZXIoKSkKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAwNDNkN2Y2NzQzN2MyNjFlZjEwMmJiNjIy
ZjQ3NDdhMTkyY2MyNzhlLi5iZjM0ZDc4YjhiYTBhMTZlNWUzMjM4NWIxNmQzYTAyOGQ4YjE2MGMw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0w
Mi0xMyAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IENhbnZhcy50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBhbmQgT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNvbW1pdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29m
ZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVk
LnR4dDoKKwogMjAyMC0wMy0yNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5j
b20+CiAKICAgICAgICAgU3luYyB3cHQvZG9teHBhdGggYW5kIHJlLXN5bmMgd3B0L2Nzcy9jc3Nv
bS12aWV3IGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dAppbmRleCA2ZjFjNzA1
MGU1ZTgyOGMzZjMyM2YyOTVmYjFkMmE0ZmVjOGMwMDdjLi41YjkzOGEyZjcwN2JkNzVmN2UwNjRk
NmYyMWZiMTAyOTJkMTEyMjRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0NjM6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBH
cmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0ZWQgMjU1IGJ1dCBnb3Qg
MAogCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNo
ZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gcGxhY2Vob2xkZXIudHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBjb21taXQg
b24gYW4gT2Zmc2NyZWVuQ2FudmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVkIGZyb20gYSBIVE1M
Q2FudmFzRWxlbWVudCBpcyBhIG5vb3AuIGN0eC5jb21taXQgaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAnY3R4LmNvbW1pdCgpJywgJ2N0eC5jb21taXQnIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0
aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMg
dG8gaXRzIHBsYWNlaG9sZGVyLiAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFu
IE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZh
c0VsZW1lbnQgaXMgYSBub29wLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dAppbmRleCA0
MzQzMzJjZTUxYWJmZTM3MTJkMGUyNDk1OGE4MDUyODFhNjA3MDc0Li5jNDIxOGVjYWMyNzNkMDU0
N2Y1ZTQ5YzNkMTIzZmRhZjgzZjNlYWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKIAotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMn
cyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBsYWNlaG9s
ZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3Bs
YWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGNh
bGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRz
IHBsYWNlaG9sZGVyLiAKIFBBU1MgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNj
cmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1l
bnQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpbiBhIHdvcmtlci4gCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90
aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQt
ZXhwZWN0ZWQudHh0CmluZGV4IGJkOWFhMGUxNjc3ZTk0OTQ4MGIyMjMzMTIyMzhmNDcwOTllZjEz
NzcuLmM1N2EyOTNlYzRhOWJkNjhjNmQ5MWY5YWJjODI1NTRjNGRmODhmNmEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNh
bnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5n
ZXRjb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBUZXN0IHRoYXQg
Z2V0Q29udGV4dCB3aXRoIHVuLXN1cHBvcnRlZCBzdHJpbmcgdGhyb3dzIGEgVHlwZUVycm9yLiAK
IEZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMg
Y29ycmVjdCByZXN1bHRzIEFyZ3VtZW50IDEgKCdjb250ZXh0VHlwZScpIHRvIE9mZnNjcmVlbkNh
bnZhcy5nZXRDb250ZXh0IG11c3QgYmUgb25lIG9mOiAiMmQiLCAid2ViZ2wiCi1GQUlMIFRlc3Qg
dGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5z
IG51bGwgdGhlIHNlY29uZCB0aW1lIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4K
K1BBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgdHdpY2Ugd2l0aCBkaWZmZXJlbnQgY29udGV4dCB0
eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRpbWUgCiBQQVNTIFRlc3QgdGhhdCAyZGNvbnRl
eHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKIFBB
U1MgVGVzdCB0aGF0IHdlYmdsY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2lu
YWwgT2Zmc2NyZWVuQ2FudmFzIAogRkFJTCBUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEIHdpdGggYWxwaGEgZGlzYWJsZWQgbWFrZXMgdGhlIE9mZnNjcmVlbkNhbnZh
cyBvcGFxdWUgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IEdyZWVuIGNoYW5uZWwgb2YgdGhlIHBpeGVs
IGF0ICg1LCA1KSBleHBlY3RlZCAxMjcgKy8tIDIgYnV0IGdvdCAyNTUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZh
cy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5n
ZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZjIyNGNlNzRlZWE4NzhjZjc2YTEz
MzNiY2FlMWJhYTEwZmQ0ZjY2Ny4uMzlmYzJjZjlhYWRkZTdmMmRiMWIzZTJlMzM2ODllZDcwNzE3
OGNhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQKQEAg
LTEsNyArMSw3IEBACiAKIFBBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCB1bi1zdXBwb3J0
ZWQgc3RyaW5nIHRocm93cyBhIFR5cGVFcnJvci4gCi1GQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0
IHdpdGggc3VwcG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQKLUZBSUwgVGVzdCB0
aGF0IGdldENvbnRleHQgdHdpY2Ugd2l0aCBkaWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMg
bnVsbCB0aGUgc2Vjb25kIHRpbWUgVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgor
RkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBj
b3JyZWN0IHJlc3VsdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV2ViR0xSZW5kZXJpbmdDb250ZXh0
CitQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQg
dHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1lIAogUEFTUyBUZXN0IHRoYXQgMmRjb250
ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBQ
QVNTIFRlc3QgdGhhdCB3ZWJnbGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdp
bmFsIE9mZnNjcmVlbkNhbnZhcyAKIEZBSUwgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRCB3aXRoIGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBPZmZzY3JlZW5DYW52
YXMgb3BhcXVlIGFzc2VydF9hcHByb3hfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhl
bCBhdCAoNSwgNSkgZXhwZWN0ZWQgMTI3ICsvLSAyIGJ1dCBnb3QgMjU1CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52
YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBl
Y3RlZC50eHQKaW5kZXggZjQ1NTA3MTcyYjc2YmFmMDZhYjBlNDRlZDE1Y2UzMzA2YWQ0ODE4YS4u
NmMxMWM4ZGY0YjY1YTc5MDBhZGRjNzQ2YWE5YTBlZTc3OTQxODYxZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFz
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2Ny
ZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4
cGVjdGVkLnR4dApAQCAtMiwxMSArMiwxMSBAQAogUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRv
IHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdv
cmtzIHdoZW4gdGhlcmUgaXMgbm8gY29udGV4dCBhdHRhY2hlZC4gCiBQQVNTIFZlcmlmeSB0aGF0
IHdyaXRpbmcgdG8gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3Jl
ZW5DYW52YXMgd29ya3Mgd2hlbiB0aGVyZSBpcyBhIDJkIGNvbnRleHQgYXR0YWNoZWQuIAogUEFT
UyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMg
b2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgYSB3ZWJnbCBjb250ZXh0
IGF0dGFjaGVkLiAKLUZBSUwgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVp
Z2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9u
IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vo
b2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVmVy
aWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBs
YWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGV2ZW4gd2hlbiBub3QgY2hhbmdp
bmcgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lk
dGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4g
ZXhjZXB0aW9uIAorUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWln
aHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24g
ZXZlbiB3aGVuIG5vdCBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4gCiBQQVNT
IFZlcmlmeSB0aGF0IHJlc2l6aW5nIGEgMmQgY29udGV4dCByZXNldHMgaXRzIHN0YXRlLiAKIFBB
U1MgVmVyaWZ5IHRoYXQgc2V0dGluZyB0aGUgc2l6ZSBvZiBhIDJkIGNvbnRleHQgdG8gdGhlIHNh
bWUgc2l6ZSBpdCBhbHJlYWR5IGhhZCByZXNldHMgaXRzIHN0YXRlLiAKLUZBSUwgVmVyaWZ5IHRo
YXQgcmVzaXppbmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSAyZCBjb250ZXh0IHByb3BhZ2F0
ZXMgdGhlIG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHku
IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vo
b2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVmVy
aWZ5IHRoYXQgcmVzaXppbmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSB3ZWJnbCBjb250ZXh0
IHByb3BhZ2F0ZXMgdGhlIG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNo
cm9ub3VzbHkuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCkn
LCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkK
LUZBSUwgVmVyaWZ5IHRoYXQgZHJhd0ltYWdlIHVzZXMgdGhlIHNpemUgb2YgdGhlIGZyYW1lIGFz
IHRoZSBpbnRpbnNpYyBzaXplIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzLiBwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFZlcmlmeSB0aGF0IHJlc2l6
aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgMmQgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBu
ZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiAKK1BBU1Mg
VmVyaWZ5IHRoYXQgcmVzaXppbmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSB3ZWJnbCBjb250
ZXh0IHByb3BhZ2F0ZXMgdGhlIG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5
bmNocm9ub3VzbHkuIAorUEFTUyBWZXJpZnkgdGhhdCBkcmF3SW1hZ2UgdXNlcyB0aGUgc2l6ZSBv
ZiB0aGUgZnJhbWUgYXMgdGhlIGludGluc2ljIHNpemUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMu
IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFz
LnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVu
LWV4cGVjdGVkLnR4dAppbmRleCA0ZjQyZTUwNzQyODI4MGEyZWExOWY3NjNjZjhjOTYxOWFlNWJi
MzA1Li4yOTYwNDg1YjdiNmFkNmY3MDYyZGVmOWZlN2I3OWU1Y2I3NGI4M2JlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1j
YW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJv
bC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50
eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBn
ZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRo
IGFuZCBoZWlnaHQgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4o
KScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVk
KQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2Fu
dmFzIHRoYXQgaGFzIGFscmVhZHkgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdGhyb3dzIGFuIGV4
Y2VwdGlvbiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywg
J3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1G
QUlMIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRo
cm93cyBhbiBleGNlcHRpb24gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4g
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5k
ZWZpbmVkKQorUEFTUyBUZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCAK
K1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZh
cyB0aGF0IGhhcyBhbHJlYWR5IHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRocm93cyBhbiBleGNl
cHRpb24gCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
IHR3aWNlIHRocm93cyBhbiBleGNlcHRpb24gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMu
dHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dAppbmRleCAyY2QzZGI0
YjI3NmRjMWMxMWQxZWNkYjA0OGIzYjc5MDkzZWVlMGRhLi4zM2I4NTMyY2IyZTAwNDE0YTZkNTRh
NmRhNzlhZTc2ZWFmNDY1NjNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZz
Y3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zl
cmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1G
QUlMIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHdoZW4gaXQgaXMg
dHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicg
aXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxh
Y2Vob2xkZXIgY2FudmFzIHRoYXQgaXMgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdG8gYW4gT2Zm
c2NyZWVuQ2FudmFzIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gdGhlIE9mZnNjcmVlbkNhbnZh
cyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2Ny
ZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gaXRzIGFzc29jaWF0
ZWQgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIHBsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGFuIE9m
ZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0
cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgd2hlbiBpdCBpcyB0cmFuc2ZlcnJlZCB0byBhIHdv
cmtlciAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVy
IGNhbnZhcyB0aGF0IGlzIHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRvIGFuIE9mZnNjcmVlbkNh
bnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMgaXMgdHJh
bnNmZXJyZWQgdG8gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gaXRzIGFzc29j
aWF0ZWQgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397666</attachid>
            <date>2020-04-27 03:21:23 -0700</date>
            <delta_ts>2020-04-27 04:11:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200427112122.patch</filename>
            <type>text/plain</type>
            <size>39011</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRiZGEzMGEwYThiYzc3
OWM1NDA3ZTllZmJhODlmNGE0NjhjZjQwZi4uYzE4NTAxZDcxMDZiNjA3MWQxNWQ3OTZlMzgwNDdi
ZmUxYWUxYTIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52
YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAxOS0xMC0wNCAgQ2hyaXMgTG9y
ZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGFu
ZCBjYW5jZWxBbmltYXRpb25GcmFtZSBzaG91bGQgYmUgcHJlc2VudCBvbiBEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApp
bmRleCAzNTQ1NjE2NzE4YzI1YWEwOTk5MzY4ZDY4ZTJhOTgxMDI3ZmYwOWQyLi5jNDkxYzc4OWVi
MTg2MWU2NzVmYjNiYzAwM2UzMjk4YjIyNDc1OGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydERpY3Rpb25hcnkuaCIK
ICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJl
bmRlckhUTUxDYW52YXMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpAQCAt
MTY1LDcgKzE2Niw3IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmNhblN0YXJ0U2VsZWN0aW9u
KCkgY29uc3QKIAogRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdo
dCh1bnNpZ25lZCB2YWx1ZSkKIHsKLSAgICBpZiAobV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNQ
bGFjZWhvbGRlcigpKQorICAgIGlmIChpc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKICAgICBzZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhlaWdodEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcihs
aW1pdFRvT25seUhUTUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVsdEhlaWdodCkpKTsKICAgICBy
ZXR1cm4geyB9OwpAQCAtMTczLDcgKzE3NCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxDYW52
YXNFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgdmFsdWUpCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+
IEhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1ZSkKIHsKLSAgICBpZiAo
bV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNQbGFjZWhvbGRlcigpKQorICAgIGlmIChpc0NvbnRy
b2xsZWRCeU9mZnNjcmVlbigpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IgfTsKICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdpZHRo
QXR0ciwgQXRvbVN0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVl
LCBkZWZhdWx0V2lkdGgpKSk7CiAgICAgcmV0dXJuIHsgfTsKQEAgLTUzNCw3ICs1MzUsNyBAQCB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpkaWREcmF3KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIAog
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQoKQogewotICAgIGlmIChtX2lnbm9yZVJlc2V0
KQorICAgIGlmIChtX2lnbm9yZVJlc2V0IHx8IGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgaGFkSW1hZ2VCdWZmZXIgPSBoYXNDcmVhdGVkSW1h
Z2VCdWZmZXIoKTsKQEAgLTczNiw2ICs3MzcsMjQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENh
bnZhc0VsZW1lbnQ6OnRvQmxvYihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWYK
ICAgICByZXR1cm4geyB9OwogfQogCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCitFeGNl
cHRpb25PcjxSZWY8T2Zmc2NyZWVuQ2FudmFzPj4gSFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7Cisg
ICAgaWYgKG1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH07CisKKyAgICBhdXRvIGNhbnZhcyA9IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKGNv
bnRleHQsIG1ha2VXZWFrUHRyKCp0aGlzKSk7CisgICAgbV9jb250ZXh0ID0gbWFrZVVuaXF1ZTxQ
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ+KCp0aGlzKTsKKworI2lmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKKyAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21w
b3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIGNhbnZhcy4KKyAgICBpbnZhbGlkYXRl
U3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CisjZW5kaWYKKworICAgIHJldHVybiBjYW52YXM7
Cit9CisjZW5kaWYKKwogUmVmUHRyPEltYWdlRGF0YT4gSFRNTENhbnZhc0VsZW1lbnQ6OmdldElt
YWdlRGF0YSgpCiB7CiAjaWYgRU5BQkxFKFdFQkdMKQpAQCAtOTEwLDggKzkyOSwxNyBAQCB2b2lk
IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAKIHZvaWQgSFRN
TENhbnZhc0VsZW1lbnQ6OnNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5KHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIpCiB7CisgICAgSW50U2l6ZSBvbGRTaXplID0gc2l6ZSgp
OwogICAgIG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyID0gdHJ1ZTsKICAgICBzZXRJbWFnZUJ1ZmZl
cihXVEZNb3ZlKGJ1ZmZlcikpOworCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkg
JiYgb2xkU2l6ZSAhPSBzaXplKCkpIHsKKyAgICAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbih3aWR0aEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcih3aWR0aCgpKSk7CisgICAg
ICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0ciwgQXRvbVN0
cmluZzo6bnVtYmVyKGhlaWdodCgpKSk7CisgICAgICAgIG5vdGlmeU9ic2VydmVyc0NhbnZhc1Jl
c2l6ZWQoKTsKKyAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kUmVuZGVyZXJzRm9yU3VidHJlZSgp
OworICAgIH0KKwogICAgIGRpZERyYXcoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSgpKSk7
CiB9CiAKQEAgLTk0NSw0ICs5NzMsOSBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNv
cGllZEltYWdlKCkKICAgICBtX2RpZENsZWFySW1hZ2VCdWZmZXIgPSBmYWxzZTsKIH0KIAorYm9v
bCBIVE1MQ2FudmFzRWxlbWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSBjb25zdAorewor
ICAgIHJldHVybiBtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA0MjEzNGExMjI5
NDE0OTZiZjMxYmNkZDc5YzZiYzVjMzkxYTc4YTQ1Li5iNWM4YjJjMzgxMTZjNDgzODEzMzU1Yzcw
MTc5OTIwZGIxNmM1YmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgSW1hZ2VEYXRhOwog
Y2xhc3MgTWVkaWFTYW1wbGU7CiBjbGFzcyBNZWRpYVN0cmVhbTsKK2NsYXNzIE9mZnNjcmVlbkNh
bnZhczsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiBjbGFzcyBHUFVDYW52YXND
b250ZXh0Owogc3RydWN0IFVuY2FjaGVkU3RyaW5nOwpAQCAtOTYsNiArOTcsOSBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVS
TChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25zdCBT
dHJpbmcmIG1pbWVUeXBlKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB0b0Jsb2IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFJlZjxCbG9iQ2FsbGJhY2s+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykK
KyAgICBFeGNlcHRpb25PcjxSZWY8T2Zmc2NyZWVuQ2FudmFzPj4gdHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworI2VuZGlmCiAKICAgICAvLyBVc2Vk
IGZvciByZW5kZXJpbmcKICAgICB2b2lkIGRpZERyYXcoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7
CkBAIC0xMjgsNiArMTMyLDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHZvaWQgc2V0TWF4UGl4ZWxNZW1vcnlGb3JUZXN0aW5nKHNpemVfdCk7CiAKKyAgICBib29sIGlz
Q29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFRNTENhbnZh
c0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKaW5kZXggNjlmMGE3MWU0M2UzNmExODRiNDg4
MmRkN2NlZWY3ZGYxOWJiODFiYi4uNzJkZWFjZWI1OGUyN2RiMjA2YjliMGQwODNmM2IyZTgxZDE4
MzVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKQEAgLTQ5
LDYgKzQ5LDcgQEAgdHlwZWRlZiAoCiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0cmlu
ZyB0b0RhdGFVUkwob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5
KTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRp
b25dIHZvaWQgdG9CbG9iKEJsb2JDYWxsYmFjayBjYWxsYmFjaywgb3B0aW9uYWwgRE9NU3RyaW5n
IHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKKyAgICBbQ29uZGl0aW9uYWw9T0ZGU0NSRUVO
X0NBTlZBUywgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRp
b25dIE9mZnNjcmVlbkNhbnZhcyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOwogCiAgICAg
W0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgQ2FsbFdpdGg9RG9jdW1lbnQsIE1heVRocm93RXhj
ZXB0aW9uLCBOZXdPYmplY3RdIE1lZGlhU3RyZWFtIGNhcHR1cmVTdHJlYW0ob3B0aW9uYWwgZG91
YmxlIGZyYW1lUmVxdWVzdFJhdGUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2Fu
dmFzLmNwcAppbmRleCA2YmRiZTJmMzYyYzk3MzhhYzZjY2QwNmU2YTc3NmFhMTMxOGVlNTcwLi5h
ZDU0N2JmNTk4YTViNjRiM2ViNTYzODA1MjcwZGM1NzI2OWIzMTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBAIC0zMCwxMSArMzAsMTQgQEAKIAogI2luY2x1ZGUg
IkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKKyNp
bmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgiCisj
aW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5j
bHVkZSAiT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiCisjaW5jbHVkZSAiUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgpAQCAtNDMsMTAgKzQ2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE9mZnNjcmVlbkNhbnZhcyk7CiAKLURldGFj
aGVkT2Zmc2NyZWVuQ2FudmFzOjpEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcyhzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplLCBib29sIG9yaWdp
bkNsZWFuKQorRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OkRldGFjaGVkT2Zmc2NyZWVuQ2FudmFz
KHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIsIGNvbnN0IEludFNpemUmIHNp
emUsIGJvb2wgb3JpZ2luQ2xlYW4sIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiYgcGxhY2Vo
b2xkZXJDYW52YXMpCiAgICAgOiBtX2J1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpCiAgICAgLCBtX3Np
emUoc2l6ZSkKICAgICAsIG1fb3JpZ2luQ2xlYW4ob3JpZ2luQ2xlYW4pCisgICAgLCBtX3BsYWNl
aG9sZGVyQ2FudmFzKFdURk1vdmUocGxhY2Vob2xkZXJDYW52YXMpKQogewogfQogCkBAIC01NSw2
ICs1OSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IERldGFjaGVkT2Zmc2NyZWVu
Q2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKQogICAgIHJldHVybiBXVEZNb3ZlKG1fYnVmZmVyKTsK
IH0KIAorV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6
OnRha2VQbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAgcmV0dXJuIFdURk1vdmUobV9wbGFjZWhv
bGRlckNhbnZhcyk7Cit9CisKIFJlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVuc2lnbmVkIHdpZHRoLCB1
bnNpZ25lZCBoZWlnaHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2Fu
dmFzKGNvbnRleHQsIHdpZHRoLCBoZWlnaHQpKTsKQEAgLTYyLDE0ICs3MSwyNyBAQCBSZWY8T2Zm
c2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCB1bgogCiBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8
RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+JiYgZGV0YWNoZWRDYW52YXMpCiB7Ci0gICAgUmVmPE9m
ZnNjcmVlbkNhbnZhcz4gY2xvbmUgPSBhZG9wdFJlZigqbmV3IE9mZnNjcmVlbkNhbnZhcyhjb250
ZXh0LCBkZXRhY2hlZENhbnZhcy0+c2l6ZSgpLndpZHRoKCksIGRldGFjaGVkQ2FudmFzLT5zaXpl
KCkuaGVpZ2h0KCkpKTsKKyAgICBhdXRvIGNsb25lID0gYWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5D
YW52YXMoY29udGV4dCwgZGV0YWNoZWRDYW52YXMtPnNpemUoKS53aWR0aCgpLCBkZXRhY2hlZENh
bnZhcy0+c2l6ZSgpLmhlaWdodCgpKSk7CisKICAgICBjbG9uZS0+c2V0SW1hZ2VCdWZmZXIoZGV0
YWNoZWRDYW52YXMtPnRha2VJbWFnZUJ1ZmZlcigpKTsKICAgICBpZiAoIWRldGFjaGVkQ2FudmFz
LT5vcmlnaW5DbGVhbigpKQogICAgICAgICBjbG9uZS0+c2V0T3JpZ2luVGFpbnRlZCgpOwogCisg
ICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoW2NhbnZhcyA9IGRldGFjaGVkQ2FudmFzLT50YWtl
UGxhY2Vob2xkZXJDYW52YXMoKSwgb2Zmc2NyZWVuQ2FudmFzID0gY2xvbmUucHRyKCldICgpIG11
dGFibGUgeworICAgICAgICBpZiAoY2FudmFzKQorICAgICAgICAgICAgb2Zmc2NyZWVuQ2FudmFz
LT5zZXRQbGFjZWhvbGRlckNhbnZhcyhXVEZNb3ZlKGNhbnZhcykpOworICAgIH0pOworCiAgICAg
cmV0dXJuIGNsb25lOwogfQogCitSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXZWFrUHRyPEhUTUxDYW52
YXNFbGVtZW50PiYmIGNhbnZhcykKK3sKKyAgICBhdXRvIG9mZnNjcmVlbiA9IGFkb3B0UmVmKCpu
ZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQsIGNhbnZhcy0+d2lkdGgoKSwgY2FudmFzLT5oZWln
aHQoKSkpOworICAgIG9mZnNjcmVlbi0+c2V0UGxhY2Vob2xkZXJDYW52YXMoV1RGTW92ZShjYW52
YXMpKTsKKyAgICByZXR1cm4gb2Zmc2NyZWVuOworfQorCiBPZmZzY3JlZW5DYW52YXM6Ok9mZnNj
cmVlbkNhbnZhcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCB3aWR0
aCwgdW5zaWduZWQgaGVpZ2h0KQogICAgIDogQ2FudmFzQmFzZShJbnRTaXplKHdpZHRoLCBoZWln
aHQpKQogICAgICwgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCkBAIC04MCw2
ICsxMDIsMTAgQEAgT2Zmc2NyZWVuQ2FudmFzOjp+T2Zmc2NyZWVuQ2FudmFzKCkKIHsKICAgICBu
b3RpZnlPYnNlcnZlcnNDYW52YXNEZXN0cm95ZWQoKTsKIAorICAgIGNhbGxPbk1haW5UaHJlYWQo
W3BsYWNlaG9sZGVyID0gV1RGTW92ZSh0aGlzLT5tX3BsYWNlaG9sZGVyQ2FudmFzKV0gKCkgbXV0
YWJsZSB7CisgICAgICAgIHBsYWNlaG9sZGVyID0gbnVsbHB0cjsKKyAgICB9KTsKKwogICAgIG1f
Y29udGV4dCA9IG51bGxwdHI7IC8vIEVuc3VyZSB0aGlzIGdvZXMgYXdheSBiZWZvcmUgdGhlIElt
YWdlQnVmZmVyLgogICAgIHNldEltYWdlQnVmZmVyKG51bGxwdHIpOwogfQpAQCAtMTE4LDcgKzE0
NCw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRTaXplKGNvbnN0IEludFNpemUmIG5ld1Np
emUpCiAgICAgcmVzZXQoKTsKIH0KIAotRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29u
dGV4dD4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0
YXRlLCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25n
PEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQorRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2Ny
ZWVuUmVuZGVyaW5nQ29udGV4dD4+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpT
R2xvYmFsT2JqZWN0JiBzdGF0ZSwgUmVuZGVyaW5nQ29udGV4dFR5cGUgY29udGV4dFR5cGUsIFZl
Y3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKICAgICBpZiAo
bV9kZXRhY2hlZCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH07CkBAIC0xMjYsMjIgKzE1MiwyMiBAQCBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdD
b250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbAogICAgIGlm
IChjb250ZXh0VHlwZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6XzJkKSB7CiAgICAgICAgIGlm
IChtX2NvbnRleHQpIHsKICAgICAgICAgICAgIGlmICghaXM8T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICAgICAgICAg
IHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgUmVm
UHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH0gfTsKICAgICAgICAg
fQogCiAgICAgICAgIG1fY29udGV4dCA9IG1ha2VVbmlxdWU8T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPigqdGhpcyk7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAg
ICAgcmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyBu
dWxscHRyIH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKIAot
ICAgICAgICByZXR1cm4geyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
PiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRl
eHQpIH0gfTsKKyAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ+KCptX2NvbnRleHQpIH0gfSB9OwogICAgIH0KICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgaWYg
KGNvbnRleHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpXZWJnbCkgewogICAgICAgICBp
ZiAobV9jb250ZXh0KSB7Ci0gICAgICAgICAgICBpZiAoIWlzPFdlYkdMUmVuZGVyaW5nQ29udGV4
dD4oKm1fY29udGV4dCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07Ci0gICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJp
bmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQp
IH0gfTsKKyAgICAgICAgICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRl
eHQpKQorICAgICAgICAgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29u
dGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH0g
fTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKICAgICAgICAgfQog
CiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLnZtKCkpOwpA
QCAtMTUwLDEzICsxNzYsMTMgQEAgRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4
dD4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWwKIAogICAgICAgICBt
X2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJp
YnV0ZXMsICJ3ZWJnbCIpOwogICAgICAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgICAgIHJl
dHVybiB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgbnVsbHB0ciB9IH07CisgICAg
ICAgICAgICByZXR1cm4geyB7IFdURjo6bnVsbG9wdCB9IH07CiAKLSAgICAgICAgcmV0dXJuIHsg
UmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdD
b250ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9j
b250ZXh0KSB9IH0gfTsKICAgICB9CiAjZW5kaWYKIAotICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsK
IH0KIAogRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gT2Zmc2NyZWVuQ2FudmFzOjp0
cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKQpAQCAtMjU4LDYgKzI4NCw3IEBAIHZvaWQgT2Zmc2NyZWVu
Q2FudmFzOjpjb252ZXJ0VG9CbG9iKEltYWdlRW5jb2RlT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxE
ZWZlcnJlZFByCiB2b2lkIE9mZnNjcmVlbkNhbnZhczo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3Qm
IHJlY3QpCiB7CiAgICAgY2xlYXJDb3BpZWRJbWFnZSgpOworICAgIHNjaGVkdWxlQ29tbWl0VG9Q
bGFjZWhvbGRlckNhbnZhcygpOwogICAgIG5vdGlmeU9ic2VydmVyc0NhbnZhc0NoYW5nZWQocmVj
dCk7CiB9CiAKQEAgLTMwMCw3ICszMjcsNjYgQEAgc3RkOjp1bmlxdWVfcHRyPERldGFjaGVkT2Zm
c2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmRldGFjaCgpCiAKICAgICBtX2RldGFjaGVk
ID0gdHJ1ZTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFz
Pih0YWtlSW1hZ2VCdWZmZXIoKSwgc2l6ZSgpLCBvcmlnaW5DbGVhbigpKTsKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZTxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4odGFrZUltYWdlQnVmZmVyKCksIHNp
emUoKSwgb3JpZ2luQ2xlYW4oKSwgV1RGTW92ZShtX3BsYWNlaG9sZGVyQ2FudmFzKSk7Cit9CisK
K3ZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRQbGFjZWhvbGRlckNhbnZhcyhXZWFrUHRyPEhUTUxD
YW52YXNFbGVtZW50PiYmIGNhbnZhcykKK3sKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX3BsYWNlaG9sZGVyQ2FudmFzID0gV1RGTW92
ZShjYW52YXMpOworfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6cHVzaEJ1ZmZlclRvUGxhY2Vo
b2xkZXIoKQoreworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXNdICgpIG11dGFibGUgeworICAg
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29tbWl0TG9jayk7CisgICAgICAgIGlmICgh
bV9wbGFjZWhvbGRlckNhbnZhcyB8fCAhbV9wZW5kaW5nQ29tbWl0RGF0YSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJ
bWFnZUJ1ZmZlcjo6Y3JlYXRlKEZsb2F0U2l6ZShtX3BlbmRpbmdDb21taXREYXRhLT5zaXplKCkp
LCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKKyAgICAgICAgYnVmZmVyLT5wdXRJbWFn
ZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgKm1fcGVuZGluZ0Nv
bW1pdERhdGEsIEludFJlY3QoSW50UG9pbnQoKSwgbV9wZW5kaW5nQ29tbWl0RGF0YS0+c2l6ZSgp
KSk7CisgICAgICAgIG1fcGxhY2Vob2xkZXJDYW52YXMtPnNldEltYWdlQnVmZmVyQW5kTWFya0Rp
cnR5KFdURk1vdmUoYnVmZmVyKSk7CisgICAgICAgIG1fcGVuZGluZ0NvbW1pdERhdGEgPSBudWxs
cHRyOworICAgIH0pOworfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6Y29tbWl0VG9QbGFjZWhv
bGRlckNhbnZhcygpCit7CisgICAgYXV0byogaW1hZ2VCdWZmZXIgPSBidWZmZXIoKTsKKyAgICBp
ZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogVHJhbnNm
ZXIgdGV4dHVyZSBvdmVyIGlmIHdlJ3JlIHVzaW5nIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisg
ICAgaWYgKG1fY29udGV4dCAmJiAobV9jb250ZXh0LT5pc1dlYkdMKCkgfHwgbV9jb250ZXh0LT5p
c0FjY2VsZXJhdGVkKCkpKQorICAgICAgICBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0
c1RvQ2FudmFzKCk7CisKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAgaWYgKG1f
cGxhY2Vob2xkZXJDYW52YXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGJ1ZmZlckNvcHkgPSBp
bWFnZUJ1ZmZlci0+Y29weVJlY3RUb0J1ZmZlcihGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFn
ZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbG9yU3BhY2U6OlNSR0IsIGltYWdlQnVmZmVyLT5j
b250ZXh0KCkpKQorICAgICAgICAgICAgICAgIG1fcGxhY2Vob2xkZXJDYW52YXMtPnNldEltYWdl
QnVmZmVyQW5kTWFya0RpcnR5KFdURk1vdmUoYnVmZmVyQ29weSkpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29tbWl0
TG9jayk7CisKKyAgICBib29sIHNob3VsZFB1c2hCdWZmZXIgPSAhbV9wZW5kaW5nQ29tbWl0RGF0
YTsKKyAgICBtX3BlbmRpbmdDb21taXREYXRhID0gaW1hZ2VCdWZmZXItPmdldEltYWdlRGF0YShB
bHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBJbnRSZWN0KEludFBvaW50KCks
IGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSk7CisKKyAgICBpZiAoc2hvdWxkUHVzaEJ1ZmZl
cikKKyAgICAgICAgcHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKTsKK30KKwordm9pZCBPZmZzY3Jl
ZW5DYW52YXM6OnNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAgaWYg
KCFtX2hhc1NjaGVkdWxlZENvbW1pdCkgeworICAgICAgICBhdXRvJiBzY3JpcHRDb250ZXh0ID0g
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAgICAgbV9oYXNTY2hlZHVsZWRDb21taXQg
PSB0cnVlOworICAgICAgICBzY3JpcHRDb250ZXh0LnBvc3RUYXNrKFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgICAgICAgICAg
cHJvdGVjdGVkVGhpcy0+bV9oYXNTY2hlZHVsZWRDb21taXQgPSBmYWxzZTsKKyAgICAgICAgICAg
IHByb3RlY3RlZFRoaXMtPmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKKyAgICAgICAgfSk7
CisgICAgfQogfQogCiBDU1NWYWx1ZVBvb2wmIE9mZnNjcmVlbkNhbnZhczo6Y3NzVmFsdWVQb29s
KCkKQEAgLTM1MCw2ICs0MzYsNyBAQCB2b2lkIE9mZnNjcmVlbkNhbnZhczo6cmVzZXQoKQogICAg
IGNsZWFyQ29waWVkSW1hZ2UoKTsKIAogICAgIG5vdGlmeU9ic2VydmVyc0NhbnZhc1Jlc2l6ZWQo
KTsKKyAgICBzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKaW5kZXggM2U1ZTMwYTU3NmUzMWE5MzJhNmYx
NDZhOTdlYmYwOGRlOWEyNWYzOS4uNjUxNTY3MGU3M2FlNWRhNzU1OTY1NDUxM2JhMjI3ZjY1YWEy
MGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTQ0LDcgKzQ1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDsKIGNsYXNzIENTU1ZhbHVlUG9vbDsKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsK
K2NsYXNzIEhUTUxDYW52YXNFbGVtZW50OwogY2xhc3MgSW1hZ2VCaXRtYXA7CitjbGFzcyBJbWFn
ZURhdGE7CiBjbGFzcyBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7CiBjbGFzcyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ7CiAKQEAgLTU4LDE2ICs2MSwxOCBAQCBjbGFzcyBEZXRhY2hl
ZE9mZnNjcmVlbkNhbnZhcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV0YWNoZWRPZmZz
Y3JlZW5DYW52YXMpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiwg
Y29uc3QgSW50U2l6ZSYsIGJvb2wgb3JpZ2luQ2xlYW4pOworICAgIERldGFjaGVkT2Zmc2NyZWVu
Q2FudmFzKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiwgY29uc3QgSW50U2l6ZSYsIGJv
b2wgb3JpZ2luQ2xlYW4sIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiYgcGxhY2Vob2xkZXJD
YW52YXMpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiB0YWtlSW1hZ2VCdWZm
ZXIoKTsKICAgICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9
CiAgICAgYm9vbCBvcmlnaW5DbGVhbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luQ2xlYW47IH0K
KyAgICBXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiB0YWtlUGxhY2Vob2xkZXJDYW52YXMoKTsK
IAogcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IG1fYnVmZmVyOwog
ICAgIEludFNpemUgbV9zaXplOwogICAgIGJvb2wgbV9vcmlnaW5DbGVhbjsKKyAgICBXZWFrUHRy
PEhUTUxDYW52YXNFbGVtZW50PiBtX3BsYWNlaG9sZGVyQ2FudmFzOwogfTsKIAogY2xhc3MgT2Zm
c2NyZWVuQ2FudmFzIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8T2Zmc2NyZWVuQ2FudmFzPiwg
cHVibGljIENhbnZhc0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwcml2
YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKQEAgLTg2LDYgKzkxLDcgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIFJlZjxPZmZzY3JlZW5DYW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCk7CiAgICAgc3RhdGlj
IFJlZjxPZmZzY3JlZW5DYW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3Rk
Ojp1bmlxdWVfcHRyPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPiYmKTsKKyAgICBzdGF0aWMgUmVm
PE9mZnNjcmVlbkNhbnZhcz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWFrUHRy
PEhUTUxDYW52YXNFbGVtZW50PiYmKTsKICAgICB2aXJ0dWFsIH5PZmZzY3JlZW5DYW52YXMoKTsK
IAogICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgZmluYWw7CkBAIC05NSw3ICsxMDEsNyBAQCBw
dWJsaWM6CiAKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiByZW5kZXJpbmdDb250ZXh0KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKLSAgICBFeGNlcHRpb25P
cjxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiBnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmpl
Y3QmLCBSZW5kZXJpbmdDb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93
bj4+JiYgYXJndW1lbnRzKTsKKyAgICBFeGNlcHRpb25PcjxPcHRpb25hbDxPZmZzY3JlZW5SZW5k
ZXJpbmdDb250ZXh0Pj4gZ2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVuZGVyaW5n
Q29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50
cyk7CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gdHJhbnNmZXJUb0ltYWdl
Qml0bWFwKCk7CiAgICAgdm9pZCBjb252ZXJ0VG9CbG9iKEltYWdlRW5jb2RlT3B0aW9ucyYmLCBS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIApAQCAtMTA5LDYgKzExNSw4IEBAIHB1YmxpYzoKICAg
ICBib29sIGNhbkRldGFjaCgpIGNvbnN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9m
ZnNjcmVlbkNhbnZhcz4gZGV0YWNoKCk7CiAKKyAgICB2b2lkIGNvbW1pdFRvUGxhY2Vob2xkZXJD
YW52YXMoKTsKKwogICAgIENTU1ZhbHVlUG9vbCYgY3NzVmFsdWVQb29sKCk7CiAKICAgICB1c2lu
ZyBSZWZDb3VudGVkOjpyZWY7CkBAIC0xMzgsNiArMTQ2LDEwIEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGNsZWFyQ29waWVkSW1hZ2UoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0UGxhY2Vob2xkZXJD
YW52YXMoV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4mJik7CisgICAgdm9pZCBwdXNoQnVmZmVy
VG9QbGFjZWhvbGRlcigpOworICAgIHZvaWQgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2Fu
dmFzKCk7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dD4gbV9j
b250ZXh0OwogCiAgICAgLy8gbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQg
dG8gbWFsbG9jIHRoZSBidWZmZXIuIFdlIGRpZG4ndCBuZWNlc3NhcmlseSBnZXQgaXQuCkBAIC0x
NDYsNiArMTU4LDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RldGFjaGVkIHsgZmFsc2UgfTsK
IAogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX2NvcGllZEltYWdlOworCisgICAgYm9vbCBt
X2hhc1NjaGVkdWxlZENvbW1pdCB7IGZhbHNlIH07CisgICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxl
bWVudD4gbV9wbGFjZWhvbGRlckNhbnZhczsKKworICAgIG11dGFibGUgTG9jayBtX2NvbW1pdExv
Y2s7CisgICAgUmVmUHRyPEltYWdlRGF0YT4gbV9wZW5kaW5nQ29tbWl0RGF0YTsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDg2ZDc4NGEzNTFkNTg0Y2U2ZWYz
YTY5OTJlN2VjMjA2ZTY4ZDk2MDAuLjBiOWEwNDQxYzE2YmMzODFiZjY4NzA2ZTcyMjMwYmI1NDYz
YWVmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtNDgsNiArNDgsMTEg
QEAgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQoQ2FudmFzQmFzZSYKIAogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjp+T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKCkgPSBkZWZhdWx0Owog
Cit2b2lkIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y29tbWl0KCkKK3sKKyAg
ICBkb3duY2FzdDxPZmZzY3JlZW5DYW52YXM+KGNhbnZhc0Jhc2UoKSkuY29tbWl0VG9QbGFjZWhv
bGRlckNhbnZhcygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRleCBjY2IxNmU5MmNkMmJkMDRjYTU2OGJjZjYxNjMy
NzkyZTY5NDkzM2UwLi5lZTkyOWFmMmIyOWRhZTgyNjNkZTFkYWY2MGRkMTY0NTQyNTdlOWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc09mZnNjcmVlbjJkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
CiAgICAgT2Zmc2NyZWVuQ2FudmFzJiBjYW52YXMoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxP
ZmZzY3JlZW5DYW52YXM+KGNhbnZhc0Jhc2UoKSk7IH0KKworICAgIHZvaWQgY29tbWl0KCk7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlk
bAppbmRleCAwNGVjNmE3NTE5YjE0YTc1YTEyNTY0ZjVlOWRlYjkxMGVjOGJmMTM5Li5kN2ZlYzg3
OTkzNjkwNDRiZGE3MmRlMGViNWM1M2Q2MzdhZTAyNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5pZGwKQEAgLTI3LDE0ICsyNywxMyBAQAogICAgIEN1c3RvbUlzUmVhY2hhYmxlLAog
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9T2Zmc2NyZWVuQ2FudmFzLAogICAgIENvbmRpdGlvbmFsPU9G
RlNDUkVFTl9DQU5WQVMsCi0gICAgRXhwb3NlZD0oV2luZG93KSwgLy8gRklYTUU6IE9mZnNjcmVl
bkNhbnZhcyAtIHNob3VsZCBiZSBXaW5kb3csV29ya2VyCisgICAgRXhwb3NlZD0oV2luZG93LFdv
cmtlciksCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgSlNDdXN0b21NYXJrRnVuY3Rp
b24sCiAgICAgLy8gQ2FsbFRyYWNpbmdDYWxsYmFjaz1yZWNvcmRDYW52YXNBY3Rpb24sIC8vIEZJ
WE1FOiBPZmZzY3JlZW5DYW52YXMuCiBdIGludGVyZmFjZSBPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBPZmZzY3JlZW5DYW52YXMgY2Fu
dmFzOwotICAgIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52YXMuCi0gICAgLy8gdm9pZCBjb21taXQo
KTsKKyAgICB2b2lkIGNvbW1pdCgpOwogCiAgICAgLy8gSW5zcGVjdG9yLW9ubHkuCiAgICAgLy8g
RklYTUU6IE9mZnNjcmVlbkNhbnZhcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDA5MmM0YWVm
NjBhNTUxM2Y0NzZjN2Q3MTQzM2ViZTcxYWZhNzgxZDQuLjFlYzdhMjRlZGY0NDUyMTFiYmJhOTk0
MmU4MTQ2YmIxZTdmNjg0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjYsNiArMjYsMTAg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuaCIKIAorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorCisjaW5jbHVkZSAiSFRN
TENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJPZmZzY3JlZW5DYW52YXMuaCIKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNyw0
ICs0MSwxNCBAQCBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ6OlBsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dChDYW52YXNCYXNlJiBjYW52YXMpCiB7CiB9CiAKK0hUTUxDYW52YXNFbGVtZW50
KiBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ6OmNhbnZhcygpIGNvbnN0Cit7CisgICAgYXV0
byYgYmFzZSA9IGNhbnZhc0Jhc2UoKTsKKyAgICBpZiAoIWlzPEhUTUxDYW52YXNFbGVtZW50Pihi
YXNlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZkb3duY2FzdDxIVE1M
Q2FudmFzRWxlbWVudD4oYmFzZSk7CiB9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCmlu
ZGV4IGMzNDhlNTE4OTUyY2I5ZDQxNWM2YmQxNzk1ZjIxNmRjYjE2NWQyNTkuLjY0NTA5MTQ1OWRk
MDFjYzJhNzk3N2RjMDAzYjQ1MjY1ZGU1YmE3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0yNSwx
NSArMjUsMjEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZB
UykKKwogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBPZmZzY3JlZW5DYW52YXM7CisKIGNsYXNzIFBsYWNlaG9sZGVyUmVu
ZGVyaW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBDYW52YXNSZW5kZXJpbmdDb250ZXh0IHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dCk7CiBw
dWJsaWM6CiAgICAgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmKTsKIAor
ICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBi
b29sIGlzUGxhY2Vob2xkZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiB9OwpAQCAt
NDEsMyArNDcsNSBAQCBwcml2YXRlOgogfQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NBTlZB
U1JFTkRFUklOR0NPTlRFWFQoV2ViQ29yZTo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LCBp
c1BsYWNlaG9sZGVyKCkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggMDQzZDdmNjc0MzdjMjYxZWYxMDJiYjYyMmY0NzQ3YTE5MmNjMjc4ZS4uYmYzNGQ3OGI4YmEw
YTE2ZTVlMzIzODViMTZkM2EwMjhkOGIxNjBjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDItMTMgIENocmlzIExvcmQgIDxjbG9yZEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDYW52YXMudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4gYW5kIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjc5NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLmNvbW1pdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1p
dC53LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVu
LWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52
YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2Vy
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNh
bnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNj
cmVlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29u
dHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDMtMjYgIEFsZXhleSBT
aHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFN5bmMgd3B0L2RvbXhw
YXRoIGFuZCByZS1zeW5jIHdwdC9jc3MvY3Nzb20tdmlldyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1p
dC1leHBlY3RlZC50eHQKaW5kZXggNmYxYzcwNTBlNWU4MjhjM2YzMjNmMjk1ZmIxZDJhNGZlYzhj
MDA3Yy4uNWI5MzhhMmY3MDdiZDc1ZjdlMDY0ZDZmMjFmYjEwMjkyZDExMjI0YSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4t
Y2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
b2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29t
bWl0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAz
NDYzOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogR3JlZW4gY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQg
KDUsIDUpIGV4cGVjdGVkIDI1NSBidXQgZ290IDAKIAotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBP
ZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBpdHMgcGxhY2Vo
b2xkZXIuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAn
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZB
SUwgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlz
IG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1lbnQgaXMgYSBub29wLiBjdHgu
Y29tbWl0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2N0eC5jb21taXQoKScsICdjdHguY29tbWl0
JyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydz
IGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gCitQQVNTIFRl
c3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52YXMgdGhhdCBpcyBub3Qg
dHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IGlzIGEgbm9vcC4gCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2Ny
ZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0Lnct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5j
b21taXQudy1leHBlY3RlZC50eHQKaW5kZXggNDM0MzMyY2U1MWFiZmUzNzEyZDBlMjQ5NThhODA1
MjgxYTYwNzA3NC4uYzQyMThlY2FjMjczZDA1NDdmNWU0OWMzZDEyM2ZkYWY4M2YzZWFiNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZz
Y3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQu
dy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgVGVzdCB0
aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMg
dG8gaXRzIHBsYWNlaG9sZGVyLiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1
bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1p
dCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gCiBQQVNTIFRlc3QgdGhh
dCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52YXMgdGhhdCBpcyBub3QgdHJhbnNm
ZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IHRocm93cyBhbiBleGNlcHRpb24gaW4gYSB3
b3JrZXIuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBiZDlhYTBlMTY3
N2U5NDk0ODBiMjIzMzEyMjM4ZjQ3MDk5ZWYxMzc3Li5jNTdhMjkzZWM0YTliZDY4YzZkOTFmOWFi
YzgyNTU0YzRkZjg4ZjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zm
c2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEs
NyArMSw3IEBACiAKIFBBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCB1bi1zdXBwb3J0ZWQg
c3RyaW5nIHRocm93cyBhIFR5cGVFcnJvci4gCiBGQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdp
dGggc3VwcG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBBcmd1bWVudCAxICgn
Y29udGV4dFR5cGUnKSB0byBPZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCBtdXN0IGJlIG9uZSBv
ZjogIjJkIiwgIndlYmdsIgotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRp
ZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSBUaGUgb2Jq
ZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuCitQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3
aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0
aW1lIAogUEFTUyBUZXN0IHRoYXQgMmRjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBv
cmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBQQVNTIFRlc3QgdGhhdCB3ZWJnbGNvbnRleHQuY2Fu
dmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKIEZBSUwgVGVz
dCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB3aXRoIGFscGhhIGRpc2Fi
bGVkIG1ha2VzIHRoZSBPZmZzY3JlZW5DYW52YXMgb3BhcXVlIGFzc2VydF9hcHByb3hfZXF1YWxz
OiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0ZWQgMTI3ICsvLSAy
IGJ1dCBnb3QgMjU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IGYyMjRjZTc0ZWVhODc4Y2Y3NmExMzMzYmNhZTFiYWExMGZkNGY2NjcuLjM5ZmMyY2Y5
YWFkZGU3ZjJkYjFiM2UyZTMzNjg5ZWQ3MDcxNzhjYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zm
c2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29u
dGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIFRlc3QgdGhh
dCBnZXRDb250ZXh0IHdpdGggdW4tc3VwcG9ydGVkIHN0cmluZyB0aHJvd3MgYSBUeXBlRXJyb3Iu
IAotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJu
cyBjb3JyZWN0IHJlc3VsdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogT2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJECi1GQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlm
ZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1lIFRoZSBvYmpl
Y3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4KK0ZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0
aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRzIENhbid0IGZpbmQgdmFy
aWFibGU6IFdlYkdMUmVuZGVyaW5nQ29udGV4dAorUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0
d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQg
dGltZSAKIFBBU1MgVGVzdCB0aGF0IDJkY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUg
b3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAogUEFTUyBUZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNh
bnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBGQUlMIFRl
c3QgdGhhdCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgd2l0aCBhbHBoYSBkaXNh
YmxlZCBtYWtlcyB0aGUgT2Zmc2NyZWVuQ2FudmFzIG9wYXF1ZSBhc3NlcnRfYXBwcm94X2VxdWFs
czogR3JlZW4gY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4cGVjdGVkIDEyNyArLy0g
MiBidXQgZ290IDI1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0CmluZGV4IGY0NTUwNzE3MmI3NmJh
ZjA2YWIwZTQ0ZWQxNWNlMzMwNmFkNDgxOGEuLjZjMTFjOGRmNGI2NWE3OTAwYWRkYzc0NmFhOWEw
ZWU3Nzk0MTg2MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQKQEAgLTIsMTEgKzIsMTEgQEAK
IFBBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1
dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIG5vIGNvbnRleHQg
YXR0YWNoZWQuIAogUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVp
Z2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMg
YSAyZCBjb250ZXh0IGF0dGFjaGVkLiAKIFBBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUg
d2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3
aGVuIHRoZXJlIGlzIGEgd2ViZ2wgY29udGV4dCBhdHRhY2hlZC4gCi1GQUlMIFZlcmlmeSB0aGF0
IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRl
ciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2Ny
ZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRo
IG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4
Y2VwdGlvbiBldmVuIHdoZW4gbm90IGNoYW5naW5nIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRl
LiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFZl
cmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBw
bGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiAKK1BBU1MgVmVyaWZ5IHRoYXQg
d3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVy
IGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGV2ZW4gd2hlbiBub3QgY2hhbmdpbmcgdGhlIHZh
bHVlIG9mIHRoZSBhdHRyaWJ1dGUuIAogUEFTUyBWZXJpZnkgdGhhdCByZXNpemluZyBhIDJkIGNv
bnRleHQgcmVzZXRzIGl0cyBzdGF0ZS4gCiBQQVNTIFZlcmlmeSB0aGF0IHNldHRpbmcgdGhlIHNp
emUgb2YgYSAyZCBjb250ZXh0IHRvIHRoZSBzYW1lIHNpemUgaXQgYWxyZWFkeSBoYWQgcmVzZXRz
IGl0cyBzdGF0ZS4gCi1GQUlMIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZh
cyB3aXRoIGEgMmQgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vo
b2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2Ny
ZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVl
bkNhbnZhcyB3aXRoIGEgd2ViZ2wgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBp
dHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiBwbGFjZWhvbGRlci50cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0aGF0IGRyYXdJbWFnZSB1
c2VzIHRoZSBzaXplIG9mIHRoZSBmcmFtZSBhcyB0aGUgaW50aW5zaWMgc2l6ZSBvZiBhIHBsYWNl
aG9sZGVyIGNhbnZhcy4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMg
bm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZp
bmVkKQorUEFTUyBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBh
IDJkIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVyIGNh
bnZhcyBhc3luY2hyb25vdXNseS4gCitQQVNTIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNj
cmVlbkNhbnZhcyB3aXRoIGEgd2ViZ2wgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0
byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiAKK1BBU1MgVmVyaWZ5IHRo
YXQgZHJhd0ltYWdlIHVzZXMgdGhlIHNpemUgb2YgdGhlIGZyYW1lIGFzIHRoZSBpbnRpbnNpYyBz
aXplIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVu
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMu
dHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQKaW5kZXggNGY0MmU1MDc0
MjgyODBhMmVhMTlmNzYzY2Y4Yzk2MTlhZTViYjMwNS4uMjk2MDQ4NWI3YjZhZDZmNzA2MmRlZjlm
ZTdiNzllNWNiNzRiODNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29m
ZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29u
dHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1GQUlMIFRl
c3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHBsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0
Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGhhcyBhbHJlYWR5IHRyYW5zZmVy
cmVkIGl0cyBjb250cm9sIHRocm93cyBhbiBleGNlcHRpb24gcGxhY2Vob2xkZXIudHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uIHBsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGFuIE9m
ZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0
cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGdldENv
bnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhhdCBoYXMgYWxyZWFkeSB0cmFuc2ZlcnJl
ZCBpdHMgY29udHJvbCB0aHJvd3MgYW4gZXhjZXB0aW9uIAorUEFTUyBUZXN0IHRoYXQgY2FsbGlu
ZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRy
YW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4u
dy1leHBlY3RlZC50eHQKaW5kZXggMmNkM2RiNGIyNzZkYzFjMTFkMWVjZGIwNDhiM2I3OTA5M2Vl
ZTBkYS4uMzNiODUzMmNiMmUwMDQxNGE2ZDU0YTZkYTc5YWU3NmVhZjQ2NTYzZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4t
Y2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRy
b2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNh
bnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVj
dGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBUZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2Fu
dmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qg
d2lkdGggYW5kIGhlaWdodCB3aGVuIGl0IGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIHBsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIu
dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0
IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGlzIHRyYW5z
ZmVycmVkIGl0cyBjb250cm9sIHRvIGFuIE9mZnNjcmVlbkNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0
aW9uLCB3aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIg
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0
IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4g
ZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2Zl
cnJlZCB0byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBp
cyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRl
ZmluZWQpCitQQVNTIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHdo
ZW4gaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5n
IGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhhdCBpcyB0cmFuc2ZlcnJlZCBp
dHMgY29udHJvbCB0byBhbiBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgd2hl
biB0aGUgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIAorUEFTUyBU
ZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3Mg
YW4gZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFu
c2ZlcnJlZCB0byBhIHdvcmtlciAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397669</attachid>
            <date>2020-04-27 04:11:51 -0700</date>
            <delta_ts>2020-04-27 06:38:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200427121150.patch</filename>
            <type>text/plain</type>
            <size>38993</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU5YTMzZmI3MDg0OGYz
OGQ5MmUyZTZiMTlkYzJmZTEwZTZhNzY3ZC4uNDk5MTNjNTI1YTVlZWY4ZmNiNmMxOGUyMmEwYmE0
Y2Y3YzVhYzFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52
YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAyMC0wNC0yNyAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEs0XSBHZGtSR0JB
IGhhcyBmbG9hdCBtZW1iZXJzIGluc3RlYWQgb2YgZG91YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDBkYjUyNjhhZGVkZTBiZGYxMDU0MDE0ZTQ5MTdi
NDM5YjgyOGUwZjMuLjg1Mjk0ZTRiYjYxYzRiOTU5MTg1YWMxYWI1N2IzMDc1ZGM1MTBiYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00OSw2ICs0OSw3
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZE9ic2VydmVyLmgiCkBAIC0xNzEsNyArMTcyLDcgQEAgYm9vbCBIVE1MQ2FudmFzRWxl
bWVudDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdAogCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1M
Q2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogewotICAgIGlmIChtX2Nv
bnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxl
ZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0
ciwgQXRvbVN0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVlLCBk
ZWZhdWx0SGVpZ2h0KSkpOwogICAgIHJldHVybiB7IH07CkBAIC0xNzksNyArMTgwLDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1
ZSkKIAogRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2ln
bmVkIHZhbHVlKQogewotICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9s
ZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09u
bHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRXaWR0aCkpKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNTQwLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiB7
Ci0gICAgaWYgKG1faWdub3JlUmVzZXQpCisgICAgaWYgKG1faWdub3JlUmVzZXQgfHwgaXNDb250
cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRJbWFn
ZUJ1ZmZlciA9IGhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpOwpAQCAtNzQyLDYgKzc0MywyNCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFJlZgogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUo
T0ZGU0NSRUVOX0NBTlZBUykKK0V4Y2VwdGlvbk9yPFJlZjxPZmZzY3JlZW5DYW52YXM+PiBIVE1M
Q2FudmFzRWxlbWVudDo6dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAobV9jb250ZXh0KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGF1dG8gY2FudmFzID0gT2Zm
c2NyZWVuQ2FudmFzOjpjcmVhdGUoY29udGV4dCwgbWFrZVdlYWtQdHIoKnRoaXMpKTsKKyAgICBt
X2NvbnRleHQgPSBtYWtlVW5pcXVlPFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dD4oKnRoaXMp
OworCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJl
IGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUg
Y2FudmFzLgorICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKyNlbmRp
ZgorCisgICAgcmV0dXJuIGNhbnZhczsKK30KKyNlbmRpZgorCiBSZWZQdHI8SW1hZ2VEYXRhPiBI
VE1MQ2FudmFzRWxlbWVudDo6Z2V0SW1hZ2VEYXRhKCkKIHsKICNpZiBFTkFCTEUoV0VCR0wpCkBA
IC05MTYsOCArOTM1LDE3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVm
ZmVyKCkgY29uc3QKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0SW1hZ2VCdWZmZXJBbmRN
YXJrRGlydHkoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmIGJ1ZmZlcikKIHsKKyAgICBJ
bnRTaXplIG9sZFNpemUgPSBzaXplKCk7CiAgICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSB0
cnVlOwogICAgIHNldEltYWdlQnVmZmVyKFdURk1vdmUoYnVmZmVyKSk7CisKKyAgICBpZiAoaXND
b250cm9sbGVkQnlPZmZzY3JlZW4oKSAmJiBvbGRTaXplICE9IHNpemUoKSkgeworICAgICAgICBz
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdpZHRoQXR0ciwgQXRvbVN0cmluZzo6
bnVtYmVyKHdpZHRoKCkpKTsKKyAgICAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihoZWlnaHRBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIoaGVpZ2h0KCkpKTsKKyAgICAgICAg
bm90aWZ5T2JzZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAgICAgICBpbnZhbGlkYXRlU3R5bGVB
bmRSZW5kZXJlcnNGb3JTdWJ0cmVlKCk7CisgICAgfQorCiAgICAgZGlkRHJhdyhGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBzaXplKCkpKTsKIH0KIApAQCAtOTc3LDQgKzEwMDUsOSBAQCB2b2lkIEhU
TUxDYW52YXNFbGVtZW50OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSgpCiAjZW5kaWYKIH0KIAor
Ym9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSBjb25zdAor
eworICAgIHJldHVybiBtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCk7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA1MGU3YzJj
ZGVlMTA1ODJiNmE5N2NjZDJhNzc1Njc0OTA4ZGZmMzhjLi5iNjAxYjdlYTU0MmEzNGZmYTQxMTA2
Y2E5ZWJiOTY0ZTY5NDIxODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgSW1hZ2VEYXRh
OwogY2xhc3MgTWVkaWFTYW1wbGU7CiBjbGFzcyBNZWRpYVN0cmVhbTsKK2NsYXNzIE9mZnNjcmVl
bkNhbnZhczsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiBjbGFzcyBHUFVDYW52
YXNDb250ZXh0Owogc3RydWN0IFVuY2FjaGVkU3RyaW5nOwpAQCAtOTcsNiArOTgsOSBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0
YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB0b0Jsb2IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxCbG9iQ2FsbGJhY2s+JiYsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZB
UykKKyAgICBFeGNlcHRpb25PcjxSZWY8T2Zmc2NyZWVuQ2FudmFzPj4gdHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworI2VuZGlmCiAKICAgICAvLyBV
c2VkIGZvciByZW5kZXJpbmcKICAgICB2b2lkIGRpZERyYXcoY29uc3QgRmxvYXRSZWN0JikgZmlu
YWw7CkBAIC0xMjksNiArMTMzLDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgc2V0TWF4UGl4ZWxNZW1vcnlGb3JUZXN0aW5nKHNpemVfdCk7CiAKKyAgICBib29s
IGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFRNTENh
bnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKaW5kZXggNzE4YTllYTdhNGM5NzE1YTJl
NzgwNDc3NTUyYzJiNWY1MTNhOWEwYS4uYWU0ZmNhYWMyNjlmNmJjM2Y1NDBlYmQxZTQ3YjU4OTI3
ZGIzZWVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKQEAg
LTUwLDYgKzUwLDcgQEAgdHlwZWRlZiAoCiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0
cmluZyB0b0RhdGFVUkwob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFs
aXR5KTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNl
cHRpb25dIHZvaWQgdG9CbG9iKEJsb2JDYWxsYmFjayBjYWxsYmFjaywgb3B0aW9uYWwgRE9NU3Ry
aW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKKyAgICBbQ29uZGl0aW9uYWw9T0ZGU0NS
RUVOX0NBTlZBUywgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNl
cHRpb25dIE9mZnNjcmVlbkNhbnZhcyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOwogCiAg
ICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgQ2FsbFdpdGg9RG9jdW1lbnQsIE1heVRocm93
RXhjZXB0aW9uLCBOZXdPYmplY3RdIE1lZGlhU3RyZWFtIGNhcHR1cmVTdHJlYW0ob3B0aW9uYWwg
ZG91YmxlIGZyYW1lUmVxdWVzdFJhdGUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVu
Q2FudmFzLmNwcAppbmRleCA2MDZhNGQ3Y2UxNThkMjhmNTk5Nzk2ZTNhMzk2NjVhZmY0NmFkMDdm
Li40ZDgzYWRiNTU0MWY3ZWRkMTI0ZGFmZjdiMDA5YWEyMzBlZWY2MTMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBAIC0zMSwxMSArMzEsMTQgQEAKICNpbmNsdWRl
ICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkltYWdlQml0bWFwLmgiCisjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAi
SlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmgiCisjaW5jbHVkZSAiUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2Nv
cGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtNDQsMTAgKzQ3LDEx
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE9m
ZnNjcmVlbkNhbnZhcyk7CiAKLURldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjpEZXRhY2hlZE9mZnNj
cmVlbkNhbnZhcyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyLCBjb25zdCBJ
bnRTaXplJiBzaXplLCBib29sIG9yaWdpbkNsZWFuKQorRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6
OkRldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBi
dWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wgb3JpZ2luQ2xlYW4sIFdlYWtQdHI8SFRN
TENhbnZhc0VsZW1lbnQ+JiYgcGxhY2Vob2xkZXJDYW52YXMpCiAgICAgOiBtX2J1ZmZlcihXVEZN
b3ZlKGJ1ZmZlcikpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fb3JpZ2luQ2xlYW4ob3Jp
Z2luQ2xlYW4pCisgICAgLCBtX3BsYWNlaG9sZGVyQ2FudmFzKFdURk1vdmUocGxhY2Vob2xkZXJD
YW52YXMpKQogewogfQogCkBAIC01Niw2ICs2MCwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXI+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKQogICAgIHJl
dHVybiBXVEZNb3ZlKG1fYnVmZmVyKTsKIH0KIAorV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4g
RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAg
cmV0dXJuIFdURk1vdmUobV9wbGFjZWhvbGRlckNhbnZhcyk7Cit9CisKIFJlZjxPZmZzY3JlZW5D
YW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQsIHdpZHRoLCBoZWlnaHQpKTsKQEAg
LTYzLDE0ICs3MiwyNyBAQCBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1bgogCiBSZWY8T2Zmc2NyZWVu
Q2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+JiYgZGV0YWNo
ZWRDYW52YXMpCiB7Ci0gICAgUmVmPE9mZnNjcmVlbkNhbnZhcz4gY2xvbmUgPSBhZG9wdFJlZigq
bmV3IE9mZnNjcmVlbkNhbnZhcyhjb250ZXh0LCBkZXRhY2hlZENhbnZhcy0+c2l6ZSgpLndpZHRo
KCksIGRldGFjaGVkQ2FudmFzLT5zaXplKCkuaGVpZ2h0KCkpKTsKKyAgICBhdXRvIGNsb25lID0g
YWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwgZGV0YWNoZWRDYW52YXMtPnNp
emUoKS53aWR0aCgpLCBkZXRhY2hlZENhbnZhcy0+c2l6ZSgpLmhlaWdodCgpKSk7CisKICAgICBj
bG9uZS0+c2V0SW1hZ2VCdWZmZXIoZGV0YWNoZWRDYW52YXMtPnRha2VJbWFnZUJ1ZmZlcigpKTsK
ICAgICBpZiAoIWRldGFjaGVkQ2FudmFzLT5vcmlnaW5DbGVhbigpKQogICAgICAgICBjbG9uZS0+
c2V0T3JpZ2luVGFpbnRlZCgpOwogCisgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoW2NhbnZh
cyA9IGRldGFjaGVkQ2FudmFzLT50YWtlUGxhY2Vob2xkZXJDYW52YXMoKSwgb2Zmc2NyZWVuQ2Fu
dmFzID0gY2xvbmUucHRyKCldICgpIG11dGFibGUgeworICAgICAgICBpZiAoY2FudmFzKQorICAg
ICAgICAgICAgb2Zmc2NyZWVuQ2FudmFzLT5zZXRQbGFjZWhvbGRlckNhbnZhcyhXVEZNb3ZlKGNh
bnZhcykpOworICAgIH0pOworCiAgICAgcmV0dXJuIGNsb25lOwogfQogCitSZWY8T2Zmc2NyZWVu
Q2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiYmIGNhbnZhcykKK3sKKyAgICBhdXRv
IG9mZnNjcmVlbiA9IGFkb3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQsIGNhbnZh
cy0+d2lkdGgoKSwgY2FudmFzLT5oZWlnaHQoKSkpOworICAgIG9mZnNjcmVlbi0+c2V0UGxhY2Vo
b2xkZXJDYW52YXMoV1RGTW92ZShjYW52YXMpKTsKKyAgICByZXR1cm4gb2Zmc2NyZWVuOworfQor
CiBPZmZzY3JlZW5DYW52YXM6Ok9mZnNjcmVlbkNhbnZhcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogICAgIDogQ2FudmFz
QmFzZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKQogICAgICwgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIoJmNvbnRleHQpCkBAIC04MSw2ICsxMDMsMTAgQEAgT2Zmc2NyZWVuQ2FudmFzOjp+T2Zm
c2NyZWVuQ2FudmFzKCkKIHsKICAgICBub3RpZnlPYnNlcnZlcnNDYW52YXNEZXN0cm95ZWQoKTsK
IAorICAgIGNhbGxPbk1haW5UaHJlYWQoW3BsYWNlaG9sZGVyID0gV1RGTW92ZSh0aGlzLT5tX3Bs
YWNlaG9sZGVyQ2FudmFzKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIHBsYWNlaG9sZGVyID0gbnVs
bHB0cjsKKyAgICB9KTsKKwogICAgIG1fY29udGV4dCA9IG51bGxwdHI7IC8vIEVuc3VyZSB0aGlz
IGdvZXMgYXdheSBiZWZvcmUgdGhlIEltYWdlQnVmZmVyLgogICAgIHNldEltYWdlQnVmZmVyKG51
bGxwdHIpOwogfQpAQCAtMTE5LDcgKzE0NSw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRT
aXplKGNvbnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgcmVzZXQoKTsKIH0KIAotRXhjZXB0aW9u
T3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0
KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0
VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQorRXhj
ZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4+IE9mZnNjcmVlbkNh
bnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgUmVuZGVyaW5nQ29u
dGV4dFR5cGUgY29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYm
IGFyZ3VtZW50cykKIHsKICAgICBpZiAobV9kZXRhY2hlZCkKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CkBAIC0xMjcsMjIgKzE1MywyMiBAQCBFeGNlcHRp
b25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRl
eHQoSlNDOjpKU0dsb2JhbAogICAgIGlmIChjb250ZXh0VHlwZSA9PSBSZW5kZXJpbmdDb250ZXh0
VHlwZTo6XzJkKSB7CiAgICAgICAgIGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgICAgIGlmICgh
aXM8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAg
ICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4
dCkgfSB9OworICAgICAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKKyAg
ICAgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9j
b250ZXh0KSB9IH0gfTsKICAgICAgICAgfQogCiAgICAgICAgIG1fY29udGV4dCA9IG1ha2VVbmlx
dWU8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqdGhpcyk7CiAgICAgICAgIGlm
ICghbV9jb250ZXh0KQotICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRD4geyBudWxscHRyIH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7
IHsgV1RGOjpudWxsb3B0IH0gfTsKIAotICAgICAgICByZXR1cm4geyBSZWZQdHI8T2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgcmV0dXJuIHsgeyBSZWZQ
dHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfSB9OwogICAgIH0KICNp
ZiBFTkFCTEUoV0VCR0wpCiAgICAgaWYgKGNvbnRleHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRU
eXBlOjpXZWJnbCkgewogICAgICAgICBpZiAobV9jb250ZXh0KSB7Ci0gICAgICAgICAgICBpZiAo
IWlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07Ci0gICAgICAgICAgICByZXR1
cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgICAgIGlmIChpczxXZWJHTFJl
bmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpKQorICAgICAgICAgICAgICAgIHJldHVybiB7IHsg
UmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdD
b250ZXh0PigqbV9jb250ZXh0KSB9IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpu
dWxsb3B0IH0gfTsKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHN0YXRlLnZtKCkpOwpAQCAtMTUxLDEzICsxNzcsMTMgQEAgRXhjZXB0aW9uT3I8
T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpT
Qzo6SlNHbG9iYWwKIAogICAgICAgICBtX2NvbnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJpYnV0ZXMsICJ3ZWJnbCIpOwogICAgICAgICBpZiAoIW1f
Y29udGV4dCkKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ+IHsgbnVsbHB0ciB9IH07CisgICAgICAgICAgICByZXR1cm4geyB7IFdURjo6bnVsbG9wdCB9
IH07CiAKLSAgICAgICAgcmV0dXJuIHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAm
ZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAgICAg
IHJldHVybiB7IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH0gfTsKICAgICB9CiAjZW5kaWYKIAot
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IgfTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0
bWFwPj4gT2Zmc2NyZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKQpAQCAtMjU5LDYg
KzI4NSw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpjb252ZXJ0VG9CbG9iKEltYWdlRW5jb2Rl
T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByCiB2b2lkIE9mZnNjcmVlbkNhbnZhczo6
ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgY2xlYXJDb3BpZWRJbWFnZSgp
OworICAgIHNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOwogICAgIG5vdGlmeU9i
c2VydmVyc0NhbnZhc0NoYW5nZWQocmVjdCk7CiB9CiAKQEAgLTMwMSw3ICszMjgsNjYgQEAgc3Rk
Ojp1bmlxdWVfcHRyPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmRl
dGFjaCgpCiAKICAgICBtX2RldGFjaGVkID0gdHJ1ZTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVl
PERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPih0YWtlSW1hZ2VCdWZmZXIoKSwgc2l6ZSgpLCBvcmln
aW5DbGVhbigpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxEZXRhY2hlZE9mZnNjcmVlbkNhbnZh
cz4odGFrZUltYWdlQnVmZmVyKCksIHNpemUoKSwgb3JpZ2luQ2xlYW4oKSwgV1RGTW92ZShtX3Bs
YWNlaG9sZGVyQ2FudmFzKSk7Cit9CisKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRQbGFjZWhv
bGRlckNhbnZhcyhXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiYmIGNhbnZhcykKK3sKKyAgICBB
U1NFUlQoIW1fY29udGV4dCk7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX3Bs
YWNlaG9sZGVyQ2FudmFzID0gV1RGTW92ZShjYW52YXMpOworfQorCit2b2lkIE9mZnNjcmVlbkNh
bnZhczo6cHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKQoreworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXNdICgpIG11dGFibGUgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29t
bWl0TG9jayk7CisgICAgICAgIGlmICghbV9wbGFjZWhvbGRlckNhbnZhcyB8fCAhbV9wZW5kaW5n
Q29tbWl0RGF0YSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKEZsb2F0U2l6ZShtX3Bl
bmRpbmdDb21taXREYXRhLT5zaXplKCkpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsK
KyAgICAgICAgYnVmZmVyLT5wdXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJl
bXVsdGlwbGllZCwgKm1fcGVuZGluZ0NvbW1pdERhdGEsIEludFJlY3QoSW50UG9pbnQoKSwgbV9w
ZW5kaW5nQ29tbWl0RGF0YS0+c2l6ZSgpKSk7CisgICAgICAgIG1fcGxhY2Vob2xkZXJDYW52YXMt
PnNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5KFdURk1vdmUoYnVmZmVyKSk7CisgICAgICAgIG1f
cGVuZGluZ0NvbW1pdERhdGEgPSBudWxscHRyOworICAgIH0pOworfQorCit2b2lkIE9mZnNjcmVl
bkNhbnZhczo6Y29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAgYXV0byogaW1hZ2VC
dWZmZXIgPSBidWZmZXIoKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBGSVhNRTogVHJhbnNmZXIgdGV4dHVyZSBvdmVyIGlmIHdlJ3JlIHVzaW5nIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgaWYgKG1fY29udGV4dCAmJiAobV9jb250ZXh0LT5p
c1dlYkdMKCkgfHwgbV9jb250ZXh0LT5pc0FjY2VsZXJhdGVkKCkpKQorICAgICAgICBtX2NvbnRl
eHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCk7CisKKyAgICBpZiAoaXNNYWluVGhy
ZWFkKCkpIHsKKyAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXJDYW52YXMpIHsKKyAgICAgICAgICAg
IGlmIChhdXRvIGJ1ZmZlckNvcHkgPSBpbWFnZUJ1ZmZlci0+Y29weVJlY3RUb0J1ZmZlcihGbG9h
dFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbG9yU3Bh
Y2U6OlNSR0IsIGltYWdlQnVmZmVyLT5jb250ZXh0KCkpKQorICAgICAgICAgICAgICAgIG1fcGxh
Y2Vob2xkZXJDYW52YXMtPnNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5KFdURk1vdmUoYnVmZmVy
Q29weSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fY29tbWl0TG9jayk7CisKKyAgICBib29sIHNob3VsZFB1c2hCdWZm
ZXIgPSAhbV9wZW5kaW5nQ29tbWl0RGF0YTsKKyAgICBtX3BlbmRpbmdDb21taXREYXRhID0gaW1h
Z2VCdWZmZXItPmdldEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBs
aWVkLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSk7CisK
KyAgICBpZiAoc2hvdWxkUHVzaEJ1ZmZlcikKKyAgICAgICAgcHVzaEJ1ZmZlclRvUGxhY2Vob2xk
ZXIoKTsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnNjaGVkdWxlQ29tbWl0VG9QbGFjZWhv
bGRlckNhbnZhcygpCit7CisgICAgaWYgKCFtX2hhc1NjaGVkdWxlZENvbW1pdCkgeworICAgICAg
ICBhdXRvJiBzY3JpcHRDb250ZXh0ID0gKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAg
ICAgbV9oYXNTY2hlZHVsZWRDb21taXQgPSB0cnVlOworICAgICAgICBzY3JpcHRDb250ZXh0LnBv
c3RUYXNrKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JikgeworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9oYXNTY2hlZHVsZWRDb21t
aXQgPSBmYWxzZTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmNvbW1pdFRvUGxhY2Vob2xk
ZXJDYW52YXMoKTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiBDU1NWYWx1ZVBvb2wmIE9mZnNj
cmVlbkNhbnZhczo6Y3NzVmFsdWVQb29sKCkKQEAgLTM1MSw2ICs0MzcsNyBAQCB2b2lkIE9mZnNj
cmVlbkNhbnZhczo6cmVzZXQoKQogICAgIGNsZWFyQ29waWVkSW1hZ2UoKTsKIAogICAgIG5vdGlm
eU9ic2VydmVyc0NhbnZhc1Jlc2l6ZWQoKTsKKyAgICBzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xk
ZXJDYW52YXMoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZz
Y3JlZW5DYW52YXMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKaW5k
ZXggM2U1ZTMwYTU3NmUzMWE5MzJhNmYxNDZhOTdlYmYwOGRlOWEyNWYzOS4uNjUxNTY3MGU3M2Fl
NWRhNzU1OTY1NDUxM2JhMjI3ZjY1YWEyMGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9PZmZzY3JlZW5DYW52YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVl
bkNhbnZhcy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgi
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDcgKzQ1LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIENTU1ZhbHVlUG9vbDsK
IGNsYXNzIERlZmVycmVkUHJvbWlzZTsKK2NsYXNzIEhUTUxDYW52YXNFbGVtZW50OwogY2xhc3Mg
SW1hZ2VCaXRtYXA7CitjbGFzcyBJbWFnZURhdGE7CiBjbGFzcyBPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CiAKQEAgLTU4LDE2
ICs2MSwxOCBAQCBjbGFzcyBEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcyB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiwgY29uc3QgSW50U2l6ZSYsIGJvb2wgb3JpZ2luQ2xlYW4p
OworICAgIERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4mJiwgY29uc3QgSW50U2l6ZSYsIGJvb2wgb3JpZ2luQ2xlYW4sIFdlYWtQdHI8SFRNTENhbnZh
c0VsZW1lbnQ+JiYgcGxhY2Vob2xkZXJDYW52YXMpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiB0YWtlSW1hZ2VCdWZmZXIoKTsKICAgICBjb25zdCBJbnRTaXplJiBzaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgYm9vbCBvcmlnaW5DbGVhbigpIGNvbnN0IHsg
cmV0dXJuIG1fb3JpZ2luQ2xlYW47IH0KKyAgICBXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiB0
YWtlUGxhY2Vob2xkZXJDYW52YXMoKTsKIAogcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+IG1fYnVmZmVyOwogICAgIEludFNpemUgbV9zaXplOwogICAgIGJvb2wgbV9v
cmlnaW5DbGVhbjsKKyAgICBXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiBtX3BsYWNlaG9sZGVy
Q2FudmFzOwogfTsKIAogY2xhc3MgT2Zmc2NyZWVuQ2FudmFzIGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8T2Zmc2NyZWVuQ2FudmFzPiwgcHVibGljIENhbnZhc0Jhc2UsIHB1YmxpYyBFdmVudFRh
cmdldFdpdGhJbmxpbmVEYXRhLCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsK
QEAgLTg2LDYgKzkxLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFJlZjxPZmZzY3JlZW5DYW52
YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgdW5zaWduZWQgd2lkdGgsIHVuc2ln
bmVkIGhlaWdodCk7CiAgICAgc3RhdGljIFJlZjxPZmZzY3JlZW5DYW52YXM+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVfcHRyPERldGFjaGVkT2Zmc2NyZWVuQ2Fu
dmFzPiYmKTsKKyAgICBzdGF0aWMgUmVmPE9mZnNjcmVlbkNhbnZhcz4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiYmKTsKICAgICB2aXJ0
dWFsIH5PZmZzY3JlZW5DYW52YXMoKTsKIAogICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgZmlu
YWw7CkBAIC05NSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBDYW52YXNSZW5kZXJpbmdDb250
ZXh0KiByZW5kZXJpbmdDb250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb250ZXh0Lmdl
dCgpOyB9CiAKLSAgICBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiBnZXRD
b250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZW5kZXJpbmdDb250ZXh0VHlwZSwgVmVjdG9y
PEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKTsKKyAgICBFeGNlcHRpb25P
cjxPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0Pj4gZ2V0Q29udGV4dChKU0M6OkpT
R2xvYmFsT2JqZWN0JiwgUmVuZGVyaW5nQ29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0cm9uZzxK
U0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdl
Qml0bWFwPj4gdHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CiAgICAgdm9pZCBjb252ZXJ0VG9CbG9i
KEltYWdlRW5jb2RlT3B0aW9ucyYmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIApAQCAtMTA5
LDYgKzExNSw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkRldGFjaCgpIGNvbnN0OwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4gZGV0YWNoKCk7CiAKKyAgICB2
b2lkIGNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKKwogICAgIENTU1ZhbHVlUG9vbCYgY3Nz
VmFsdWVQb29sKCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CkBAIC0xMzgsNiArMTQ2
LDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNsZWFyQ29waWVkSW1hZ2UoKSBjb25zdDsKIAor
ICAgIHZvaWQgc2V0UGxhY2Vob2xkZXJDYW52YXMoV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4m
Jik7CisgICAgdm9pZCBwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpOworICAgIHZvaWQgc2NoZWR1
bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dD4gbV9jb250ZXh0OwogCiAgICAgLy8gbV9oYXNDcmVhdGVkSW1h
Z2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQgdG8gbWFsbG9jIHRoZSBidWZmZXIuIFdlIGRpZG4ndCBu
ZWNlc3NhcmlseSBnZXQgaXQuCkBAIC0xNDYsNiArMTU4LDEyIEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2RldGFjaGVkIHsgZmFsc2UgfTsKIAogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX2Nv
cGllZEltYWdlOworCisgICAgYm9vbCBtX2hhc1NjaGVkdWxlZENvbW1pdCB7IGZhbHNlIH07Cisg
ICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gbV9wbGFjZWhvbGRlckNhbnZhczsKKworICAg
IG11dGFibGUgTG9jayBtX2NvbW1pdExvY2s7CisgICAgUmVmUHRyPEltYWdlRGF0YT4gbV9wZW5k
aW5nQ29tbWl0RGF0YTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmlu
ZGV4IDg2ZDc4NGEzNTFkNTg0Y2U2ZWYzYTY5OTJlN2VjMjA2ZTY4ZDk2MDAuLjBiOWEwNDQxYzE2
YmMzODFiZjY4NzA2ZTcyMjMwYmI1NDYzYWVmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcApAQCAtNDgsNiArNDgsMTEgQEAgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoQ2FudmFzQmFzZSYKIAogT2Zm
c2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp+T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEKCkgPSBkZWZhdWx0OwogCit2b2lkIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y29tbWl0KCkKK3sKKyAgICBkb3duY2FzdDxPZmZzY3JlZW5DYW52YXM+KGNhbnZh
c0Jhc2UoKSkuY29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRleCBjY2Ix
NmU5MmNkMmJkMDRjYTU2OGJjZjYxNjMyNzkyZTY5NDkzM2UwLi5lZTkyOWFmMmIyOWRhZTgyNjNk
ZTFkYWY2MGRkMTY0NTQyNTdlOWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAt
NDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc09mZnNjcmVlbjJkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgT2Zmc2NyZWVuQ2FudmFzJiBjYW52YXMoKSBj
b25zdCB7IHJldHVybiBkb3duY2FzdDxPZmZzY3JlZW5DYW52YXM+KGNhbnZhc0Jhc2UoKSk7IH0K
KworICAgIHZvaWQgY29tbWl0KCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAppbmRleCAwNGVjNmE3NTE5YjE0YTc1YTEyNTY0ZjVl
OWRlYjkxMGVjOGJmMTM5Li5kN2ZlYzg3OTkzNjkwNDRiZGE3MmRlMGViNWM1M2Q2MzdhZTAyNzA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKQEAgLTI3LDE0ICsyNywxMyBAQAog
ICAgIEN1c3RvbUlzUmVhY2hhYmxlLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9T2Zmc2NyZWVuQ2Fu
dmFzLAogICAgIENvbmRpdGlvbmFsPU9GRlNDUkVFTl9DQU5WQVMsCi0gICAgRXhwb3NlZD0oV2lu
ZG93KSwgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcyAtIHNob3VsZCBiZSBXaW5kb3csV29ya2Vy
CisgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3Qs
CiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgLy8gQ2FsbFRyYWNpbmdDYWxsYmFjaz1y
ZWNvcmRDYW52YXNBY3Rpb24sIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52YXMuCiBdIGludGVyZmFj
ZSBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgewogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBPZmZzY3JlZW5DYW52YXMgY2FudmFzOwotICAgIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52
YXMuCi0gICAgLy8gdm9pZCBjb21taXQoKTsKKyAgICB2b2lkIGNvbW1pdCgpOwogCiAgICAgLy8g
SW5zcGVjdG9yLW9ubHkuCiAgICAgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQuY3BwCmluZGV4IDA5MmM0YWVmNjBhNTUxM2Y0NzZjN2Q3MTQzM2ViZTcxYWZhNzgxZDQu
LjFlYzdhMjRlZGY0NDUyMTFiYmJhOTk0MmU4MTQ2YmIxZTdmNjg0YzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250
ZXh0LmNwcApAQCAtMjYsNiArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKIAorI2lmIEVOQUJMRShPRkZTQ1JFRU5f
Q0FOVkFTKQorCisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJPZmZz
Y3JlZW5DYW52YXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0zNyw0ICs0MSwxNCBAQCBQbGFjZWhvbGRlclJlbmRlcmluZ0Nv
bnRleHQ6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNlJiBjYW52YXMpCiB7
CiB9CiAKK0hUTUxDYW52YXNFbGVtZW50KiBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ6OmNh
bnZhcygpIGNvbnN0Cit7CisgICAgYXV0byYgYmFzZSA9IGNhbnZhc0Jhc2UoKTsKKyAgICBpZiAo
IWlzPEhUTUxDYW52YXNFbGVtZW50PihiYXNlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuICZkb3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4oYmFzZSk7CiB9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRl
clJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGMzNDhlNTE4OTUyY2I5ZDQxNWM2YmQxNzk1ZjIx
NmRjYjE2NWQyNTkuLjY0NTA5MTQ1OWRkMDFjYzJhNzk3N2RjMDAzYjQ1MjY1ZGU1YmE3ZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5n
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVu
ZGVyaW5nQ29udGV4dC5oCkBAIC0yNSwxNSArMjUsMjEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
ZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKwogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBPZmZzY3JlZW5DYW52YXM7
CisKIGNsYXNzIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBDYW52
YXNSZW5kZXJpbmdDb250ZXh0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dCk7CiBwdWJsaWM6CiAgICAgUGxhY2Vob2xkZXJSZW5kZXJpbmdD
b250ZXh0KENhbnZhc0Jhc2UmKTsKIAorICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMoKSBj
b25zdDsKKwogcHJpdmF0ZToKICAgICBib29sIGlzUGxhY2Vob2xkZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CiB9OwpAQCAtNDEsMyArNDcsNSBAQCBwcml2YXRlOgogfQogCiBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0NBTlZBU1JFTkRFUklOR0NPTlRFWFQoV2ViQ29yZTo6UGxhY2Vo
b2xkZXJSZW5kZXJpbmdDb250ZXh0LCBpc1BsYWNlaG9sZGVyKCkpCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMWNlNTZjZDQ2ZDY4OWQxZDA0ZjI5MmM4NGJlMjFj
MDgyMGY1MTU1ZC4uNzk2MzgxNGE4M2IxNjAwNTA1ZjcyMzIzNjI1Yzg1ZmFjYjI4ZmJmMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDItMTMg
IENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDYW52
YXMudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gYW5kIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jb21taXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMjc5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMu
dHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zm
c2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQ6
CisKIDIwMjAtMDQtMjYgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgog
CiAgICAgICAgIEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlIHNob3Vs
ZCB1c2UgbmV3VGFyZ2V0J3MgZ2xvYmFsT2JqZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKaW5k
ZXggNmYxYzcwNTBlNWU4MjhjM2YzMjNmMjk1ZmIxZDJhNGZlYzhjMDA3Yy4uNWI5MzhhMmY3MDdi
ZDc1ZjdlMDY0ZDZmMjFmYjEwMjkyZDExMjI0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90
aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNDYzOiBFcnJvcjogYXNzZXJ0
X2VxdWFsczogR3JlZW4gY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4cGVjdGVkIDI1
NSBidXQgZ290IDAKIAotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBj
b21taXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxp
bmcgY29tbWl0IG9uIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBm
cm9tIGEgSFRNTENhbnZhc0VsZW1lbnQgaXMgYSBub29wLiBjdHguY29tbWl0IGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ2N0eC5jb21taXQoKScsICdjdHguY29tbWl0JyBpcyB1bmRlZmluZWQpCitQ
QVNTIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRz
IGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGNv
bW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBh
IEhUTUxDYW52YXNFbGVtZW50IGlzIGEgbm9vcC4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFz
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50
eHQKaW5kZXggNDM0MzMyY2U1MWFiZmUzNzEyZDBlMjQ5NThhODA1MjgxYTYwNzA3NC4uYzQyMThl
Y2FjMjczZDA1NDdmNWU0OWMzZDEyM2ZkYWY4M2YzZWFiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4t
Y2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2Ny
ZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVy
LiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRl
c3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRl
bnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gCiBQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBv
biBhbiBPZmZzY3JlZW5DYW52YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxD
YW52YXNFbGVtZW50IHRocm93cyBhbiBleGNlcHRpb24gaW4gYSB3b3JrZXIuIAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5n
ZXRjb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBiZDlhYTBlMTY3N2U5NDk0ODBiMjIzMzEyMjM4
ZjQ3MDk5ZWYxMzc3Li5jNTdhMjkzZWM0YTliZDY4YzZkOTFmOWFiYzgyNTU0YzRkZjg4ZjZhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNv
bnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKIFBBU1Mg
VGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCB1bi1zdXBwb3J0ZWQgc3RyaW5nIHRocm93cyBhIFR5
cGVFcnJvci4gCiBGQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0cmlu
ZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBBcmd1bWVudCAxICgnY29udGV4dFR5cGUnKSB0byBP
ZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCBtdXN0IGJlIG9uZSBvZjogIjJkIiwgIndlYmdsIgot
RkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5
cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFs
aWQgc3RhdGUuCitQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50
IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1lIAogUEFTUyBUZXN0IHRo
YXQgMmRjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5D
YW52YXMgCiBQQVNTIFRlc3QgdGhhdCB3ZWJnbGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4g
dGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKIEZBSUwgVGVzdCB0aGF0IE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRCB3aXRoIGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBPZmZz
Y3JlZW5DYW52YXMgb3BhcXVlIGFzc2VydF9hcHByb3hfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9m
IHRoZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0ZWQgMTI3ICsvLSAyIGJ1dCBnb3QgMjU1CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNj
cmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRl
eHQud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGYyMjRjZTc0ZWVh
ODc4Y2Y3NmExMzMzYmNhZTFiYWExMGZkNGY2NjcuLjM5ZmMyY2Y5YWFkZGU3ZjJkYjFiM2UyZTMz
Njg5ZWQ3MDcxNzhjYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0
ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGgg
dW4tc3VwcG9ydGVkIHN0cmluZyB0aHJvd3MgYSBUeXBlRXJyb3IuIAotRkFJTCBUZXN0IHRoYXQg
Z2V0Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMg
Q2FuJ3QgZmluZCB2YXJpYWJsZTogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJECi1G
QUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlw
ZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1lIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxp
ZCBzdGF0ZS4KK0ZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5n
IHJldHVybnMgY29ycmVjdCByZXN1bHRzIENhbid0IGZpbmQgdmFyaWFibGU6IFdlYkdMUmVuZGVy
aW5nQ29udGV4dAorUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVu
dCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSAKIFBBU1MgVGVzdCB0
aGF0IDJkY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVu
Q2FudmFzIAogUEFTUyBUZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJu
IHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBGQUlMIFRlc3QgdGhhdCBPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQgd2l0aCBhbHBoYSBkaXNhYmxlZCBtYWtlcyB0aGUgT2Zm
c2NyZWVuQ2FudmFzIG9wYXF1ZSBhc3NlcnRfYXBwcm94X2VxdWFsczogR3JlZW4gY2hhbm5lbCBv
ZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4cGVjdGVkIDEyNyArLy0gMiBidXQgZ290IDI1NQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZz
Y3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5y
ZXNpemUtZXhwZWN0ZWQudHh0CmluZGV4IGY0NTUwNzE3MmI3NmJhZjA2YWIwZTQ0ZWQxNWNlMzMw
NmFkNDgxOGEuLjZjMTFjOGRmNGI2NWE3OTAwYWRkYzc0NmFhOWEwZWU3Nzk0MTg2MWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2Ny
ZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFz
LnJlc2l6ZS1leHBlY3RlZC50eHQKQEAgLTIsMTEgKzIsMTEgQEAKIFBBU1MgVmVyaWZ5IHRoYXQg
d3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVl
bkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIG5vIGNvbnRleHQgYXR0YWNoZWQuIAogUEFTUyBW
ZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2Yg
YW4gT2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgYSAyZCBjb250ZXh0IGF0dGFj
aGVkLiAKIFBBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBh
dHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIGEgd2Vi
Z2wgY29udGV4dCBhdHRhY2hlZC4gCi1GQUlMIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdp
ZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFu
IGV4Y2VwdGlvbiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigp
JywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQp
Ci1GQUlMIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1
dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBldmVuIHdoZW4g
bm90IGNoYW5naW5nIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlLiBwbGFjZWhvbGRlci50cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcg
dG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMg
dGhyb3dzIGFuIGV4Y2VwdGlvbiAKK1BBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lk
dGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4g
ZXhjZXB0aW9uIGV2ZW4gd2hlbiBub3QgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1
dGUuIAogUEFTUyBWZXJpZnkgdGhhdCByZXNpemluZyBhIDJkIGNvbnRleHQgcmVzZXRzIGl0cyBz
dGF0ZS4gCiBQQVNTIFZlcmlmeSB0aGF0IHNldHRpbmcgdGhlIHNpemUgb2YgYSAyZCBjb250ZXh0
IHRvIHRoZSBzYW1lIHNpemUgaXQgYWxyZWFkeSBoYWQgcmVzZXRzIGl0cyBzdGF0ZS4gCi1GQUlM
IFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgMmQgY29udGV4
dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5j
aHJvbm91c2x5LiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigp
JywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQp
Ci1GQUlMIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgd2Vi
Z2wgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2Fu
dmFzIGFzeW5jaHJvbm91c2x5LiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1
bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0aGF0IGRyYXdJbWFnZSB1c2VzIHRoZSBzaXplIG9mIHRo
ZSBmcmFtZSBhcyB0aGUgaW50aW5zaWMgc2l6ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcy4gcGxh
Y2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBWZXJpZnkg
dGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBhIDJkIGNvbnRleHQgcHJvcGFn
YXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25vdXNs
eS4gCitQQVNTIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEg
d2ViZ2wgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIg
Y2FudmFzIGFzeW5jaHJvbm91c2x5LiAKK1BBU1MgVmVyaWZ5IHRoYXQgZHJhd0ltYWdlIHVzZXMg
dGhlIHNpemUgb2YgdGhlIGZyYW1lIGFzIHRoZSBpbnRpbnNpYyBzaXplIG9mIGEgcGxhY2Vob2xk
ZXIgY2FudmFzLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZh
cy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRv
Lm9mZnNjcmVlbi1leHBlY3RlZC50eHQKaW5kZXggNGY0MmU1MDc0MjgyODBhMmVhMTlmNzYzY2Y4
Yzk2MTlhZTViYjMwNS4uMjk2MDQ4NWI3YjZhZDZmNzA2MmRlZjlmZTdiNzllNWNiNzRiODNiZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9v
ZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFu
c2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4t
ZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1GQUlMIFRlc3QgdGhhdCBhbiBPZmZzY3Jl
ZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29y
cmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2Ny
ZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlz
IHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNl
aG9sZGVyIGNhbnZhcyB0aGF0IGhhcyBhbHJlYWR5IHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRo
cm93cyBhbiBleGNlcHRpb24gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4g
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5k
ZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5l
cmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFu
ZCBoZWlnaHQgCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhv
bGRlciBjYW52YXMgdGhhdCBoYXMgYWxyZWFkeSB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0aHJv
d3MgYW4gZXhjZXB0aW9uIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uIAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5v
ZmZzY3JlZW4udy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQKaW5k
ZXggMmNkM2RiNGIyNzZkYzFjMTFkMWVjZGIwNDhiM2I3OTA5M2VlZTBkYS4uMzNiODUzMmNiMmUw
MDQxNGE2ZDU0YTZkYTc5YWU3NmVhZjQ2NTYzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnct
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52
YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsx
LDUgQEAKIAotRkFJTCBUZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCB3
aGVuIGl0IGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4
dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGlzIHRyYW5zZmVycmVkIGl0cyBjb250cm9s
IHRvIGFuIE9mZnNjcmVlbkNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIHRoZSBPZmZz
Y3JlZW5DYW52YXMgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIu
dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyB0cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIGl0
cyBhc3NvY2lhdGVkIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciBw
bGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9s
ZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3Qg
dGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zm
c2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHdoZW4gaXQgaXMgdHJhbnNmZXJy
ZWQgdG8gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBw
bGFjZWhvbGRlciBjYW52YXMgdGhhdCBpcyB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0byBhbiBP
ZmZzY3JlZW5DYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgd2hlbiB0aGUgT2Zmc2NyZWVuQ2Fu
dmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyB0
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVu
IGl0cyBhc3NvY2lhdGVkIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtl
ciAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397677</attachid>
            <date>2020-04-27 06:38:51 -0700</date>
            <delta_ts>2020-04-27 09:46:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200427143850.patch</filename>
            <type>text/plain</type>
            <size>39348</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU5YTMzZmI3MDg0OGYz
OGQ5MmUyZTZiMTlkYzJmZTEwZTZhNzY3ZC4uNDk5MTNjNTI1YTVlZWY4ZmNiNmMxOGUyMmEwYmE0
Y2Y3YzVhYzFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52
YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAyMC0wNC0yNyAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEs0XSBHZGtSR0JB
IGhhcyBmbG9hdCBtZW1iZXJzIGluc3RlYWQgb2YgZG91YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDBkYjUyNjhhZGVkZTBiZGYxMDU0MDE0ZTQ5MTdi
NDM5YjgyOGUwZjMuLjg1Mjk0ZTRiYjYxYzRiOTU5MTg1YWMxYWI1N2IzMDc1ZGM1MTBiYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00OSw2ICs0OSw3
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZE9ic2VydmVyLmgiCkBAIC0xNzEsNyArMTcyLDcgQEAgYm9vbCBIVE1MQ2FudmFzRWxl
bWVudDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdAogCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1M
Q2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogewotICAgIGlmIChtX2Nv
bnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxl
ZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0
ciwgQXRvbVN0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVlLCBk
ZWZhdWx0SGVpZ2h0KSkpOwogICAgIHJldHVybiB7IH07CkBAIC0xNzksNyArMTgwLDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1
ZSkKIAogRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2ln
bmVkIHZhbHVlKQogewotICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9s
ZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09u
bHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRXaWR0aCkpKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNTQwLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiB7
Ci0gICAgaWYgKG1faWdub3JlUmVzZXQpCisgICAgaWYgKG1faWdub3JlUmVzZXQgfHwgaXNDb250
cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRJbWFn
ZUJ1ZmZlciA9IGhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpOwpAQCAtNzQyLDYgKzc0MywyNCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFJlZgogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUo
T0ZGU0NSRUVOX0NBTlZBUykKK0V4Y2VwdGlvbk9yPFJlZjxPZmZzY3JlZW5DYW52YXM+PiBIVE1M
Q2FudmFzRWxlbWVudDo6dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAobV9jb250ZXh0KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGF1dG8gY2FudmFzID0gT2Zm
c2NyZWVuQ2FudmFzOjpjcmVhdGUoY29udGV4dCwgbWFrZVdlYWtQdHIoKnRoaXMpKTsKKyAgICBt
X2NvbnRleHQgPSBtYWtlVW5pcXVlPFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dD4oKnRoaXMp
OworCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJl
IGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUg
Y2FudmFzLgorICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKyNlbmRp
ZgorCisgICAgcmV0dXJuIGNhbnZhczsKK30KKyNlbmRpZgorCiBSZWZQdHI8SW1hZ2VEYXRhPiBI
VE1MQ2FudmFzRWxlbWVudDo6Z2V0SW1hZ2VEYXRhKCkKIHsKICNpZiBFTkFCTEUoV0VCR0wpCkBA
IC05MTYsOCArOTM1LDE3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVm
ZmVyKCkgY29uc3QKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0SW1hZ2VCdWZmZXJBbmRN
YXJrRGlydHkoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmIGJ1ZmZlcikKIHsKKyAgICBJ
bnRTaXplIG9sZFNpemUgPSBzaXplKCk7CiAgICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSB0
cnVlOwogICAgIHNldEltYWdlQnVmZmVyKFdURk1vdmUoYnVmZmVyKSk7CisKKyAgICBpZiAoaXND
b250cm9sbGVkQnlPZmZzY3JlZW4oKSAmJiBvbGRTaXplICE9IHNpemUoKSkgeworICAgICAgICBz
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdpZHRoQXR0ciwgQXRvbVN0cmluZzo6
bnVtYmVyKHdpZHRoKCkpKTsKKyAgICAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihoZWlnaHRBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIoaGVpZ2h0KCkpKTsKKyAgICAgICAg
bm90aWZ5T2JzZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAgICAgICBpbnZhbGlkYXRlU3R5bGVB
bmRSZW5kZXJlcnNGb3JTdWJ0cmVlKCk7CisgICAgfQorCiAgICAgZGlkRHJhdyhGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBzaXplKCkpKTsKIH0KIApAQCAtOTc3LDQgKzEwMDUsOSBAQCB2b2lkIEhU
TUxDYW52YXNFbGVtZW50OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSgpCiAjZW5kaWYKIH0KIAor
Ym9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSBjb25zdAor
eworICAgIHJldHVybiBtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCk7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA1MGU3YzJj
ZGVlMTA1ODJiNmE5N2NjZDJhNzc1Njc0OTA4ZGZmMzhjLi5iNjAxYjdlYTU0MmEzNGZmYTQxMTA2
Y2E5ZWJiOTY0ZTY5NDIxODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgSW1hZ2VEYXRh
OwogY2xhc3MgTWVkaWFTYW1wbGU7CiBjbGFzcyBNZWRpYVN0cmVhbTsKK2NsYXNzIE9mZnNjcmVl
bkNhbnZhczsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiBjbGFzcyBHUFVDYW52
YXNDb250ZXh0Owogc3RydWN0IFVuY2FjaGVkU3RyaW5nOwpAQCAtOTcsNiArOTgsOSBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0
YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB0b0Jsb2IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxCbG9iQ2FsbGJhY2s+JiYsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZB
UykKKyAgICBFeGNlcHRpb25PcjxSZWY8T2Zmc2NyZWVuQ2FudmFzPj4gdHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworI2VuZGlmCiAKICAgICAvLyBV
c2VkIGZvciByZW5kZXJpbmcKICAgICB2b2lkIGRpZERyYXcoY29uc3QgRmxvYXRSZWN0JikgZmlu
YWw7CkBAIC0xMjksNiArMTMzLDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgc2V0TWF4UGl4ZWxNZW1vcnlGb3JUZXN0aW5nKHNpemVfdCk7CiAKKyAgICBib29s
IGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFRNTENh
bnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKaW5kZXggNzE4YTllYTdhNGM5NzE1YTJl
NzgwNDc3NTUyYzJiNWY1MTNhOWEwYS4uYWU0ZmNhYWMyNjlmNmJjM2Y1NDBlYmQxZTQ3YjU4OTI3
ZGIzZWVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKQEAg
LTUwLDYgKzUwLDcgQEAgdHlwZWRlZiAoCiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0
cmluZyB0b0RhdGFVUkwob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFs
aXR5KTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNl
cHRpb25dIHZvaWQgdG9CbG9iKEJsb2JDYWxsYmFjayBjYWxsYmFjaywgb3B0aW9uYWwgRE9NU3Ry
aW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKKyAgICBbQ29uZGl0aW9uYWw9T0ZGU0NS
RUVOX0NBTlZBUywgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNl
cHRpb25dIE9mZnNjcmVlbkNhbnZhcyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOwogCiAg
ICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgQ2FsbFdpdGg9RG9jdW1lbnQsIE1heVRocm93
RXhjZXB0aW9uLCBOZXdPYmplY3RdIE1lZGlhU3RyZWFtIGNhcHR1cmVTdHJlYW0ob3B0aW9uYWwg
ZG91YmxlIGZyYW1lUmVxdWVzdFJhdGUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVu
Q2FudmFzLmNwcAppbmRleCA2MDZhNGQ3Y2UxNThkMjhmNTk5Nzk2ZTNhMzk2NjVhZmY0NmFkMDdm
Li45OWE0OTgyYTQ3ZjM5ZTlkMjdhMTllNDM4YmM1MDJkM2MzYjhiMWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBAIC0zMSwxMSArMzEsMTQgQEAKICNpbmNsdWRl
ICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkltYWdlQml0bWFwLmgiCisjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAi
SlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmgiCisjaW5jbHVkZSAiUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2Nv
cGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtNDQsMTAgKzQ3LDEx
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE9m
ZnNjcmVlbkNhbnZhcyk7CiAKLURldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjpEZXRhY2hlZE9mZnNj
cmVlbkNhbnZhcyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyLCBjb25zdCBJ
bnRTaXplJiBzaXplLCBib29sIG9yaWdpbkNsZWFuKQorRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6
OkRldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBi
dWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wgb3JpZ2luQ2xlYW4sIFdlYWtQdHI8SFRN
TENhbnZhc0VsZW1lbnQ+JiYgcGxhY2Vob2xkZXJDYW52YXMpCiAgICAgOiBtX2J1ZmZlcihXVEZN
b3ZlKGJ1ZmZlcikpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fb3JpZ2luQ2xlYW4ob3Jp
Z2luQ2xlYW4pCisgICAgLCBtX3BsYWNlaG9sZGVyQ2FudmFzKFdURk1vdmUocGxhY2Vob2xkZXJD
YW52YXMpKQogewogfQogCkBAIC01Niw2ICs2MCwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXI+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKQogICAgIHJl
dHVybiBXVEZNb3ZlKG1fYnVmZmVyKTsKIH0KIAorV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4g
RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICByZXR1cm4gV1RGTW92ZShtX3BsYWNlaG9sZGVy
Q2FudmFzKTsKK30KKwogUmVmPE9mZnNjcmVlbkNhbnZhcz4gT2Zmc2NyZWVuQ2FudmFzOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgdW5zaWduZWQgd2lkdGgsIHVuc2ln
bmVkIGhlaWdodCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5DYW52YXMo
Y29udGV4dCwgd2lkdGgsIGhlaWdodCkpOwpAQCAtNjMsMTQgKzczLDI3IEBAIFJlZjxPZmZzY3Jl
ZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIHVuCiAKIFJlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6dW5pcXVlX3B0cjxEZXRh
Y2hlZE9mZnNjcmVlbkNhbnZhcz4mJiBkZXRhY2hlZENhbnZhcykKIHsKLSAgICBSZWY8T2Zmc2Ny
ZWVuQ2FudmFzPiBjbG9uZSA9IGFkb3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQs
IGRldGFjaGVkQ2FudmFzLT5zaXplKCkud2lkdGgoKSwgZGV0YWNoZWRDYW52YXMtPnNpemUoKS5o
ZWlnaHQoKSkpOworICAgIGF1dG8gY2xvbmUgPSBhZG9wdFJlZigqbmV3IE9mZnNjcmVlbkNhbnZh
cyhjb250ZXh0LCBkZXRhY2hlZENhbnZhcy0+c2l6ZSgpLndpZHRoKCksIGRldGFjaGVkQ2FudmFz
LT5zaXplKCkuaGVpZ2h0KCkpKTsKKwogICAgIGNsb25lLT5zZXRJbWFnZUJ1ZmZlcihkZXRhY2hl
ZENhbnZhcy0+dGFrZUltYWdlQnVmZmVyKCkpOwogICAgIGlmICghZGV0YWNoZWRDYW52YXMtPm9y
aWdpbkNsZWFuKCkpCiAgICAgICAgIGNsb25lLT5zZXRPcmlnaW5UYWludGVkKCk7CiAKKyAgICBj
YWxsT25NYWluVGhyZWFkKFtkZXRhY2hlZENhbnZhcyA9IFdURk1vdmUoZGV0YWNoZWRDYW52YXMp
LCBvZmZzY3JlZW5DYW52YXMgPSBtYWtlUmVmKGNsb25lLmdldCgpKV0gKCkgbXV0YWJsZSB7Cisg
ICAgICAgIG9mZnNjcmVlbkNhbnZhcy0+c2V0UGxhY2Vob2xkZXJDYW52YXMoZGV0YWNoZWRDYW52
YXMtPnRha2VQbGFjZWhvbGRlckNhbnZhcygpKTsKKyAgICAgICAgb2Zmc2NyZWVuQ2FudmFzLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnBvc3RUYXNrKFtyZWxlYXNlT2Zmc2NyZWVuQ2FudmFz
ID0gV1RGTW92ZShvZmZzY3JlZW5DYW52YXMpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsg
fSk7CisgICAgfSk7CisKICAgICByZXR1cm4gY2xvbmU7CiB9CiAKK1JlZjxPZmZzY3JlZW5DYW52
YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiYgY2FudmFzKQoreworICAgIGF1dG8gb2Zm
c2NyZWVuID0gYWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwgY2FudmFzLT53
aWR0aCgpLCBjYW52YXMtPmhlaWdodCgpKSk7CisgICAgb2Zmc2NyZWVuLT5zZXRQbGFjZWhvbGRl
ckNhbnZhcyhXVEZNb3ZlKGNhbnZhcykpOworICAgIHJldHVybiBvZmZzY3JlZW47Cit9CisKIE9m
ZnNjcmVlbkNhbnZhczo6T2Zmc2NyZWVuQ2FudmFzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCiAgICAgOiBDYW52YXNCYXNl
KEludFNpemUod2lkdGgsIGhlaWdodCkpCiAgICAgLCBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cigmY29udGV4dCkKQEAgLTc5LDggKzEwMiw5IEBAIE9mZnNjcmVlbkNhbnZhczo6T2Zmc2NyZWVu
Q2FudmFzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVuc2lnbmVkIHdpZHRoCiAK
IE9mZnNjcmVlbkNhbnZhczo6fk9mZnNjcmVlbkNhbnZhcygpCiB7Ci0gICAgbm90aWZ5T2JzZXJ2
ZXJzQ2FudmFzRGVzdHJveWVkKCk7CisgICAgY2FsbE9uTWFpblRocmVhZChbcGxhY2Vob2xkZXIg
PSBXVEZNb3ZlKG1fcGxhY2Vob2xkZXJDYW52YXMpXSB7IH0pOwogCisgICAgbm90aWZ5T2JzZXJ2
ZXJzQ2FudmFzRGVzdHJveWVkKCk7CiAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsgLy8gRW5zdXJl
IHRoaXMgZ29lcyBhd2F5IGJlZm9yZSB0aGUgSW1hZ2VCdWZmZXIuCiAgICAgc2V0SW1hZ2VCdWZm
ZXIobnVsbHB0cik7CiB9CkBAIC0xMTksNyArMTQzLDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6
OnNldFNpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKICAgICByZXNldCgpOwogfQogCi1FeGNl
cHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENv
bnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIFJlbmRlcmluZ0NvbnRleHRUeXBlIGNv
bnRleHRUeXBlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMp
CitFeGNlcHRpb25PcjxPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0Pj4gT2Zmc2Ny
ZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBSZW5kZXJp
bmdDb250ZXh0VHlwZSBjb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93
bj4+JiYgYXJndW1lbnRzKQogewogICAgIGlmIChtX2RldGFjaGVkKQogICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKQEAgLTEyNywyMiArMTUxLDIyIEBAIEV4
Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+IE9mZnNjcmVlbkNhbnZhczo6Z2V0
Q29udGV4dChKU0M6OkpTR2xvYmFsCiAgICAgaWYgKGNvbnRleHRUeXBlID09IFJlbmRlcmluZ0Nv
bnRleHRUeXBlOjpfMmQpIHsKICAgICAgICAgaWYgKG1fY29udGV4dCkgewogICAgICAgICAgICAg
aWYgKCFpczxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpKQot
ICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9Owot
ICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9j
b250ZXh0KSB9IH07CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9
OworICAgICAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
KCptX2NvbnRleHQpIH0gfSB9OwogICAgICAgICB9CiAKICAgICAgICAgbV9jb250ZXh0ID0gbWFr
ZVVuaXF1ZTxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCp0aGlzKTsKICAgICAg
ICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8T2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7IG51bGxwdHIgfSB9OworICAgICAgICAgICAgcmV0
dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9OwogCi0gICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICByZXR1cm4geyB7
IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9IH07CiAgICAg
fQogI2lmIEVOQUJMRShXRUJHTCkKICAgICBpZiAoY29udGV4dFR5cGUgPT0gUmVuZGVyaW5nQ29u
dGV4dFR5cGU6OldlYmdsKSB7CiAgICAgICAgIGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgICAg
IGlmICghaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAgICAgICAg
IHJldHVybiB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICAgICAgaWYgKGlzPFdl
YkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHsgeyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfSB9OworICAgICAgICAgICAgcmV0dXJuIHsgeyBX
VEY6Om51bGxvcHQgfSB9OwogICAgICAgICB9CiAKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUoc3RhdGUudm0oKSk7CkBAIC0xNTEsMTMgKzE3NSwxMyBAQCBFeGNlcHRp
b25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRl
eHQoSlNDOjpKU0dsb2JhbAogCiAgICAgICAgIG1fY29udGV4dCA9IFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmNyZWF0ZSgqdGhpcywgYXR0cmlidXRlcywgIndlYmdsIik7CiAgICAgICAgIGlm
ICghbV9jb250ZXh0KQotICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5n
Q29udGV4dD4geyBudWxscHRyIH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxs
b3B0IH0gfTsKIAotICAgICAgICByZXR1cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0
PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAg
ICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2Fz
dDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfSB9OwogICAgIH0KICNlbmRp
ZgogCi0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8SW1h
Z2VCaXRtYXA+PiBPZmZzY3JlZW5DYW52YXM6OnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpCkBAIC0y
NTksNiArMjgzLDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OmNvbnZlcnRUb0Jsb2IoSW1hZ2VF
bmNvZGVPcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZmVycmVkUHIKIHZvaWQgT2Zmc2NyZWVuQ2Fu
dmFzOjpkaWREcmF3KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBjbGVhckNvcGllZElt
YWdlKCk7CisgICAgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CiAgICAgbm90
aWZ5T2JzZXJ2ZXJzQ2FudmFzQ2hhbmdlZChyZWN0KTsKIH0KIApAQCAtMzAxLDcgKzMyNiw2OSBA
QCBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZh
czo6ZGV0YWNoKCkKIAogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwogCi0gICAgcmV0dXJuIG1ha2VV
bmlxdWU8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+KHRha2VJbWFnZUJ1ZmZlcigpLCBzaXplKCks
IG9yaWdpbkNsZWFuKCkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPERldGFjaGVkT2Zmc2NyZWVu
Q2FudmFzPih0YWtlSW1hZ2VCdWZmZXIoKSwgc2l6ZSgpLCBvcmlnaW5DbGVhbigpLCBXVEZNb3Zl
KG1fcGxhY2Vob2xkZXJDYW52YXMpKTsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFBs
YWNlaG9sZGVyQ2FudmFzKFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiYgY2FudmFzKQorewor
ICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IG1fcGxhY2Vob2xkZXJDYW52YXMgPSBXVEZNb3ZlKGNhbnZhcyk7Cit9CisKK3ZvaWQgT2Zmc2Ny
ZWVuQ2FudmFzOjpwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpCit7CisgICAgY2FsbE9uTWFpblRo
cmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzXSAoKSBtdXRhYmxlIHsK
KyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2NvbW1pdExvY2spOworCisgICAgICAg
IGlmIChtX3BsYWNlaG9sZGVyQ2FudmFzICYmIG1fcGVuZGluZ0NvbW1pdERhdGEpIHsKKyAgICAg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6
OmNyZWF0ZShGbG9hdFNpemUobV9wZW5kaW5nQ29tbWl0RGF0YS0+c2l6ZSgpKSwgUmVuZGVyaW5n
TW9kZTo6VW5hY2NlbGVyYXRlZCk7CisgICAgICAgICAgICBidWZmZXItPnB1dEltYWdlRGF0YShB
bHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCAqbV9wZW5kaW5nQ29tbWl0RGF0
YSwgSW50UmVjdChJbnRQb2ludCgpLCBtX3BlbmRpbmdDb21taXREYXRhLT5zaXplKCkpKTsKKyAg
ICAgICAgICAgIG1fcGxhY2Vob2xkZXJDYW52YXMtPnNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5
KFdURk1vdmUoYnVmZmVyKSk7CisgICAgICAgICAgICBtX3BlbmRpbmdDb21taXREYXRhID0gbnVs
bHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9z
dFRhc2soW3JlbGVhc2VUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKSB7IH0pOworICAgIH0pOworfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6
Y29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAgYXV0byogaW1hZ2VCdWZmZXIgPSBi
dWZmZXIoKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBGSVhNRTogVHJhbnNmZXIgdGV4dHVyZSBvdmVyIGlmIHdlJ3JlIHVzaW5nIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nCisgICAgaWYgKG1fY29udGV4dCAmJiAobV9jb250ZXh0LT5pc1dlYkdMKCkg
fHwgbV9jb250ZXh0LT5pc0FjY2VsZXJhdGVkKCkpKQorICAgICAgICBtX2NvbnRleHQtPnBhaW50
UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCk7CisKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsK
KyAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXJDYW52YXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRv
IGJ1ZmZlckNvcHkgPSBpbWFnZUJ1ZmZlci0+Y29weVJlY3RUb0J1ZmZlcihGbG9hdFJlY3QoRmxv
YXRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbG9yU3BhY2U6OlNSR0Is
IGltYWdlQnVmZmVyLT5jb250ZXh0KCkpKQorICAgICAgICAgICAgICAgIG1fcGxhY2Vob2xkZXJD
YW52YXMtPnNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5KFdURk1vdmUoYnVmZmVyQ29weSkpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fY29tbWl0TG9jayk7CisKKyAgICBib29sIHNob3VsZFB1c2hCdWZmZXIgPSAhbV9w
ZW5kaW5nQ29tbWl0RGF0YTsKKyAgICBtX3BlbmRpbmdDb21taXREYXRhID0gaW1hZ2VCdWZmZXIt
PmdldEltYWdlRGF0YShBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBJbnRS
ZWN0KEludFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSk7CisKKyAgICBpZiAo
c2hvdWxkUHVzaEJ1ZmZlcikKKyAgICAgICAgcHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKTsKK30K
Kwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNhbnZh
cygpCit7CisgICAgaWYgKCFtX2hhc1NjaGVkdWxlZENvbW1pdCkgeworICAgICAgICBhdXRvJiBz
Y3JpcHRDb250ZXh0ID0gKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAgICAgbV9oYXNT
Y2hlZHVsZWRDb21taXQgPSB0cnVlOworICAgICAgICBzY3JpcHRDb250ZXh0LnBvc3RUYXNrKFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXNdIChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JikgeworICAgICAgICAgICAgbV9oYXNTY2hlZHVsZWRDb21taXQgPSBmYWxzZTsKKyAgICAg
ICAgICAgIGNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKKyAgICAgICAgfSk7CisgICAgfQog
fQogCiBDU1NWYWx1ZVBvb2wmIE9mZnNjcmVlbkNhbnZhczo6Y3NzVmFsdWVQb29sKCkKQEAgLTM1
MSw2ICs0MzgsNyBAQCB2b2lkIE9mZnNjcmVlbkNhbnZhczo6cmVzZXQoKQogICAgIGNsZWFyQ29w
aWVkSW1hZ2UoKTsKIAogICAgIG5vdGlmeU9ic2VydmVyc0NhbnZhc1Jlc2l6ZWQoKTsKKyAgICBz
Y2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvT2Zmc2NyZWVuQ2FudmFzLmgKaW5kZXggM2U1ZTMwYTU3NmUzMWE5MzJhNmYxNDZhOTdlYmYw
OGRlOWEyNWYzOS4uNjUxNTY3MGU3M2FlNWRhNzU1OTY1NDUxM2JhMjI3ZjY1YWEyMGY1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDcg
KzQ1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDsKIGNsYXNzIENTU1ZhbHVlUG9vbDsKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKK2NsYXNzIEhU
TUxDYW52YXNFbGVtZW50OwogY2xhc3MgSW1hZ2VCaXRtYXA7CitjbGFzcyBJbWFnZURhdGE7CiBj
bGFzcyBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7CiBjbGFzcyBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ7CiAKQEAgLTU4LDE2ICs2MSwxOCBAQCBjbGFzcyBEZXRhY2hlZE9mZnNjcmVl
bkNhbnZhcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV0YWNoZWRPZmZzY3JlZW5DYW52
YXMpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIERldGFjaGVk
T2Zmc2NyZWVuQ2FudmFzKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiwgY29uc3QgSW50
U2l6ZSYsIGJvb2wgb3JpZ2luQ2xlYW4pOworICAgIERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiwgY29uc3QgSW50U2l6ZSYsIGJvb2wgb3JpZ2lu
Q2xlYW4sIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+JiYgcGxhY2Vob2xkZXJDYW52YXMpOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiB0YWtlSW1hZ2VCdWZmZXIoKTsKICAg
ICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgYm9v
bCBvcmlnaW5DbGVhbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luQ2xlYW47IH0KKyAgICBXZWFr
UHRyPEhUTUxDYW52YXNFbGVtZW50PiB0YWtlUGxhY2Vob2xkZXJDYW52YXMoKTsKIAogcHJpdmF0
ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IG1fYnVmZmVyOwogICAgIEludFNp
emUgbV9zaXplOwogICAgIGJvb2wgbV9vcmlnaW5DbGVhbjsKKyAgICBXZWFrUHRyPEhUTUxDYW52
YXNFbGVtZW50PiBtX3BsYWNlaG9sZGVyQ2FudmFzOwogfTsKIAogY2xhc3MgT2Zmc2NyZWVuQ2Fu
dmFzIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8T2Zmc2NyZWVuQ2FudmFzPiwgcHVibGljIENh
bnZhc0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwcml2YXRlIENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyIHsKQEAgLTg2LDYgKzkxLDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIFJlZjxPZmZzY3JlZW5DYW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCk7CiAgICAgc3RhdGljIFJlZjxPZmZz
Y3JlZW5DYW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1bmlxdWVf
cHRyPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPiYmKTsKKyAgICBzdGF0aWMgUmVmPE9mZnNjcmVl
bkNhbnZhcz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWFrUHRyPEhUTUxDYW52
YXNFbGVtZW50PiYmKTsKICAgICB2aXJ0dWFsIH5PZmZzY3JlZW5DYW52YXMoKTsKIAogICAgIHVu
c2lnbmVkIHdpZHRoKCkgY29uc3QgZmluYWw7CkBAIC05NSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAK
ICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiByZW5kZXJpbmdDb250ZXh0KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKLSAgICBFeGNlcHRpb25PcjxPZmZzY3Jl
ZW5SZW5kZXJpbmdDb250ZXh0PiBnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZW5k
ZXJpbmdDb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJn
dW1lbnRzKTsKKyAgICBFeGNlcHRpb25PcjxPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250
ZXh0Pj4gZ2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVuZGVyaW5nQ29udGV4dFR5
cGUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7CiAgICAg
RXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gdHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7
CiAgICAgdm9pZCBjb252ZXJ0VG9CbG9iKEltYWdlRW5jb2RlT3B0aW9ucyYmLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmKTsKIApAQCAtMTA5LDYgKzExNSw4IEBAIHB1YmxpYzoKICAgICBib29sIGNh
bkRldGFjaCgpIGNvbnN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNh
bnZhcz4gZGV0YWNoKCk7CiAKKyAgICB2b2lkIGNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsK
KwogICAgIENTU1ZhbHVlUG9vbCYgY3NzVmFsdWVQb29sKCk7CiAKICAgICB1c2luZyBSZWZDb3Vu
dGVkOjpyZWY7CkBAIC0xMzgsNiArMTQ2LDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNsZWFy
Q29waWVkSW1hZ2UoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0UGxhY2Vob2xkZXJDYW52YXMoV2Vh
a1B0cjxIVE1MQ2FudmFzRWxlbWVudD4mJik7CisgICAgdm9pZCBwdXNoQnVmZmVyVG9QbGFjZWhv
bGRlcigpOworICAgIHZvaWQgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dD4gbV9jb250ZXh0Owog
CiAgICAgLy8gbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQgdG8gbWFsbG9j
IHRoZSBidWZmZXIuIFdlIGRpZG4ndCBuZWNlc3NhcmlseSBnZXQgaXQuCkBAIC0xNDYsNiArMTU4
LDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RldGFjaGVkIHsgZmFsc2UgfTsKIAogICAgIG11
dGFibGUgUmVmUHRyPEltYWdlPiBtX2NvcGllZEltYWdlOworCisgICAgYm9vbCBtX2hhc1NjaGVk
dWxlZENvbW1pdCB7IGZhbHNlIH07CisgICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gbV9w
bGFjZWhvbGRlckNhbnZhczsKKworICAgIG11dGFibGUgTG9jayBtX2NvbW1pdExvY2s7CisgICAg
UmVmUHRyPEltYWdlRGF0YT4gbV9wZW5kaW5nQ29tbWl0RGF0YTsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDg2ZDc4NGEzNTFkNTg0Y2U2ZWYzYTY5OTJlN2Vj
MjA2ZTY4ZDk2MDAuLjBiOWEwNDQxYzE2YmMzODFiZjY4NzA2ZTcyMjMwYmI1NDYzYWVmMGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtNDgsNiArNDgsMTEgQEAgT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQoQ2FudmFzQmFzZSYKIAogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp+
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKCkgPSBkZWZhdWx0OwogCit2b2lkIE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y29tbWl0KCkKK3sKKyAgICBkb3duY2Fz
dDxPZmZzY3JlZW5DYW52YXM+KGNhbnZhc0Jhc2UoKSkuY29tbWl0VG9QbGFjZWhvbGRlckNhbnZh
cygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaAppbmRleCBjY2IxNmU5MmNkMmJkMDRjYTU2OGJjZjYxNjMyNzkyZTY5NDkz
M2UwLi5lZTkyOWFmMmIyOWRhZTgyNjNkZTFkYWY2MGRkMTY0NTQyNTdlOWUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c09mZnNjcmVlbjJkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgT2Zm
c2NyZWVuQ2FudmFzJiBjYW52YXMoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxPZmZzY3JlZW5D
YW52YXM+KGNhbnZhc0Jhc2UoKSk7IH0KKworICAgIHZvaWQgY29tbWl0KCk7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAppbmRleCAw
NGVjNmE3NTE5YjE0YTc1YTEyNTY0ZjVlOWRlYjkxMGVjOGJmMTM5Li5kN2ZlYzg3OTkzNjkwNDRi
ZGE3MmRlMGViNWM1M2Q2MzdhZTAyNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5p
ZGwKQEAgLTI3LDE0ICsyNywxMyBAQAogICAgIEN1c3RvbUlzUmVhY2hhYmxlLAogICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9T2Zmc2NyZWVuQ2FudmFzLAogICAgIENvbmRpdGlvbmFsPU9GRlNDUkVFTl9D
QU5WQVMsCi0gICAgRXhwb3NlZD0oV2luZG93KSwgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcyAt
IHNob3VsZCBiZSBXaW5kb3csV29ya2VyCisgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAg
ICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAg
Ly8gQ2FsbFRyYWNpbmdDYWxsYmFjaz1yZWNvcmRDYW52YXNBY3Rpb24sIC8vIEZJWE1FOiBPZmZz
Y3JlZW5DYW52YXMuCiBdIGludGVyZmFjZSBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBPZmZzY3JlZW5DYW52YXMgY2FudmFzOwotICAg
IC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52YXMuCi0gICAgLy8gdm9pZCBjb21taXQoKTsKKyAgICB2
b2lkIGNvbW1pdCgpOwogCiAgICAgLy8gSW5zcGVjdG9yLW9ubHkuCiAgICAgLy8gRklYTUU6IE9m
ZnNjcmVlbkNhbnZhcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1Bs
YWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDA5MmM0YWVmNjBhNTUxM2Y0
NzZjN2Q3MTQzM2ViZTcxYWZhNzgxZDQuLjFlYzdhMjRlZGY0NDUyMTFiYmJhOTk0MmU4MTQ2YmIx
ZTdmNjg0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjYsNiArMjYsMTAgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIK
IAorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorCisjaW5jbHVkZSAiSFRNTENhbnZhc0Vs
ZW1lbnQuaCIKKyNpbmNsdWRlICJPZmZzY3JlZW5DYW52YXMuaCIKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNyw0ICs0MSwxNCBA
QCBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dChDYW52YXNCYXNlJiBjYW52YXMpCiB7CiB9CiAKK0hUTUxDYW52YXNFbGVtZW50KiBQbGFjZWhv
bGRlclJlbmRlcmluZ0NvbnRleHQ6OmNhbnZhcygpIGNvbnN0Cit7CisgICAgYXV0byYgYmFzZSA9
IGNhbnZhc0Jhc2UoKTsKKyAgICBpZiAoIWlzPEhUTUxDYW52YXNFbGVtZW50PihiYXNlKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZkb3duY2FzdDxIVE1MQ2FudmFzRWxl
bWVudD4oYmFzZSk7CiB9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGMzNDhl
NTE4OTUyY2I5ZDQxNWM2YmQxNzk1ZjIxNmRjYjE2NWQyNTkuLjY0NTA5MTQ1OWRkMDFjYzJhNzk3
N2RjMDAzYjQ1MjY1ZGU1YmE3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0yNSwxNSArMjUsMjEg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKwogI2lu
Y2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBPZmZzY3JlZW5DYW52YXM7CisKIGNsYXNzIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dCBmaW5hbCA6IHB1YmxpYyBDYW52YXNSZW5kZXJpbmdDb250ZXh0IHsKICAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dCk7CiBwdWJsaWM6CiAg
ICAgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmKTsKIAorICAgIEhUTUxD
YW52YXNFbGVtZW50KiBjYW52YXMoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBib29sIGlzUGxh
Y2Vob2xkZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiB9OwpAQCAtNDEsMyArNDcs
NSBAQCBwcml2YXRlOgogfQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NBTlZBU1JFTkRFUklO
R0NPTlRFWFQoV2ViQ29yZTo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LCBpc1BsYWNlaG9s
ZGVyKCkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMWNlNTZj
ZDQ2ZDY4OWQxZDA0ZjI5MmM4NGJlMjFjMDgyMGY1MTU1ZC4uNzk2MzgxNGE4M2IxNjAwNTA1Zjcy
MzIzNjI1Yzg1ZmFjYjI4ZmJmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjAtMDItMTMgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBDYW52YXMudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gYW5k
IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjc5NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1p
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1j
YW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90
aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9m
ZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5v
ZmZzY3JlZW4udy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDQtMjYgIEFsZXhleSBTaHZheWthICA8
c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIEludGVybmFsRnVuY3Rpb246OmNyZWF0
ZVN1YmNsYXNzU3RydWN0dXJlIHNob3VsZCB1c2UgbmV3VGFyZ2V0J3MgZ2xvYmFsT2JqZWN0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1p
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFz
LmNvbW1pdC1leHBlY3RlZC50eHQKaW5kZXggNmYxYzcwNTBlNWU4MjhjM2YzMjNmMjk1ZmIxZDJh
NGZlYzhjMDA3Yy4uYjNiMzlhN2E5MWZjMGFjODU1N2E5YTI4YzJlYmI2MjRiNWU0NzcxNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZz
Y3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52
YXMuY29tbWl0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTog
RXJyb3I6IGFzc2VydF9lcXVhbHM6IEdyZWVuIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCA1
KSBleHBlY3RlZCAyNTUgYnV0IGdvdCAwCiAKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2Ny
ZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVy
LiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFRl
c3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52YXMgdGhhdCBpcyBub3Qg
dHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IGlzIGEgbm9vcC4gY3R4LmNvbW1p
dCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdjdHguY29tbWl0KCknLCAnY3R4LmNvbW1pdCcgaXMg
dW5kZWZpbmVkKQorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21t
aXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIAorUEFTUyBUZXN0IHRo
YXQgY2FsbGluZyBjb21taXQgb24gYW4gT2Zmc2NyZWVuQ2FudmFzIHRoYXQgaXMgbm90IHRyYW5z
ZmVycmVkIGZyb20gYSBIVE1MQ2FudmFzRWxlbWVudCBpcyBhIG5vb3AuIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1j
YW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zm
c2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0
LnctZXhwZWN0ZWQudHh0CmluZGV4IDQzNDMzMmNlNTFhYmZlMzcxMmQwZTI0OTU4YTgwNTI4MWE2
MDcwNzQuLmM0MjE4ZWNhYzI3M2QwNTQ3ZjVlNDljM2QxMjNmZGFmODNmM2VhYjYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVu
LWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMu
Y29tbWl0LnctZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIFRlc3QgdGhhdCBj
YWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0
cyBwbGFjZWhvbGRlci4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMg
bm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZp
bmVkKQorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVz
aGVzIGl0cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIAogUEFTUyBUZXN0IHRoYXQgY2Fs
bGluZyBjb21taXQgb24gYW4gT2Zmc2NyZWVuQ2FudmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVk
IGZyb20gYSBIVE1MQ2FudmFzRWxlbWVudCB0aHJvd3MgYW4gZXhjZXB0aW9uIGluIGEgd29ya2Vy
LiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQKaW5kZXggYmQ5YWEwZTE2NzdlOTQ5
NDgwYjIyMzMxMjIzOGY0NzA5OWVmMTM3Ny4uYzU3YTI5M2VjNGE5YmQ2OGM2ZDkxZjlhYmM4MjU1
NGM0ZGY4OGY2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVl
bmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEs
NyBAQAogCiBQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggdW4tc3VwcG9ydGVkIHN0cmlu
ZyB0aHJvd3MgYSBUeXBlRXJyb3IuIAogRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1
cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQXJndW1lbnQgMSAoJ2NvbnRl
eHRUeXBlJykgdG8gT2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQgbXVzdCBiZSBvbmUgb2Y6ICIy
ZCIsICJ3ZWJnbCIKLUZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgdHdpY2Ugd2l0aCBkaWZmZXJl
bnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRpbWUgVGhlIG9iamVjdCBp
cyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3
aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSAK
IFBBU1MgVGVzdCB0aGF0IDJkY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2lu
YWwgT2Zmc2NyZWVuQ2FudmFzIAogUEFTUyBUZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBz
aG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBGQUlMIFRlc3QgdGhh
dCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgd2l0aCBhbHBoYSBkaXNhYmxlZCBt
YWtlcyB0aGUgT2Zmc2NyZWVuQ2FudmFzIG9wYXF1ZSBhc3NlcnRfYXBwcm94X2VxdWFsczogR3Jl
ZW4gY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4cGVjdGVkIDEyNyArLy0gMiBidXQg
Z290IDI1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dAppbmRl
eCBmMjI0Y2U3NGVlYTg3OGNmNzZhMTMzM2JjYWUxYmFhMTBmZDRmNjY3Li4zOWZjMmNmOWFhZGRl
N2YyZGIxYjNlMmUzMzY4OWVkNzA3MTc4Y2ExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQu
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBUZXN0IHRoYXQgZ2V0
Q29udGV4dCB3aXRoIHVuLXN1cHBvcnRlZCBzdHJpbmcgdGhyb3dzIGEgVHlwZUVycm9yLiAKLUZB
SUwgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29y
cmVjdCByZXN1bHRzIENhbid0IGZpbmQgdmFyaWFibGU6IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRAotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVu
dCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSBUaGUgb2JqZWN0IGlz
IGluIGFuIGludmFsaWQgc3RhdGUuCitGQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3Vw
cG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBXZWJHTFJlbmRlcmluZ0NvbnRleHQKK1BBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgdHdpY2Ug
d2l0aCBkaWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRpbWUg
CiBQQVNTIFRlc3QgdGhhdCAyZGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdp
bmFsIE9mZnNjcmVlbkNhbnZhcyAKIFBBU1MgVGVzdCB0aGF0IHdlYmdsY29udGV4dC5jYW52YXMg
c2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAogRkFJTCBUZXN0IHRo
YXQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHdpdGggYWxwaGEgZGlzYWJsZWQg
bWFrZXMgdGhlIE9mZnNjcmVlbkNhbnZhcyBvcGFxdWUgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IEdy
ZWVuIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCA1KSBleHBlY3RlZCAxMjcgKy8tIDIgYnV0
IGdvdCAyNTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMucmVzaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dAppbmRleCBmNDU1MDcxNzJiNzZiYWYwNmFi
MGU0NGVkMTVjZTMzMDZhZDQ4MThhLi42YzExYzhkZjRiNjVhNzkwMGFkZGM3NDZhYTlhMGVlNzc5
NDE4NjFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLnJlc2l6ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29m
ZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0CkBAIC0yLDExICsyLDExIEBACiBQQVNT
IFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBv
ZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hlbiB0aGVyZSBpcyBubyBjb250ZXh0IGF0dGFj
aGVkLiAKIFBBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBh
dHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIGEgMmQg
Y29udGV4dCBhdHRhY2hlZC4gCiBQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRo
IGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hlbiB0
aGVyZSBpcyBhIHdlYmdsIGNvbnRleHQgYXR0YWNoZWQuIAotRkFJTCBWZXJpZnkgdGhhdCB3cml0
aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIgY2Fu
dmFzIHRocm93cyBhbiBleGNlcHRpb24gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicg
aXMgdW5kZWZpbmVkKQotRkFJTCBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBo
ZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRp
b24gZXZlbiB3aGVuIG5vdCBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4gcGxh
Y2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBWZXJpZnkg
dGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vo
b2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gCitQQVNTIFZlcmlmeSB0aGF0IHdyaXRp
bmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52
YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBldmVuIHdoZW4gbm90IGNoYW5naW5nIHRoZSB2YWx1ZSBv
ZiB0aGUgYXR0cmlidXRlLiAKIFBBU1MgVmVyaWZ5IHRoYXQgcmVzaXppbmcgYSAyZCBjb250ZXh0
IHJlc2V0cyBpdHMgc3RhdGUuIAogUEFTUyBWZXJpZnkgdGhhdCBzZXR0aW5nIHRoZSBzaXplIG9m
IGEgMmQgY29udGV4dCB0byB0aGUgc2FtZSBzaXplIGl0IGFscmVhZHkgaGFkIHJlc2V0cyBpdHMg
c3RhdGUuIAotRkFJTCBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0
aCBhIDJkIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVy
IGNhbnZhcyBhc3luY2hyb25vdXNseS4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicg
aXMgdW5kZWZpbmVkKQotRkFJTCBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52
YXMgd2l0aCBhIHdlYmdsIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBs
YWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25vdXNseS4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBWZXJpZnkgdGhhdCBkcmF3SW1hZ2UgdXNlcyB0
aGUgc2l6ZSBvZiB0aGUgZnJhbWUgYXMgdGhlIGludGluc2ljIHNpemUgb2YgYSBwbGFjZWhvbGRl
ciBjYW52YXMuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCkn
LCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkK
K1BBU1MgVmVyaWZ5IHRoYXQgcmVzaXppbmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSAyZCBj
b250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMg
YXN5bmNocm9ub3VzbHkuIAorUEFTUyBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5D
YW52YXMgd2l0aCBhIHdlYmdsIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRz
IHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25vdXNseS4gCitQQVNTIFZlcmlmeSB0aGF0IGRy
YXdJbWFnZSB1c2VzIHRoZSBzaXplIG9mIHRoZSBmcmFtZSBhcyB0aGUgaW50aW5zaWMgc2l6ZSBv
ZiBhIHBsYWNlaG9sZGVyIGNhbnZhcy4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5z
ZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0CmluZGV4IDRmNDJlNTA3NDI4Mjgw
YTJlYTE5Zjc2M2NmOGM5NjE5YWU1YmIzMDUuLjI5NjA0ODViN2I2YWQ2ZjcwNjJkZWY5ZmU3Yjc5
ZTVjYjc0YjgzYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2Fu
dmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wu
dG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBUZXN0IHRo
YXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCBwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRl
eHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhhdCBoYXMgYWxyZWFkeSB0cmFuc2ZlcnJlZCBp
dHMgY29udHJvbCB0aHJvd3MgYW4gZXhjZXB0aW9uIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiBwbGFjZWhvbGRlci50cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBhbiBPZmZzY3Jl
ZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29y
cmVjdCB3aWR0aCBhbmQgaGVpZ2h0IAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0
IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRoYXQgaGFzIGFscmVhZHkgdHJhbnNmZXJyZWQgaXRz
IGNvbnRyb2wgdGhyb3dzIGFuIGV4Y2VwdGlvbiAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgdHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZz
Y3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zl
cmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhw
ZWN0ZWQudHh0CmluZGV4IDJjZDNkYjRiMjc2ZGMxYzExZDFlY2RiMDQ4YjNiNzkwOTNlZWUwZGEu
LjMzYjg1MzJjYjJlMDA0MTRhNmQ1NGE2ZGE3OWFlNzZlYWY0NjU2M2YgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZh
cy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRv
Lm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50
eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBn
ZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRo
IGFuZCBoZWlnaHQgd2hlbiBpdCBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciBwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxs
aW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhhdCBpcyB0cmFuc2ZlcnJl
ZCBpdHMgY29udHJvbCB0byBhbiBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiwg
d2hlbiB0aGUgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIHBsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIu
dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0
IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4Y2Vw
dGlvbiwgd2hlbiBpdHMgYXNzb2NpYXRlZCBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJyZWQg
dG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4o
KScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVk
KQorUEFTUyBUZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCB3aGVuIGl0
IGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBnZXRD
b250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRoYXQgaXMgdHJhbnNmZXJyZWQgaXRzIGNv
bnRyb2wgdG8gYW4gT2Zmc2NyZWVuQ2FudmFzIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gdGhl
IE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciAKK1BBU1MgVGVzdCB0
aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4
Y2VwdGlvbiwgd2hlbiBpdHMgYXNzb2NpYXRlZCBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJy
ZWQgdG8gYSB3b3JrZXIgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397691</attachid>
            <date>2020-04-27 09:46:35 -0700</date>
            <delta_ts>2020-04-27 11:01:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200427174634.patch</filename>
            <type>text/plain</type>
            <size>39421</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU5YTMzZmI3MDg0OGYz
OGQ5MmUyZTZiMTlkYzJmZTEwZTZhNzY3ZC4uNDk5MTNjNTI1YTVlZWY4ZmNiNmMxOGUyMmEwYmE0
Y2Y3YzVhYzFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52
YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAyMC0wNC0yNyAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEs0XSBHZGtSR0JB
IGhhcyBmbG9hdCBtZW1iZXJzIGluc3RlYWQgb2YgZG91YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDBkYjUyNjhhZGVkZTBiZGYxMDU0MDE0ZTQ5MTdi
NDM5YjgyOGUwZjMuLjFiZTJjNmNhYjRmZjc5MDgxOGFkYjAxMDIxMTYzYTI4NzE4YjI5NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00OSw2ICs0OSw3
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZE9ic2VydmVyLmgiCkBAIC0xNzEsNyArMTcyLDcgQEAgYm9vbCBIVE1MQ2FudmFzRWxl
bWVudDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdAogCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1M
Q2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogewotICAgIGlmIChtX2Nv
bnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxl
ZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0
ciwgQXRvbVN0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVlLCBk
ZWZhdWx0SGVpZ2h0KSkpOwogICAgIHJldHVybiB7IH07CkBAIC0xNzksNyArMTgwLDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1
ZSkKIAogRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2ln
bmVkIHZhbHVlKQogewotICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9s
ZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09u
bHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRXaWR0aCkpKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNTQwLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiB7
Ci0gICAgaWYgKG1faWdub3JlUmVzZXQpCisgICAgaWYgKG1faWdub3JlUmVzZXQgfHwgaXNDb250
cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRJbWFn
ZUJ1ZmZlciA9IGhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpOwpAQCAtNzQyLDYgKzc0MywyNCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFJlZgogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUo
T0ZGU0NSRUVOX0NBTlZBUykKK0V4Y2VwdGlvbk9yPFJlZjxPZmZzY3JlZW5DYW52YXM+PiBIVE1M
Q2FudmFzRWxlbWVudDo6dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAobV9jb250ZXh0KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGF1dG8gY2FudmFzID0gT2Zm
c2NyZWVuQ2FudmFzOjpjcmVhdGUoY29udGV4dCwgKnRoaXMpOworICAgIG1fY29udGV4dCA9IG1h
a2VVbmlxdWU8UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0PigqdGhpcyk7CisKKyNpZiBVU0Uo
VEVYVFVSRV9NQVBQRVJfR0wpCisgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXll
ciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBjYW52YXMuCisgICAg
aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworI2VuZGlmCisKKyAgICByZXR1
cm4gY2FudmFzOworfQorI2VuZGlmCisKIFJlZlB0cjxJbWFnZURhdGE+IEhUTUxDYW52YXNFbGVt
ZW50OjpnZXRJbWFnZURhdGEoKQogewogI2lmIEVOQUJMRShXRUJHTCkKQEAgLTkxNiw4ICs5MzUs
MTcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAog
CiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eShzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyKQogeworICAgIEludFNpemUgb2xkU2l6
ZSA9IHNpemUoKTsKICAgICBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlciA9IHRydWU7CiAgICAgc2V0
SW1hZ2VCdWZmZXIoV1RGTW92ZShidWZmZXIpKTsKKworICAgIGlmIChpc0NvbnRyb2xsZWRCeU9m
ZnNjcmVlbigpICYmIG9sZFNpemUgIT0gc2l6ZSgpKSB7CisgICAgICAgIHNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIod2lkdGgo
KSkpOworICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhlaWdodEF0
dHIsIEF0b21TdHJpbmc6Om51bWJlcihoZWlnaHQoKSkpOworICAgICAgICBub3RpZnlPYnNlcnZl
cnNDYW52YXNSZXNpemVkKCk7CisgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZFJlbmRlcmVyc0Zv
clN1YnRyZWUoKTsKKyAgICB9CisKICAgICBkaWREcmF3KEZsb2F0UmVjdChGbG9hdFBvaW50KCks
IHNpemUoKSkpOwogfQogCkBAIC05NzcsNCArMTAwNSw5IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCkKICNlbmRpZgogfQogCitib29sIEhUTUxDYW52
YXNFbGVtZW50Ojppc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDUwZTdjMmNkZWUxMDU4MmI2YTk3
Y2NkMmE3NzU2NzQ5MDhkZmYzOGMuLmI2MDFiN2VhNTQyYTM0ZmZhNDExMDZjYTllYmI5NjRlNjk0
MjE4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTUwLDYg
KzUwLDcgQEAgY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7CiBjbGFzcyBNZWRp
YVNhbXBsZTsKIGNsYXNzIE1lZGlhU3RyZWFtOworY2xhc3MgT2Zmc2NyZWVuQ2FudmFzOwogY2xh
c3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKIGNsYXNzIEdQVUNhbnZhc0NvbnRleHQ7CiBz
dHJ1Y3QgVW5jYWNoZWRTdHJpbmc7CkBAIC05Nyw2ICs5OCw5IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBFeGNlcHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKICAgICBXRUJDT1JFX0VYUE9S
VCBFeGNlcHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHRvQmxvYihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVmPEJsb2JDYWxsYmFjaz4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpK
U1ZhbHVlIHF1YWxpdHkpOworI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorICAgIEV4Y2Vw
dGlvbk9yPFJlZjxPZmZzY3JlZW5DYW52YXM+PiB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisjZW5kaWYKIAogICAgIC8vIFVzZWQgZm9yIHJlbmRl
cmluZwogICAgIHZvaWQgZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKQEAgLTEyOSw2
ICsxMzMsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRN
YXhQaXhlbE1lbW9yeUZvclRlc3Rpbmcoc2l6ZV90KTsKIAorICAgIGJvb2wgaXNDb250cm9sbGVk
QnlPZmZzY3JlZW4oKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmlkbAppbmRleCA3MThhOWVhN2E0Yzk3MTVhMmU3ODA0Nzc1NTJjMmI1
ZjUxM2E5YTBhLi5hZTRmY2FhYzI2OWY2YmMzZjU0MGViZDFlNDdiNTg5MjdkYjNlZWVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbApAQCAtNTAsNiArNTAsNyBA
QCB0eXBlZGVmICgKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHRvRGF0YVVS
TChvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOwogICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB0
b0Jsb2IoQmxvYkNhbGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0
aW9uYWwgYW55IHF1YWxpdHkpOworICAgIFtDb25kaXRpb25hbD1PRkZTQ1JFRU5fQ0FOVkFTLCBD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gT2Zmc2Ny
ZWVuQ2FudmFzIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CiAKICAgICBbQ29uZGl0aW9u
YWw9TUVESUFfU1RSRUFNLCBDYWxsV2l0aD1Eb2N1bWVudCwgTWF5VGhyb3dFeGNlcHRpb24sIE5l
d09iamVjdF0gTWVkaWFTdHJlYW0gY2FwdHVyZVN0cmVhbShvcHRpb25hbCBkb3VibGUgZnJhbWVS
ZXF1ZXN0UmF0ZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCmlu
ZGV4IDYwNmE0ZDdjZTE1OGQyOGY1OTk3OTZlM2EzOTY2NWFmZjQ2YWQwN2YuLjBjOTY3YzU4NTdh
OTg4ODllYjk4YzEwMTAwYzI2ZjQzNjBmNjc0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNj
cmVlbkNhbnZhcy5jcHAKQEAgLTMxLDExICszMSwxNCBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlUG9v
bC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2VC
aXRtYXAuaCIKKyNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJKU0Jsb2IuaCIKICNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0
cnkuaCIKICNpbmNsdWRlICJPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKKyNp
bmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC00NCwxMSArNDcsMTQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoT2Zmc2NyZWVuQ2FudmFz
KTsKIAotRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OkRldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUs
IGJvb2wgb3JpZ2luQ2xlYW4pCitEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZz
Y3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmIGJ1ZmZlciwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSwgYm9vbCBvcmlnaW5DbGVhbiwgSFRNTENhbnZhc0VsZW1lbnQqIHBsYWNl
aG9sZGVyQ2FudmFzKQogICAgIDogbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKQogICAgICwgbV9z
aXplKHNpemUpCiAgICAgLCBtX29yaWdpbkNsZWFuKG9yaWdpbkNsZWFuKQorICAgICwgbV9wbGFj
ZWhvbGRlckNhbnZhcyhtYWtlV2Vha1B0cihwbGFjZWhvbGRlckNhbnZhcykpCiB7CisgICAgaWYg
KHBsYWNlaG9sZGVyQ2FudmFzKQorICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzID0gbWFrZVdl
YWtQdHIocGxhY2Vob2xkZXJDYW52YXMpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKQpAQCAtNTYsNiAr
NjIsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBEZXRhY2hlZE9mZnNjcmVlbkNh
bnZhczo6dGFrZUltYWdlQnVmZmVyKCkKICAgICByZXR1cm4gV1RGTW92ZShtX2J1ZmZlcik7CiB9
CiAKK1dlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0
YWtlUGxhY2Vob2xkZXJDYW52YXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9wbGFjZWhvbGRlckNhbnZhcywgbnVsbHB0cik7Cit9
CisKIFJlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQsIHdp
ZHRoLCBoZWlnaHQpKTsKQEAgLTYzLDE0ICs3NSwyNyBAQCBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBP
ZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1
bgogCiBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3Jl
ZW5DYW52YXM+JiYgZGV0YWNoZWRDYW52YXMpCiB7Ci0gICAgUmVmPE9mZnNjcmVlbkNhbnZhcz4g
Y2xvbmUgPSBhZG9wdFJlZigqbmV3IE9mZnNjcmVlbkNhbnZhcyhjb250ZXh0LCBkZXRhY2hlZENh
bnZhcy0+c2l6ZSgpLndpZHRoKCksIGRldGFjaGVkQ2FudmFzLT5zaXplKCkuaGVpZ2h0KCkpKTsK
KyAgICBhdXRvIGNsb25lID0gYWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwg
ZGV0YWNoZWRDYW52YXMtPnNpemUoKS53aWR0aCgpLCBkZXRhY2hlZENhbnZhcy0+c2l6ZSgpLmhl
aWdodCgpKSk7CisKICAgICBjbG9uZS0+c2V0SW1hZ2VCdWZmZXIoZGV0YWNoZWRDYW52YXMtPnRh
a2VJbWFnZUJ1ZmZlcigpKTsKICAgICBpZiAoIWRldGFjaGVkQ2FudmFzLT5vcmlnaW5DbGVhbigp
KQogICAgICAgICBjbG9uZS0+c2V0T3JpZ2luVGFpbnRlZCgpOwogCisgICAgY2FsbE9uTWFpblRo
cmVhZChbZGV0YWNoZWRDYW52YXMgPSBXVEZNb3ZlKGRldGFjaGVkQ2FudmFzKSwgb2Zmc2NyZWVu
Q2FudmFzID0gbWFrZVJlZihjbG9uZS5nZXQoKSldICgpIG11dGFibGUgeworICAgICAgICBvZmZz
Y3JlZW5DYW52YXMtPm1fcGxhY2Vob2xkZXJDYW52YXMgPSBkZXRhY2hlZENhbnZhcy0+dGFrZVBs
YWNlaG9sZGVyQ2FudmFzKCk7CisgICAgICAgIG9mZnNjcmVlbkNhbnZhcy0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbcmVsZWFzZU9mZnNjcmVlbkNhbnZhcyA9IFdURk1vdmUo
b2Zmc2NyZWVuQ2FudmFzKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7IH0pOworICAgIH0p
OworCiAgICAgcmV0dXJuIGNsb25lOwogfQogCitSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3Jl
ZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBIVE1MQ2Fu
dmFzRWxlbWVudCYgY2FudmFzKQoreworICAgIGF1dG8gb2Zmc2NyZWVuID0gYWRvcHRSZWYoKm5l
dyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwgY2FudmFzLndpZHRoKCksIGNhbnZhcy5oZWlnaHQo
KSkpOworICAgIG9mZnNjcmVlbi0+c2V0UGxhY2Vob2xkZXJDYW52YXMoY2FudmFzKTsKKyAgICBy
ZXR1cm4gb2Zmc2NyZWVuOworfQorCiBPZmZzY3JlZW5DYW52YXM6Ok9mZnNjcmVlbkNhbnZhcyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQg
aGVpZ2h0KQogICAgIDogQ2FudmFzQmFzZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKQogICAgICwg
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCkBAIC04MCw3ICsxMDUsNiBAQCBP
ZmZzY3JlZW5DYW52YXM6Ok9mZnNjcmVlbkNhbnZhcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCB1bnNpZ25lZCB3aWR0aAogT2Zmc2NyZWVuQ2FudmFzOjp+T2Zmc2NyZWVuQ2FudmFz
KCkKIHsKICAgICBub3RpZnlPYnNlcnZlcnNDYW52YXNEZXN0cm95ZWQoKTsKLQogICAgIG1fY29u
dGV4dCA9IG51bGxwdHI7IC8vIEVuc3VyZSB0aGlzIGdvZXMgYXdheSBiZWZvcmUgdGhlIEltYWdl
QnVmZmVyLgogICAgIHNldEltYWdlQnVmZmVyKG51bGxwdHIpOwogfQpAQCAtMTE5LDcgKzE0Myw3
IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRTaXplKGNvbnN0IEludFNpemUmIG5ld1NpemUp
CiAgICAgcmVzZXQoKTsKIH0KIAotRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4
dD4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRl
LCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpT
Qzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQorRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVu
UmVuZGVyaW5nQ29udGV4dD4+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xv
YmFsT2JqZWN0JiBzdGF0ZSwgUmVuZGVyaW5nQ29udGV4dFR5cGUgY29udGV4dFR5cGUsIFZlY3Rv
cjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKICAgICBpZiAobV9k
ZXRhY2hlZCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07
CkBAIC0xMjcsMjIgKzE1MSwyMiBAQCBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250
ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbAogICAgIGlmIChj
b250ZXh0VHlwZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6XzJkKSB7CiAgICAgICAgIGlmICht
X2NvbnRleHQpIHsKICAgICAgICAgICAgIGlmICghaXM8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEPigqbV9jb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICAgICAgICAgIHJl
dHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgUmVmUHRy
PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH0gfTsKICAgICAgICAgfQog
CiAgICAgICAgIG1fY29udGV4dCA9IG1ha2VVbmlxdWU8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEPigqdGhpcyk7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAgICAg
cmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyBudWxs
cHRyIH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKIAotICAg
ICAgICByZXR1cm4geyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7
ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQp
IH0gfTsKKyAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
KCptX2NvbnRleHQpIH0gfSB9OwogICAgIH0KICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgaWYgKGNv
bnRleHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpXZWJnbCkgewogICAgICAgICBpZiAo
bV9jb250ZXh0KSB7Ci0gICAgICAgICAgICBpZiAoIWlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4o
Km1fY29udGV4dCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH07Ci0gICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdD
b250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0g
fTsKKyAgICAgICAgICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQp
KQorICAgICAgICAgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4
dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH0gfTsK
KyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKICAgICAgICAgfQogCiAg
ICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLnZtKCkpOwpAQCAt
MTUxLDEzICsxNzUsMTMgQEAgRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4g
T2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWwKIAogICAgICAgICBtX2Nv
bnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJpYnV0
ZXMsICJ3ZWJnbCIpOwogICAgICAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgICAgIHJldHVy
biB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgbnVsbHB0ciB9IH07CisgICAgICAg
ICAgICByZXR1cm4geyB7IFdURjo6bnVsbG9wdCB9IH07CiAKLSAgICAgICAgcmV0dXJuIHsgUmVm
UHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250
ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPFdlYkdMUmVu
ZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250
ZXh0KSB9IH0gfTsKICAgICB9CiAjZW5kaWYKIAotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKIH0K
IAogRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gT2Zmc2NyZWVuQ2FudmFzOjp0cmFu
c2ZlclRvSW1hZ2VCaXRtYXAoKQpAQCAtMjU5LDYgKzI4Myw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2Fu
dmFzOjpjb252ZXJ0VG9CbG9iKEltYWdlRW5jb2RlT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZl
cnJlZFByCiB2b2lkIE9mZnNjcmVlbkNhbnZhczo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiB7CiAgICAgY2xlYXJDb3BpZWRJbWFnZSgpOworICAgIHNjaGVkdWxlQ29tbWl0VG9QbGFj
ZWhvbGRlckNhbnZhcygpOwogICAgIG5vdGlmeU9ic2VydmVyc0NhbnZhc0NoYW5nZWQocmVjdCk7
CiB9CiAKQEAgLTMwMSw3ICszMjYsNzAgQEAgc3RkOjp1bmlxdWVfcHRyPERldGFjaGVkT2Zmc2Ny
ZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmRldGFjaCgpCiAKICAgICBtX2RldGFjaGVkID0g
dHJ1ZTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPih0
YWtlSW1hZ2VCdWZmZXIoKSwgc2l6ZSgpLCBvcmlnaW5DbGVhbigpKTsKKyAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4odGFrZUltYWdlQnVmZmVyKCksIHNpemUo
KSwgb3JpZ2luQ2xlYW4oKSwgbV9wbGFjZWhvbGRlckNhbnZhcy5nZXQoKSk7Cit9CisKK3ZvaWQg
T2Zmc2NyZWVuQ2FudmFzOjpzZXRQbGFjZWhvbGRlckNhbnZhcyhIVE1MQ2FudmFzRWxlbWVudCYg
Y2FudmFzKQoreworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIG1fcGxhY2Vob2xkZXJDYW52YXMgPSBtYWtlV2Vha1B0cihjYW52YXMpOwor
fQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6cHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKQorewor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhp
c10gKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb21taXRM
b2NrKTsKKworICAgICAgICBpZiAobV9wbGFjZWhvbGRlckNhbnZhcyAmJiBtX2hhc1BlbmRpbmdD
b21taXREYXRhKSB7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1
ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKG1fcGVuZGluZ0NvbW1pdERhdGEt
PnNpemUoKSksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOworICAgICAgICAgICAgYnVm
ZmVyLT5wdXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwg
Km1fcGVuZGluZ0NvbW1pdERhdGEsIEludFJlY3QoSW50UG9pbnQoKSwgbV9wZW5kaW5nQ29tbWl0
RGF0YS0+c2l6ZSgpKSk7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzLT5zZXRJbWFn
ZUJ1ZmZlckFuZE1hcmtEaXJ0eShXVEZNb3ZlKGJ1ZmZlcikpOworICAgICAgICAgICAgbV9oYXNQ
ZW5kaW5nQ29tbWl0RGF0YSA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbcmVsZWFzZVRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsgfSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgT2Zmc2NyZWVuQ2FudmFzOjpjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCkKK3sKKyAgICBh
dXRvKiBpbWFnZUJ1ZmZlciA9IGJ1ZmZlcigpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBUcmFuc2ZlciB0ZXh0dXJlIG92ZXIgaWYgd2Un
cmUgdXNpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICBpZiAobV9jb250ZXh0ICYmICht
X2NvbnRleHQtPmlzV2ViR0woKSB8fCBtX2NvbnRleHQtPmlzQWNjZWxlcmF0ZWQoKSkpCisgICAg
ICAgIG1fY29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKTsKKworICAgIGlm
IChpc01haW5UaHJlYWQoKSkgeworICAgICAgICBpZiAobV9wbGFjZWhvbGRlckNhbnZhcykgewor
ICAgICAgICAgICAgaWYgKGF1dG8gYnVmZmVyQ29weSA9IGltYWdlQnVmZmVyLT5jb3B5UmVjdFRv
QnVmZmVyKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgp
KSwgQ29sb3JTcGFjZTo6U1JHQiwgaW1hZ2VCdWZmZXItPmNvbnRleHQoKSkpCisgICAgICAgICAg
ICAgICAgbV9wbGFjZWhvbGRlckNhbnZhcy0+c2V0SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoV1RG
TW92ZShidWZmZXJDb3B5KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb21taXRMb2NrKTsKKworICAgIGJvb2wgc2hv
dWxkUHVzaEJ1ZmZlciA9ICFtX2hhc1BlbmRpbmdDb21taXREYXRhOworICAgIG1fcGVuZGluZ0Nv
bW1pdERhdGEgPSBpbWFnZUJ1ZmZlci0+Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRp
b246OlByZW11bHRpcGxpZWQsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2lj
YWxTaXplKCkpKTsKKyAgICBtX2hhc1BlbmRpbmdDb21taXREYXRhID0gdHJ1ZTsKKworICAgIGlm
IChzaG91bGRQdXNoQnVmZmVyKQorICAgICAgICBwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpOwor
fQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2Fu
dmFzKCkKK3sKKyAgICBpZiAoIW1faGFzU2NoZWR1bGVkQ29tbWl0KSB7CisgICAgICAgIGF1dG8m
IHNjcmlwdENvbnRleHQgPSAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAgICBtX2hh
c1NjaGVkdWxlZENvbW1pdCA9IHRydWU7CisgICAgICAgIHNjcmlwdENvbnRleHQucG9zdFRhc2so
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpc10gKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSB7CisgICAgICAgICAgICBtX2hhc1NjaGVkdWxlZENvbW1pdCA9IGZhbHNlOworICAg
ICAgICAgICAgY29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworICAgICAgICB9KTsKKyAgICB9
CiB9CiAKIENTU1ZhbHVlUG9vbCYgT2Zmc2NyZWVuQ2FudmFzOjpjc3NWYWx1ZVBvb2woKQpAQCAt
MzUxLDYgKzQzOSw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpyZXNldCgpCiAgICAgY2xlYXJD
b3BpZWRJbWFnZSgpOwogCiAgICAgbm90aWZ5T2JzZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAg
IHNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9PZmZzY3JlZW5DYW52YXMuaAppbmRleCAzZTVlMzBhNTc2ZTMxYTkzMmE2ZjE0NmE5N2Vi
ZjA4ZGU5YTI1ZjM5Li5lYjkyMzA2ZGM1YjUwYjJhM2M5NGE5YzU1ODJhMDc5N2Q2Y2RhOGQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQs
NyArNDUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250
ZXh0OwogY2xhc3MgQ1NTVmFsdWVQb29sOwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3Mg
SFRNTENhbnZhc0VsZW1lbnQ7CiBjbGFzcyBJbWFnZUJpdG1hcDsKK2NsYXNzIEltYWdlRGF0YTsK
IGNsYXNzIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDsKIGNsYXNzIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDsKIApAQCAtNTgsMTYgKzYxLDE4IEBAIGNsYXNzIERldGFjaGVkT2Zmc2Ny
ZWVuQ2FudmFzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXRhY2hlZE9mZnNjcmVlbkNh
bnZhcyk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRGV0YWNo
ZWRPZmZzY3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmLCBjb25zdCBJ
bnRTaXplJiwgYm9vbCBvcmlnaW5DbGVhbik7CisgICAgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMo
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmLCBjb25zdCBJbnRTaXplJiwgYm9vbCBvcmln
aW5DbGVhbiwgSFRNTENhbnZhc0VsZW1lbnQqIHBsYWNlaG9sZGVyQ2FudmFzKTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gdGFrZUltYWdlQnVmZmVyKCk7CiAgICAgY29uc3Qg
SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogICAgIGJvb2wgb3JpZ2lu
Q2xlYW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbkNsZWFuOyB9CisgICAgV2Vha1B0cjxIVE1M
Q2FudmFzRWxlbWVudD4gdGFrZVBsYWNlaG9sZGVyQ2FudmFzKCk7CiAKIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBtX2J1ZmZlcjsKICAgICBJbnRTaXplIG1fc2l6
ZTsKICAgICBib29sIG1fb3JpZ2luQ2xlYW47CisgICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVu
dD4gbV9wbGFjZWhvbGRlckNhbnZhczsKIH07CiAKIGNsYXNzIE9mZnNjcmVlbkNhbnZhcyBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPE9mZnNjcmVlbkNhbnZhcz4sIHB1YmxpYyBDYW52YXNCYXNl
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlciB7CkBAIC04Niw2ICs5MSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBS
ZWY8T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHVuc2ln
bmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpOwogICAgIHN0YXRpYyBSZWY8T2Zmc2NyZWVuQ2Fu
dmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5pcXVlX3B0cjxEZXRh
Y2hlZE9mZnNjcmVlbkNhbnZhcz4mJik7CisgICAgc3RhdGljIFJlZjxPZmZzY3JlZW5DYW52YXM+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSFRNTENhbnZhc0VsZW1lbnQmKTsKICAg
ICB2aXJ0dWFsIH5PZmZzY3JlZW5DYW52YXMoKTsKIAogICAgIHVuc2lnbmVkIHdpZHRoKCkgY29u
c3QgZmluYWw7CkBAIC05NSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBDYW52YXNSZW5kZXJp
bmdDb250ZXh0KiByZW5kZXJpbmdDb250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb250
ZXh0LmdldCgpOyB9CiAKLSAgICBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0
PiBnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZW5kZXJpbmdDb250ZXh0VHlwZSwg
VmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKTsKKyAgICBFeGNl
cHRpb25PcjxPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0Pj4gZ2V0Q29udGV4dChK
U0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVuZGVyaW5nQ29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0
cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRy
PEltYWdlQml0bWFwPj4gdHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CiAgICAgdm9pZCBjb252ZXJ0
VG9CbG9iKEltYWdlRW5jb2RlT3B0aW9ucyYmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIApA
QCAtMTA5LDYgKzExNSw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkRldGFjaCgpIGNvbnN0Owog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4gZGV0YWNoKCk7CiAK
KyAgICB2b2lkIGNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKKwogICAgIENTU1ZhbHVlUG9v
bCYgY3NzVmFsdWVQb29sKCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CkBAIC0xMzgs
NiArMTQ2LDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNsZWFyQ29waWVkSW1hZ2UoKSBjb25z
dDsKIAorICAgIHZvaWQgc2V0UGxhY2Vob2xkZXJDYW52YXMoSFRNTENhbnZhc0VsZW1lbnQmKTsK
KyAgICB2b2lkIHB1c2hCdWZmZXJUb1BsYWNlaG9sZGVyKCk7CisgICAgdm9pZCBzY2hlZHVsZUNv
bW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDYW52YXNS
ZW5kZXJpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAKICAgICAvLyBtX2hhc0NyZWF0ZWRJbWFnZUJ1
ZmZlciBtZWFucyB3ZSB0cmllZCB0byBtYWxsb2MgdGhlIGJ1ZmZlci4gV2UgZGlkbid0IG5lY2Vz
c2FyaWx5IGdldCBpdC4KQEAgLTE0Niw2ICsxNTgsMTMgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
ZGV0YWNoZWQgeyBmYWxzZSB9OwogCiAgICAgbXV0YWJsZSBSZWZQdHI8SW1hZ2U+IG1fY29waWVk
SW1hZ2U7CisKKyAgICBib29sIG1faGFzU2NoZWR1bGVkQ29tbWl0IHsgZmFsc2UgfTsKKyAgICBX
ZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiBtX3BsYWNlaG9sZGVyQ2FudmFzOworCisgICAgbXV0
YWJsZSBMb2NrIG1fY29tbWl0TG9jazsKKyAgICBib29sIG1faGFzUGVuZGluZ0NvbW1pdERhdGEg
eyBmYWxzZSB9OworICAgIFJlZlB0cjxJbWFnZURhdGE+IG1fcGVuZGluZ0NvbW1pdERhdGE7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA4NmQ3ODRhMzUxZDU4
NGNlNmVmM2E2OTkyZTdlYzIwNmU2OGQ5NjAwLi4wYjlhMDQ0MWMxNmJjMzgxYmY2ODcwNmU3MjIz
MGJiNTQ2M2FlZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTQ4LDYg
KzQ4LDExIEBAIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6T2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEKENhbnZhc0Jhc2UmCiAKIE9mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6fk9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCgpID0gZGVm
YXVsdDsKIAordm9pZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNvbW1pdCgp
Cit7CisgICAgZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzPihjYW52YXNCYXNlKCkpLmNvbW1pdFRv
UGxhY2Vob2xkZXJDYW52YXMoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKaW5kZXggY2NiMTZlOTJjZDJiZDA0Y2E1Njhi
Y2Y2MTYzMjc5MmU2OTQ5MzNlMC4uZWU5MjlhZjJiMjlkYWU4MjYzZGUxZGFmNjBkZDE2NDU0MjU3
ZTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKQEAgLTQyLDYgKzQyLDggQEAgcHVi
bGljOgogICAgIGJvb2wgaXNPZmZzY3JlZW4yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAogICAgIE9mZnNjcmVlbkNhbnZhcyYgY2FudmFzKCkgY29uc3QgeyByZXR1cm4gZG93
bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzPihjYW52YXNCYXNlKCkpOyB9CisKKyAgICB2b2lkIGNvbW1p
dCgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5pZGwKaW5kZXggMDRlYzZhNzUxOWIxNGE3NWExMjU2NGY1ZTlkZWI5MTBlYzhiZjEzOS4u
ZDdmZWM4Nzk5MzY5MDQ0YmRhNzJkZTBlYjVjNTNkNjM3YWUwMjcwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsCkBAIC0yNywxNCArMjcsMTMgQEAKICAgICBDdXN0b21Jc1JlYWNo
YWJsZSwKICAgICBFbmFibGVkQXRSdW50aW1lPU9mZnNjcmVlbkNhbnZhcywKICAgICBDb25kaXRp
b25hbD1PRkZTQ1JFRU5fQ0FOVkFTLAotICAgIEV4cG9zZWQ9KFdpbmRvdyksIC8vIEZJWE1FOiBP
ZmZzY3JlZW5DYW52YXMgLSBzaG91bGQgYmUgV2luZG93LFdvcmtlcgorICAgIEV4cG9zZWQ9KFdp
bmRvdyxXb3JrZXIpLAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgIEpTQ3VzdG9tTWFy
a0Z1bmN0aW9uLAogICAgIC8vIENhbGxUcmFjaW5nQ2FsbGJhY2s9cmVjb3JkQ2FudmFzQWN0aW9u
LCAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgogXSBpbnRlcmZhY2UgT2Zmc2NyZWVuQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgT2Zmc2NyZWVuQ2Fu
dmFzIGNhbnZhczsKLSAgICAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgotICAgIC8vIHZvaWQg
Y29tbWl0KCk7CisgICAgdm9pZCBjb21taXQoKTsKIAogICAgIC8vIEluc3BlY3Rvci1vbmx5Lgog
ICAgIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52YXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAw
OTJjNGFlZjYwYTU1MTNmNDc2YzdkNzE0MzNlYmU3MWFmYTc4MWQ0Li4xZWM3YTI0ZWRmNDQ1MjEx
YmJiYTk5NDJlODE0NmJiMWU3ZjY4NGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI2LDYg
KzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmgiCiAKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKworI2luY2x1
ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzcsNCArNDEsMTQgQEAgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0OjpQbGFjZWhvbGRl
clJlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYgY2FudmFzKQogewogfQogCitIVE1MQ2FudmFz
RWxlbWVudCogUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0OjpjYW52YXMoKSBjb25zdAorewor
ICAgIGF1dG8mIGJhc2UgPSBjYW52YXNCYXNlKCk7CisgICAgaWYgKCFpczxIVE1MQ2FudmFzRWxl
bWVudD4oYmFzZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiAmZG93bmNh
c3Q8SFRNTENhbnZhc0VsZW1lbnQ+KGJhc2UpOwogfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQuaAppbmRleCBjMzQ4ZTUxODk1MmNiOWQ0MTVjNmJkMTc5NWYyMTZkY2IxNjVkMjU5Li42NDUw
OTE0NTlkZDAxY2MyYTc5NzdkYzAwM2I0NTI2NWRlNWJhN2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaApA
QCAtMjUsMTUgKzI1LDIxIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKE9GRlNDUkVF
Tl9DQU5WQVMpCisKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgT2Zmc2NyZWVuQ2FudmFzOworCiBjbGFzcyBQbGFjZWhv
bGRlclJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQpOwogcHVibGljOgogICAgIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNl
Jik7CiAKKyAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzKCkgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgYm9vbCBpc1BsYWNlaG9sZGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQog
fTsKQEAgLTQxLDMgKzQ3LDUgQEAgcHJpdmF0ZToKIH0KIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19DQU5WQVNSRU5ERVJJTkdDT05URVhUKFdlYkNvcmU6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dCwgaXNQbGFjZWhvbGRlcigpKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IDFjZTU2Y2Q0NmQ2ODlkMWQwNGYyOTJjODRiZTIxYzA4MjBmNTE1NWQuLjc5NjM4
MTRhODNiMTYwMDUwNWY3MjMyMzYyNWM4NWZhY2IyOGZiZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAyLTEzICBDaHJpcyBMb3JkICA8Y2xv
cmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY29tbWl0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI3OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5jb21taXQudy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNv
bnRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3Jl
ZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0
Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNj
cmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52
YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50
by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9v
ZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFu
c2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA0LTI2ICBB
bGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZSBzaG91bGQgdXNlIG5ld1RhcmdldCdz
IGdsb2JhbE9iamVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0CmluZGV4IDZmMWM3MDUwZTVlODI4
YzNmMzIzZjI5NWZiMWQyYTRmZWM4YzAwN2MuLmIzYjM5YTdhOTFmYzBhYzg1NTdhOWEyOGMyZWJi
NjI0YjVlNDc3MTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw1IEBACitD
T05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRo
ZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0ZWQgMjU1IGJ1dCBnb3QgMAogCi1GQUlMIFRlc3QgdGhh
dCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRv
IGl0cyBwbGFjZWhvbGRlci4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4g
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5k
ZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBjb21taXQgb24gYW4gT2Zmc2NyZWVuQ2Fu
dmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVkIGZyb20gYSBIVE1MQ2FudmFzRWxlbWVudCBpcyBh
IG5vb3AuIGN0eC5jb21taXQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnY3R4LmNvbW1pdCgpJywg
J2N0eC5jb21taXQnIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2Ny
ZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVy
LiAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNjcmVlbkNhbnZhcyB0
aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1lbnQgaXMgYSBub29w
LiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5jb21taXQudy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dAppbmRleCA0MzQzMzJjZTUxYWJmZTM3MTJk
MGUyNDk1OGE4MDUyODFhNjA3MDc0Li5jNDIxOGVjYWMyNzNkMDU0N2Y1ZTQ5YzNkMTIzZmRhZjgz
ZjNlYWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAot
RkFJTCBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0
cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2Fu
dmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVyLiAKIFBB
U1MgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlz
IG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1lbnQgdGhyb3dzIGFuIGV4Y2Vw
dGlvbiBpbiBhIHdvcmtlci4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4
IGJkOWFhMGUxNjc3ZTk0OTQ4MGIyMjMzMTIyMzhmNDcwOTllZjEzNzcuLmM1N2EyOTNlYzRhOWJk
NjhjNmQ5MWY5YWJjODI1NTRjNGRmODhmNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFz
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVk
LnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHVu
LXN1cHBvcnRlZCBzdHJpbmcgdGhyb3dzIGEgVHlwZUVycm9yLiAKIEZBSUwgVGVzdCB0aGF0IGdl
dENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRzIEFy
Z3VtZW50IDEgKCdjb250ZXh0VHlwZScpIHRvIE9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0IG11
c3QgYmUgb25lIG9mOiAiMmQiLCAid2ViZ2wiCi1GQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3
aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0
aW1lIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4KK1BBU1MgVGVzdCB0aGF0IGdl
dENvbnRleHQgdHdpY2Ugd2l0aCBkaWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0
aGUgc2Vjb25kIHRpbWUgCiBQQVNTIFRlc3QgdGhhdCAyZGNvbnRleHQuY2FudmFzIHNob3VsZCBy
ZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKIFBBU1MgVGVzdCB0aGF0IHdlYmds
Y29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFz
IAogRkFJTCBUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHdpdGgg
YWxwaGEgZGlzYWJsZWQgbWFrZXMgdGhlIE9mZnNjcmVlbkNhbnZhcyBvcGFxdWUgYXNzZXJ0X2Fw
cHJveF9lcXVhbHM6IEdyZWVuIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCA1KSBleHBlY3Rl
ZCAxMjcgKy8tIDIgYnV0IGdvdCAyNTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNh
bnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFz
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci1l
eHBlY3RlZC50eHQKaW5kZXggZjIyNGNlNzRlZWE4NzhjZjc2YTEzMzNiY2FlMWJhYTEwZmQ0ZjY2
Ny4uMzlmYzJjZjlhYWRkZTdmMmRiMWIzZTJlMzM2ODllZDcwNzE3OGNhMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2Fu
dmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKIFBB
U1MgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCB1bi1zdXBwb3J0ZWQgc3RyaW5nIHRocm93cyBh
IFR5cGVFcnJvci4gCi1GQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0
cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBPZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQKLUZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgdHdp
Y2Ugd2l0aCBkaWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRp
bWUgVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorRkFJTCBUZXN0IHRoYXQgZ2V0
Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQ2Fu
J3QgZmluZCB2YXJpYWJsZTogV2ViR0xSZW5kZXJpbmdDb250ZXh0CitQQVNTIFRlc3QgdGhhdCBn
ZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwg
dGhlIHNlY29uZCB0aW1lIAogUEFTUyBUZXN0IHRoYXQgMmRjb250ZXh0LmNhbnZhcyBzaG91bGQg
cmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBQQVNTIFRlc3QgdGhhdCB3ZWJn
bGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZh
cyAKIEZBSUwgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB3aXRo
IGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBPZmZzY3JlZW5DYW52YXMgb3BhcXVlIGFzc2VydF9h
cHByb3hfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0
ZWQgMTI3ICsvLSAyIGJ1dCBnb3QgMjU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQKaW5kZXggZjQ1
NTA3MTcyYjc2YmFmMDZhYjBlNDRlZDE1Y2UzMzA2YWQ0ODE4YS4uNmMxMWM4ZGY0YjY1YTc5MDBh
ZGRjNzQ2YWE5YTBlZTc3OTQxODYxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dApAQCAtMiwx
MSArMiwxMSBAQAogUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVp
Z2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMg
bm8gY29udGV4dCBhdHRhY2hlZC4gCiBQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdp
ZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hl
biB0aGVyZSBpcyBhIDJkIGNvbnRleHQgYXR0YWNoZWQuIAogUEFTUyBWZXJpZnkgdGhhdCB3cml0
aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2Fu
dmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgYSB3ZWJnbCBjb250ZXh0IGF0dGFjaGVkLiAKLUZBSUwg
VmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBh
IHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIHBsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVmVyaWZ5IHRoYXQgd3JpdGluZyB0
byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0
aHJvd3MgYW4gZXhjZXB0aW9uIGV2ZW4gd2hlbiBub3QgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRo
ZSBhdHRyaWJ1dGUuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
KCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5l
ZCkKK1BBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJp
YnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIAorUEFTUyBW
ZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEg
cGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gZXZlbiB3aGVuIG5vdCBjaGFu
Z2luZyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4gCiBQQVNTIFZlcmlmeSB0aGF0IHJlc2l6
aW5nIGEgMmQgY29udGV4dCByZXNldHMgaXRzIHN0YXRlLiAKIFBBU1MgVmVyaWZ5IHRoYXQgc2V0
dGluZyB0aGUgc2l6ZSBvZiBhIDJkIGNvbnRleHQgdG8gdGhlIHNhbWUgc2l6ZSBpdCBhbHJlYWR5
IGhhZCByZXNldHMgaXRzIHN0YXRlLiAKLUZBSUwgVmVyaWZ5IHRoYXQgcmVzaXppbmcgYW4gT2Zm
c2NyZWVuQ2FudmFzIHdpdGggYSAyZCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5ldyBzaXplIHRv
IGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHkuIHBsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVmVyaWZ5IHRoYXQgcmVzaXppbmcg
YW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSB3ZWJnbCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5l
dyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHkuIHBsYWNlaG9s
ZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3Bs
YWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVmVyaWZ5IHRoYXQg
ZHJhd0ltYWdlIHVzZXMgdGhlIHNpemUgb2YgdGhlIGZyYW1lIGFzIHRoZSBpbnRpbnNpYyBzaXpl
IG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzLiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
JyBpcyB1bmRlZmluZWQpCitQQVNTIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNh
bnZhcyB3aXRoIGEgMmQgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxh
Y2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiAKK1BBU1MgVmVyaWZ5IHRoYXQgcmVzaXpp
bmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSB3ZWJnbCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhl
IG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHkuIAorUEFT
UyBWZXJpZnkgdGhhdCBkcmF3SW1hZ2UgdXNlcyB0aGUgc2l6ZSBvZiB0aGUgZnJhbWUgYXMgdGhl
IGludGluc2ljIHNpemUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMuIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52
YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50
by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dAppbmRl
eCA0ZjQyZTUwNzQyODI4MGEyZWExOWY3NjNjZjhjOTYxOWFlNWJiMzA1Li4yOTYwNDg1YjdiNmFk
NmY3MDYyZGVmOWZlN2I3OWU1Y2I3NGI4M2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMu
dHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBA
CiAKLUZBSUwgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgcGxhY2Vo
b2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQg
Y2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRoYXQgaGFzIGFscmVh
ZHkgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdGhyb3dzIGFuIGV4Y2VwdGlvbiBwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxs
aW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBleGNlcHRpb24g
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBUZXN0
IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCAKK1BBU1MgVGVzdCB0aGF0IGNh
bGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGhhcyBhbHJlYWR5
IHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRocm93cyBhbiBleGNlcHRpb24gCitQQVNTIFRlc3Qg
dGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBl
eGNlcHRpb24gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZh
cy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRv
Lm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dAppbmRleCAyY2QzZGI0YjI3NmRjMWMxMWQxZWNkYjA0
OGIzYjc5MDkzZWVlMGRhLi4zM2I4NTMyY2IyZTAwNDE0YTZkNTRhNmRhNzlhZTc2ZWFmNDY1NjNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRy
YW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2Ny
ZWVuLnctZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1GQUlMIFRlc3QgdGhhdCBhbiBP
ZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdl
dHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHdoZW4gaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSB3
b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdw
bGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJ
TCBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRo
YXQgaXMgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdG8gYW4gT2Zmc2NyZWVuQ2FudmFzIHRocm93
cyBhbiBleGNlcHRpb24sIHdoZW4gdGhlIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0
byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigp
JywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQp
Ci1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNl
IHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gaXRzIGFzc29jaWF0ZWQgT2Zmc2NyZWVuQ2FudmFz
IGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5l
cmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFu
ZCBoZWlnaHQgd2hlbiBpdCBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciAKK1BBU1MgVGVzdCB0
aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGlzIHRy
YW5zZmVycmVkIGl0cyBjb250cm9sIHRvIGFuIE9mZnNjcmVlbkNhbnZhcyB0aHJvd3MgYW4gZXhj
ZXB0aW9uLCB3aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3Jr
ZXIgCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3
aWNlIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gaXRzIGFzc29jaWF0ZWQgT2Zmc2NyZWVuQ2Fu
dmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397702</attachid>
            <date>2020-04-27 11:01:29 -0700</date>
            <delta_ts>2020-04-27 23:46:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200427190128.patch</filename>
            <type>text/plain</type>
            <size>39605</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU5YTMzZmI3MDg0OGYz
OGQ5MmUyZTZiMTlkYzJmZTEwZTZhNzY3ZC4uNDk5MTNjNTI1YTVlZWY4ZmNiNmMxOGUyMmEwYmE0
Y2Y3YzVhYzFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52
YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAyMC0wNC0yNyAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEs0XSBHZGtSR0JB
IGhhcyBmbG9hdCBtZW1iZXJzIGluc3RlYWQgb2YgZG91YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDBkYjUyNjhhZGVkZTBiZGYxMDU0MDE0ZTQ5MTdi
NDM5YjgyOGUwZjMuLjFiZTJjNmNhYjRmZjc5MDgxOGFkYjAxMDIxMTYzYTI4NzE4YjI5NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00OSw2ICs0OSw3
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZE9ic2VydmVyLmgiCkBAIC0xNzEsNyArMTcyLDcgQEAgYm9vbCBIVE1MQ2FudmFzRWxl
bWVudDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdAogCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1M
Q2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogewotICAgIGlmIChtX2Nv
bnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxl
ZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0
ciwgQXRvbVN0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVlLCBk
ZWZhdWx0SGVpZ2h0KSkpOwogICAgIHJldHVybiB7IH07CkBAIC0xNzksNyArMTgwLDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1
ZSkKIAogRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2ln
bmVkIHZhbHVlKQogewotICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9s
ZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09u
bHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRXaWR0aCkpKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNTQwLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiB7
Ci0gICAgaWYgKG1faWdub3JlUmVzZXQpCisgICAgaWYgKG1faWdub3JlUmVzZXQgfHwgaXNDb250
cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRJbWFn
ZUJ1ZmZlciA9IGhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpOwpAQCAtNzQyLDYgKzc0MywyNCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFJlZgogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUo
T0ZGU0NSRUVOX0NBTlZBUykKK0V4Y2VwdGlvbk9yPFJlZjxPZmZzY3JlZW5DYW52YXM+PiBIVE1M
Q2FudmFzRWxlbWVudDo6dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAobV9jb250ZXh0KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGF1dG8gY2FudmFzID0gT2Zm
c2NyZWVuQ2FudmFzOjpjcmVhdGUoY29udGV4dCwgKnRoaXMpOworICAgIG1fY29udGV4dCA9IG1h
a2VVbmlxdWU8UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0PigqdGhpcyk7CisKKyNpZiBVU0Uo
VEVYVFVSRV9NQVBQRVJfR0wpCisgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXll
ciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBjYW52YXMuCisgICAg
aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworI2VuZGlmCisKKyAgICByZXR1
cm4gY2FudmFzOworfQorI2VuZGlmCisKIFJlZlB0cjxJbWFnZURhdGE+IEhUTUxDYW52YXNFbGVt
ZW50OjpnZXRJbWFnZURhdGEoKQogewogI2lmIEVOQUJMRShXRUJHTCkKQEAgLTkxNiw4ICs5MzUs
MTcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAog
CiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eShzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyKQogeworICAgIEludFNpemUgb2xkU2l6
ZSA9IHNpemUoKTsKICAgICBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlciA9IHRydWU7CiAgICAgc2V0
SW1hZ2VCdWZmZXIoV1RGTW92ZShidWZmZXIpKTsKKworICAgIGlmIChpc0NvbnRyb2xsZWRCeU9m
ZnNjcmVlbigpICYmIG9sZFNpemUgIT0gc2l6ZSgpKSB7CisgICAgICAgIHNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIod2lkdGgo
KSkpOworICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhlaWdodEF0
dHIsIEF0b21TdHJpbmc6Om51bWJlcihoZWlnaHQoKSkpOworICAgICAgICBub3RpZnlPYnNlcnZl
cnNDYW52YXNSZXNpemVkKCk7CisgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZFJlbmRlcmVyc0Zv
clN1YnRyZWUoKTsKKyAgICB9CisKICAgICBkaWREcmF3KEZsb2F0UmVjdChGbG9hdFBvaW50KCks
IHNpemUoKSkpOwogfQogCkBAIC05NzcsNCArMTAwNSw5IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCkKICNlbmRpZgogfQogCitib29sIEhUTUxDYW52
YXNFbGVtZW50Ojppc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDUwZTdjMmNkZWUxMDU4MmI2YTk3
Y2NkMmE3NzU2NzQ5MDhkZmYzOGMuLmI2MDFiN2VhNTQyYTM0ZmZhNDExMDZjYTllYmI5NjRlNjk0
MjE4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTUwLDYg
KzUwLDcgQEAgY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7CiBjbGFzcyBNZWRp
YVNhbXBsZTsKIGNsYXNzIE1lZGlhU3RyZWFtOworY2xhc3MgT2Zmc2NyZWVuQ2FudmFzOwogY2xh
c3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKIGNsYXNzIEdQVUNhbnZhc0NvbnRleHQ7CiBz
dHJ1Y3QgVW5jYWNoZWRTdHJpbmc7CkBAIC05Nyw2ICs5OCw5IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBFeGNlcHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKICAgICBXRUJDT1JFX0VYUE9S
VCBFeGNlcHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHRvQmxvYihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVmPEJsb2JDYWxsYmFjaz4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpK
U1ZhbHVlIHF1YWxpdHkpOworI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorICAgIEV4Y2Vw
dGlvbk9yPFJlZjxPZmZzY3JlZW5DYW52YXM+PiB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisjZW5kaWYKIAogICAgIC8vIFVzZWQgZm9yIHJlbmRl
cmluZwogICAgIHZvaWQgZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKQEAgLTEyOSw2
ICsxMzMsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRN
YXhQaXhlbE1lbW9yeUZvclRlc3Rpbmcoc2l6ZV90KTsKIAorICAgIGJvb2wgaXNDb250cm9sbGVk
QnlPZmZzY3JlZW4oKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmlkbAppbmRleCA3MThhOWVhN2E0Yzk3MTVhMmU3ODA0Nzc1NTJjMmI1
ZjUxM2E5YTBhLi5hZTRmY2FhYzI2OWY2YmMzZjU0MGViZDFlNDdiNTg5MjdkYjNlZWVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbApAQCAtNTAsNiArNTAsNyBA
QCB0eXBlZGVmICgKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHRvRGF0YVVS
TChvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOwogICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB0
b0Jsb2IoQmxvYkNhbGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0
aW9uYWwgYW55IHF1YWxpdHkpOworICAgIFtDb25kaXRpb25hbD1PRkZTQ1JFRU5fQ0FOVkFTLCBD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gT2Zmc2Ny
ZWVuQ2FudmFzIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CiAKICAgICBbQ29uZGl0aW9u
YWw9TUVESUFfU1RSRUFNLCBDYWxsV2l0aD1Eb2N1bWVudCwgTWF5VGhyb3dFeGNlcHRpb24sIE5l
d09iamVjdF0gTWVkaWFTdHJlYW0gY2FwdHVyZVN0cmVhbShvcHRpb25hbCBkb3VibGUgZnJhbWVS
ZXF1ZXN0UmF0ZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCmlu
ZGV4IDYwNmE0ZDdjZTE1OGQyOGY1OTk3OTZlM2EzOTY2NWFmZjQ2YWQwN2YuLmIwYWQ0YmI2MzVj
YjNiODMzZWM3MzEzNWJmMDAzZGQ4ZjA5YTUxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNj
cmVlbkNhbnZhcy5jcHAKQEAgLTMxLDExICszMSwxNCBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlUG9v
bC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2VC
aXRtYXAuaCIKKyNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJKU0Jsb2IuaCIKICNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0
cnkuaCIKICNpbmNsdWRlICJPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKKyNp
bmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC00NCwxMSArNDcsMTQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoT2Zmc2NyZWVuQ2FudmFz
KTsKIAotRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OkRldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUs
IGJvb2wgb3JpZ2luQ2xlYW4pCitEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZz
Y3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmIGJ1ZmZlciwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSwgYm9vbCBvcmlnaW5DbGVhbiwgSFRNTENhbnZhc0VsZW1lbnQqIHBsYWNl
aG9sZGVyQ2FudmFzKQogICAgIDogbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKQogICAgICwgbV9z
aXplKHNpemUpCiAgICAgLCBtX29yaWdpbkNsZWFuKG9yaWdpbkNsZWFuKQorICAgICwgbV9wbGFj
ZWhvbGRlckNhbnZhcyhtYWtlV2Vha1B0cihwbGFjZWhvbGRlckNhbnZhcykpCiB7CisgICAgaWYg
KHBsYWNlaG9sZGVyQ2FudmFzKQorICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzID0gbWFrZVdl
YWtQdHIocGxhY2Vob2xkZXJDYW52YXMpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKQpAQCAtNTYsNiAr
NjIsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBEZXRhY2hlZE9mZnNjcmVlbkNh
bnZhczo6dGFrZUltYWdlQnVmZmVyKCkKICAgICByZXR1cm4gV1RGTW92ZShtX2J1ZmZlcik7CiB9
CiAKK1dlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0
YWtlUGxhY2Vob2xkZXJDYW52YXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9wbGFjZWhvbGRlckNhbnZhcywgbnVsbHB0cik7Cit9
CisKIFJlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQsIHdp
ZHRoLCBoZWlnaHQpKTsKQEAgLTYzLDE0ICs3NSwyNyBAQCBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBP
ZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1
bgogCiBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3Jl
ZW5DYW52YXM+JiYgZGV0YWNoZWRDYW52YXMpCiB7Ci0gICAgUmVmPE9mZnNjcmVlbkNhbnZhcz4g
Y2xvbmUgPSBhZG9wdFJlZigqbmV3IE9mZnNjcmVlbkNhbnZhcyhjb250ZXh0LCBkZXRhY2hlZENh
bnZhcy0+c2l6ZSgpLndpZHRoKCksIGRldGFjaGVkQ2FudmFzLT5zaXplKCkuaGVpZ2h0KCkpKTsK
KyAgICBhdXRvIGNsb25lID0gYWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwg
ZGV0YWNoZWRDYW52YXMtPnNpemUoKS53aWR0aCgpLCBkZXRhY2hlZENhbnZhcy0+c2l6ZSgpLmhl
aWdodCgpKSk7CisKICAgICBjbG9uZS0+c2V0SW1hZ2VCdWZmZXIoZGV0YWNoZWRDYW52YXMtPnRh
a2VJbWFnZUJ1ZmZlcigpKTsKICAgICBpZiAoIWRldGFjaGVkQ2FudmFzLT5vcmlnaW5DbGVhbigp
KQogICAgICAgICBjbG9uZS0+c2V0T3JpZ2luVGFpbnRlZCgpOwogCisgICAgY2FsbE9uTWFpblRo
cmVhZChbZGV0YWNoZWRDYW52YXMgPSBXVEZNb3ZlKGRldGFjaGVkQ2FudmFzKSwgb2Zmc2NyZWVu
Q2FudmFzID0gbWFrZVJlZihjbG9uZS5nZXQoKSldICgpIG11dGFibGUgeworICAgICAgICBvZmZz
Y3JlZW5DYW52YXMtPm1fcGxhY2Vob2xkZXJDYW52YXMgPSBkZXRhY2hlZENhbnZhcy0+dGFrZVBs
YWNlaG9sZGVyQ2FudmFzKCk7CisgICAgICAgIG9mZnNjcmVlbkNhbnZhcy0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbcmVsZWFzZU9mZnNjcmVlbkNhbnZhcyA9IFdURk1vdmUo
b2Zmc2NyZWVuQ2FudmFzKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7IH0pOworICAgIH0p
OworCiAgICAgcmV0dXJuIGNsb25lOwogfQogCitSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3Jl
ZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBIVE1MQ2Fu
dmFzRWxlbWVudCYgY2FudmFzKQoreworICAgIGF1dG8gb2Zmc2NyZWVuID0gYWRvcHRSZWYoKm5l
dyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwgY2FudmFzLndpZHRoKCksIGNhbnZhcy5oZWlnaHQo
KSkpOworICAgIG9mZnNjcmVlbi0+c2V0UGxhY2Vob2xkZXJDYW52YXMoY2FudmFzKTsKKyAgICBy
ZXR1cm4gb2Zmc2NyZWVuOworfQorCiBPZmZzY3JlZW5DYW52YXM6Ok9mZnNjcmVlbkNhbnZhcyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQg
aGVpZ2h0KQogICAgIDogQ2FudmFzQmFzZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKQogICAgICwg
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCkBAIC03OSw4ICsxMDQsMTMgQEAg
T2Zmc2NyZWVuQ2FudmFzOjpPZmZzY3JlZW5DYW52YXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgdW5zaWduZWQgd2lkdGgKIAogT2Zmc2NyZWVuQ2FudmFzOjp+T2Zmc2NyZWVuQ2Fu
dmFzKCkKIHsKLSAgICBub3RpZnlPYnNlcnZlcnNDYW52YXNEZXN0cm95ZWQoKTsKKyAgICB7Cisg
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb21taXRMb2NrKTsKKyAgICAgICAgbV9o
YXNQZW5kaW5nQ29tbWl0RGF0YSA9IGZhbHNlOworICAgICAgICBtX3BlbmRpbmdDb21taXREYXRh
ID0gbnVsbHB0cjsKKyAgICB9CiAKKyAgICBub3RpZnlPYnNlcnZlcnNDYW52YXNEZXN0cm95ZWQo
KTsKICAgICBtX2NvbnRleHQgPSBudWxscHRyOyAvLyBFbnN1cmUgdGhpcyBnb2VzIGF3YXkgYmVm
b3JlIHRoZSBJbWFnZUJ1ZmZlci4KICAgICBzZXRJbWFnZUJ1ZmZlcihudWxscHRyKTsKIH0KQEAg
LTExOSw3ICsxNDksNyBAQCB2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2V0U2l6ZShjb25zdCBJbnRT
aXplJiBuZXdTaXplKQogICAgIHJlc2V0KCk7CiB9CiAKLUV4Y2VwdGlvbk9yPE9mZnNjcmVlblJl
bmRlcmluZ0NvbnRleHQ+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xvYmFs
T2JqZWN0JiBzdGF0ZSwgUmVuZGVyaW5nQ29udGV4dFR5cGUgY29udGV4dFR5cGUsIFZlY3RvcjxK
U0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKK0V4Y2VwdGlvbk9yPE9wdGlv
bmFsPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRl
eHQoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIFJlbmRlcmluZ0NvbnRleHRUeXBlIGNvbnRl
eHRUeXBlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpCiB7
CiAgICAgaWYgKG1fZGV0YWNoZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9OwpAQCAtMTI3LDIyICsxNTcsMjIgQEAgRXhjZXB0aW9uT3I8T2Zmc2NyZWVu
UmVuZGVyaW5nQ29udGV4dD4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9i
YWwKICAgICBpZiAoY29udGV4dFR5cGUgPT0gUmVuZGVyaW5nQ29udGV4dFR5cGU6Ol8yZCkgewog
ICAgICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgICAgICBpZiAoIWlzPE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07Ci0gICAgICAgICAgICByZXR1cm4g
eyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4geyB7IFdURjo6bnVsbG9wdCB9IH07CisgICAgICAgICAgICByZXR1
cm4geyB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25j
YXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9IH07
CiAgICAgICAgIH0KIAogICAgICAgICBtX2NvbnRleHQgPSBtYWtlVW5pcXVlPE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKnRoaXMpOwogICAgICAgICBpZiAoIW1fY29udGV4dCkK
LSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ+IHsgbnVsbHB0ciB9IH07CisgICAgICAgICAgICByZXR1cm4geyB7IFdURjo6bnVsbG9w
dCB9IH07CiAKLSAgICAgICAgcmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
PigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH0gfTsKICAgICB9CiAjaWYgRU5BQkxFKFdFQkdM
KQogICAgIGlmIChjb250ZXh0VHlwZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6V2ViZ2wpIHsK
ICAgICAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAgICAgaWYgKCFpczxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+KCptX2NvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwotICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPFdl
YkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Pigq
bV9jb250ZXh0KSB9IH07CisgICAgICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0
PigqbV9jb250ZXh0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4geyB7IFJlZlB0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29u
dGV4dCkgfSB9IH07CisgICAgICAgICAgICByZXR1cm4geyB7IFdURjo6bnVsbG9wdCB9IH07CiAg
ICAgICAgIH0KIAogICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0
ZS52bSgpKTsKQEAgLTE1MSwxMyArMTgxLDEzIEBAIEV4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRl
cmluZ0NvbnRleHQ+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xvYmFsCiAK
ICAgICAgICAgbV9jb250ZXh0ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0
aGlzLCBhdHRyaWJ1dGVzLCAid2ViZ2wiKTsKICAgICAgICAgaWYgKCFtX2NvbnRleHQpCi0gICAg
ICAgICAgICByZXR1cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7IG51bGxwdHIg
fSB9OworICAgICAgICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9OwogCi0gICAgICAg
IHJldHVybiB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICByZXR1cm4geyB7IFJl
ZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29u
dGV4dD4oKm1fY29udGV4dCkgfSB9IH07CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKyAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlw
ZUVycm9yIH07CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+IE9mZnNjcmVl
bkNhbnZhczo6dHJhbnNmZXJUb0ltYWdlQml0bWFwKCkKQEAgLTI1OSw2ICsyODksNyBAQCB2b2lk
IE9mZnNjcmVlbkNhbnZhczo6Y29udmVydFRvQmxvYihJbWFnZUVuY29kZU9wdGlvbnMmJiBvcHRp
b25zLCBSZWY8RGVmZXJyZWRQcgogdm9pZCBPZmZzY3JlZW5DYW52YXM6OmRpZERyYXcoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQogewogICAgIGNsZWFyQ29waWVkSW1hZ2UoKTsKKyAgICBzY2hlZHVs
ZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKICAgICBub3RpZnlPYnNlcnZlcnNDYW52YXND
aGFuZ2VkKHJlY3QpOwogfQogCkBAIC0zMDEsNyArMzMyLDcwIEBAIHN0ZDo6dW5pcXVlX3B0cjxE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4gT2Zmc2NyZWVuQ2FudmFzOjpkZXRhY2goKQogCiAgICAg
bV9kZXRhY2hlZCA9IHRydWU7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxEZXRhY2hlZE9mZnNj
cmVlbkNhbnZhcz4odGFrZUltYWdlQnVmZmVyKCksIHNpemUoKSwgb3JpZ2luQ2xlYW4oKSk7Cisg
ICAgcmV0dXJuIG1ha2VVbmlxdWU8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+KHRha2VJbWFnZUJ1
ZmZlcigpLCBzaXplKCksIG9yaWdpbkNsZWFuKCksIG1fcGxhY2Vob2xkZXJDYW52YXMuZ2V0KCkp
OworfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2V0UGxhY2Vob2xkZXJDYW52YXMoSFRNTENh
bnZhc0VsZW1lbnQmIGNhbnZhcykKK3sKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX3BsYWNlaG9sZGVyQ2FudmFzID0gbWFrZVdlYWtQ
dHIoY2FudmFzKTsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnB1c2hCdWZmZXJUb1BsYWNl
aG9sZGVyKCkKK3sKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHRoaXNdICgpIG11dGFibGUgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fY29tbWl0TG9jayk7CisKKyAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXJDYW52YXMgJiYg
bV9oYXNQZW5kaW5nQ29tbWl0RGF0YSkgeworICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKEZsb2F0U2l6ZShtX3BlbmRp
bmdDb21taXREYXRhLT5zaXplKCkpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKKyAg
ICAgICAgICAgIGJ1ZmZlci0+cHV0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb246OlBy
ZW11bHRpcGxpZWQsICptX3BlbmRpbmdDb21taXREYXRhLCBJbnRSZWN0KEludFBvaW50KCksIG1f
cGVuZGluZ0NvbW1pdERhdGEtPnNpemUoKSkpOworICAgICAgICAgICAgbV9wbGFjZWhvbGRlckNh
bnZhcy0+c2V0SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoV1RGTW92ZShidWZmZXIpKTsKKyAgICAg
ICAgICAgIG1faGFzUGVuZGluZ0NvbW1pdERhdGEgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAg
ICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soW3JlbGVhc2VUaGlzID0gV1RG
TW92ZShwcm90ZWN0ZWRUaGlzKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7IH0pOworICAg
IH0pOworfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6Y29tbWl0VG9QbGFjZWhvbGRlckNhbnZh
cygpCit7CisgICAgYXV0byogaW1hZ2VCdWZmZXIgPSBidWZmZXIoKTsKKyAgICBpZiAoIWltYWdl
QnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogVHJhbnNmZXIgdGV4dHVy
ZSBvdmVyIGlmIHdlJ3JlIHVzaW5nIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgaWYgKG1f
Y29udGV4dCAmJiAobV9jb250ZXh0LT5pc1dlYkdMKCkgfHwgbV9jb250ZXh0LT5pc0FjY2VsZXJh
dGVkKCkpKQorICAgICAgICBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFz
KCk7CisKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAgaWYgKG1fcGxhY2Vob2xk
ZXJDYW52YXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGJ1ZmZlckNvcHkgPSBpbWFnZUJ1ZmZl
ci0+Y29weVJlY3RUb0J1ZmZlcihGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+
bG9naWNhbFNpemUoKSksIENvbG9yU3BhY2U6OlNSR0IsIGltYWdlQnVmZmVyLT5jb250ZXh0KCkp
KQorICAgICAgICAgICAgICAgIG1fcGxhY2Vob2xkZXJDYW52YXMtPnNldEltYWdlQnVmZmVyQW5k
TWFya0RpcnR5KFdURk1vdmUoYnVmZmVyQ29weSkpOworICAgICAgICB9CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29tbWl0TG9jayk7CisK
KyAgICBib29sIHNob3VsZFB1c2hCdWZmZXIgPSAhbV9oYXNQZW5kaW5nQ29tbWl0RGF0YTsKKyAg
ICBtX3BlbmRpbmdDb21taXREYXRhID0gaW1hZ2VCdWZmZXItPmdldEltYWdlRGF0YShBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdl
QnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSk7CisgICAgbV9oYXNQZW5kaW5nQ29tbWl0RGF0YSA9IHRy
dWU7CisKKyAgICBpZiAoc2hvdWxkUHVzaEJ1ZmZlcikKKyAgICAgICAgcHVzaEJ1ZmZlclRvUGxh
Y2Vob2xkZXIoKTsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnNjaGVkdWxlQ29tbWl0VG9Q
bGFjZWhvbGRlckNhbnZhcygpCit7CisgICAgaWYgKCFtX2hhc1NjaGVkdWxlZENvbW1pdCkgewor
ICAgICAgICBhdXRvJiBzY3JpcHRDb250ZXh0ID0gKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
KyAgICAgICAgbV9oYXNTY2hlZHVsZWRDb21taXQgPSB0cnVlOworICAgICAgICBzY3JpcHRDb250
ZXh0LnBvc3RUYXNrKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXNdIChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JikgeworICAgICAgICAgICAgbV9oYXNTY2hlZHVsZWRDb21taXQg
PSBmYWxzZTsKKyAgICAgICAgICAgIGNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKKyAgICAg
ICAgfSk7CisgICAgfQogfQogCiBDU1NWYWx1ZVBvb2wmIE9mZnNjcmVlbkNhbnZhczo6Y3NzVmFs
dWVQb29sKCkKQEAgLTM1MSw2ICs0NDUsNyBAQCB2b2lkIE9mZnNjcmVlbkNhbnZhczo6cmVzZXQo
KQogICAgIGNsZWFyQ29waWVkSW1hZ2UoKTsKIAogICAgIG5vdGlmeU9ic2VydmVyc0NhbnZhc1Jl
c2l6ZWQoKTsKKyAgICBzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKaW5kZXggM2U1ZTMwYTU3NmUzMWE5
MzJhNmYxNDZhOTdlYmYwOGRlOWEyNWYzOS4uZWI5MjMwNmRjNWI1MGIyYTNjOTRhOWM1NTgyYTA3
OTdkNmNkYThkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52
YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCkBAIC0zNyw2
ICszNyw3IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTQ0LDcgKzQ1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIENTU1ZhbHVlUG9vbDsKIGNsYXNzIERlZmVycmVkUHJv
bWlzZTsKK2NsYXNzIEhUTUxDYW52YXNFbGVtZW50OwogY2xhc3MgSW1hZ2VCaXRtYXA7CitjbGFz
cyBJbWFnZURhdGE7CiBjbGFzcyBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7CiBj
bGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CiAKQEAgLTU4LDE2ICs2MSwxOCBAQCBjbGFzcyBE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV0YWNo
ZWRPZmZzY3JlZW5DYW52YXMpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4mJiwgY29uc3QgSW50U2l6ZSYsIGJvb2wgb3JpZ2luQ2xlYW4pOworICAgIERldGFjaGVkT2Zm
c2NyZWVuQ2FudmFzKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiwgY29uc3QgSW50U2l6
ZSYsIGJvb2wgb3JpZ2luQ2xlYW4sIEhUTUxDYW52YXNFbGVtZW50KiBwbGFjZWhvbGRlckNhbnZh
cyk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IHRha2VJbWFnZUJ1ZmZlcigp
OwogICAgIGNvbnN0IEludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAg
ICBib29sIG9yaWdpbkNsZWFuKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5DbGVhbjsgfQorICAg
IFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IHRha2VQbGFjZWhvbGRlckNhbnZhcygpOwogCiBw
cml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gbV9idWZmZXI7CiAgICAg
SW50U2l6ZSBtX3NpemU7CiAgICAgYm9vbCBtX29yaWdpbkNsZWFuOworICAgIFdlYWtQdHI8SFRN
TENhbnZhc0VsZW1lbnQ+IG1fcGxhY2Vob2xkZXJDYW52YXM7CiB9OwogCiBjbGFzcyBPZmZzY3Jl
ZW5DYW52YXMgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxPZmZzY3JlZW5DYW52YXM+LCBwdWJs
aWMgQ2FudmFzQmFzZSwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHByaXZhdGUg
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewpAQCAtODYsNiArOTEsNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgUmVmPE9mZnNjcmVlbkNhbnZhcz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKICAgICBzdGF0aWMgUmVm
PE9mZnNjcmVlbkNhbnZhcz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6OnVu
aXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+JiYpOworICAgIHN0YXRpYyBSZWY8T2Zm
c2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEhUTUxDYW52YXNF
bGVtZW50Jik7CiAgICAgdmlydHVhbCB+T2Zmc2NyZWVuQ2FudmFzKCk7CiAKICAgICB1bnNpZ25l
ZCB3aWR0aCgpIGNvbnN0IGZpbmFsOwpAQCAtOTUsNyArMTAxLDcgQEAgcHVibGljOgogCiAgICAg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dCogcmVuZGVyaW5nQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQogCi0gICAgRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVu
ZGVyaW5nQ29udGV4dD4gZ2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVuZGVyaW5n
Q29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50
cyk7CisgICAgRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4+
IGdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFJlbmRlcmluZ0NvbnRleHRUeXBlLCBW
ZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOwogICAgIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOwogICAg
IHZvaWQgY29udmVydFRvQmxvYihJbWFnZUVuY29kZU9wdGlvbnMmJiwgUmVmPERlZmVycmVkUHJv
bWlzZT4mJik7CiAKQEAgLTEwOSw2ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5EZXRh
Y2goKSBjb25zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+
IGRldGFjaCgpOwogCisgICAgdm9pZCBjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisKICAg
ICBDU1NWYWx1ZVBvb2wmIGNzc1ZhbHVlUG9vbCgpOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDo6
cmVmOwpAQCAtMTM4LDYgKzE0NiwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjbGVhckNvcGll
ZEltYWdlKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldFBsYWNlaG9sZGVyQ2FudmFzKEhUTUxDYW52
YXNFbGVtZW50Jik7CisgICAgdm9pZCBwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpOworICAgIHZv
aWQgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dD4gbV9jb250ZXh0OwogCiAgICAgLy8gbV9oYXND
cmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQgdG8gbWFsbG9jIHRoZSBidWZmZXIuIFdl
IGRpZG4ndCBuZWNlc3NhcmlseSBnZXQgaXQuCkBAIC0xNDYsNiArMTU4LDEzIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2RldGFjaGVkIHsgZmFsc2UgfTsKIAogICAgIG11dGFibGUgUmVmUHRyPElt
YWdlPiBtX2NvcGllZEltYWdlOworCisgICAgYm9vbCBtX2hhc1NjaGVkdWxlZENvbW1pdCB7IGZh
bHNlIH07CisgICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gbV9wbGFjZWhvbGRlckNhbnZh
czsKKworICAgIG11dGFibGUgTG9jayBtX2NvbW1pdExvY2s7CisgICAgYm9vbCBtX2hhc1BlbmRp
bmdDb21taXREYXRhIHsgZmFsc2UgfTsKKyAgICBSZWZQdHI8SW1hZ2VEYXRhPiBtX3BlbmRpbmdD
b21taXREYXRhOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXgg
ODZkNzg0YTM1MWQ1ODRjZTZlZjNhNjk5MmU3ZWMyMDZlNjhkOTYwMC4uMGI5YTA0NDFjMTZiYzM4
MWJmNjg3MDZlNzIyMzBiYjU0NjNhZWYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwCkBAIC00OCw2ICs0OCwxMSBAQCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
Ok9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChDYW52YXNCYXNlJgogCiBPZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6On5PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQoKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpjb21taXQoKQoreworICAgIGRvd25jYXN0PE9mZnNjcmVlbkNhbnZhcz4oY2FudmFzQmFz
ZSgpKS5jb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9P
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4IGNjYjE2ZTky
Y2QyYmQwNGNhNTY4YmNmNjE2MzI3OTJlNjk0OTMzZTAuLmVlOTI5YWYyYjI5ZGFlODI2M2RlMWRh
ZjYwZGQxNjQ1NDI1N2U5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC00Miw2
ICs0Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzT2Zmc2NyZWVuMmQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBPZmZzY3JlZW5DYW52YXMmIGNhbnZhcygpIGNvbnN0
IHsgcmV0dXJuIGRvd25jYXN0PE9mZnNjcmVlbkNhbnZhcz4oY2FudmFzQmFzZSgpKTsgfQorCisg
ICAgdm9pZCBjb21taXQoKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaWRsCmluZGV4IDA0ZWM2YTc1MTliMTRhNzVhMTI1NjRmNWU5ZGVi
OTEwZWM4YmYxMzkuLmQ3ZmVjODc5OTM2OTA0NGJkYTcyZGUwZWI1YzUzZDYzN2FlMDI3MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbApAQCAtMjcsMTQgKzI3LDEzIEBACiAgICAg
Q3VzdG9tSXNSZWFjaGFibGUsCiAgICAgRW5hYmxlZEF0UnVudGltZT1PZmZzY3JlZW5DYW52YXMs
CiAgICAgQ29uZGl0aW9uYWw9T0ZGU0NSRUVOX0NBTlZBUywKLSAgICBFeHBvc2VkPShXaW5kb3cp
LCAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzIC0gc2hvdWxkIGJlIFdpbmRvdyxXb3JrZXIKKyAg
ICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAg
ICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAvLyBDYWxsVHJhY2luZ0NhbGxiYWNrPXJlY29y
ZENhbnZhc0FjdGlvbiwgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4KIF0gaW50ZXJmYWNlIE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE9mZnNjcmVlbkNhbnZhcyBjYW52YXM7Ci0gICAgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4K
LSAgICAvLyB2b2lkIGNvbW1pdCgpOworICAgIHZvaWQgY29tbWl0KCk7CiAKICAgICAvLyBJbnNw
ZWN0b3Itb25seS4KICAgICAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dC5jcHAKaW5kZXggMDkyYzRhZWY2MGE1NTEzZjQ3NmM3ZDcxNDMzZWJlNzFhZmE3ODFkNC4uMWVj
N2EyNGVkZjQ0NTIxMWJiYmE5OTQyZTgxNDZiYjFlN2Y2ODRjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQu
Y3BwCkBAIC0yNiw2ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBs
YWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIgogCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5W
QVMpCisKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUgIk9mZnNjcmVl
bkNhbnZhcy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM3LDQgKzQxLDE0IEBAIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dDo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcykKIHsKIH0K
IAorSFRNTENhbnZhc0VsZW1lbnQqIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFz
KCkgY29uc3QKK3sKKyAgICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOworICAgIGlmICghaXM8
SFRNTENhbnZhc0VsZW1lbnQ+KGJhc2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gJmRvd25jYXN0PEhUTUxDYW52YXNFbGVtZW50PihiYXNlKTsKIH0KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVu
ZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYzM0OGU1MTg5NTJjYjlkNDE1YzZiZDE3OTVmMjE2ZGNi
MTY1ZDI1OS4uNjQ1MDkxNDU5ZGQwMWNjMmE3OTc3ZGMwMDNiNDUyNjVkZTViYTdkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJp
bmdDb250ZXh0LmgKQEAgLTI1LDE1ICsyNSwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE9mZnNjcmVlbkNhbnZhczsKKwog
Y2xhc3MgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVibGljIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0KTsKIHB1YmxpYzoKICAgICBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQoQ2FudmFzQmFzZSYpOwogCisgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcygpIGNvbnN0
OworCiBwcml2YXRlOgogICAgIGJvb2wgaXNQbGFjZWhvbGRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KIH07CkBAIC00MSwzICs0Nyw1IEBAIHByaXZhdGU6CiB9CiAKIFNQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfQ0FOVkFTUkVOREVSSU5HQ09OVEVYVChXZWJDb3JlOjpQbGFjZWhvbGRl
clJlbmRlcmluZ0NvbnRleHQsIGlzUGxhY2Vob2xkZXIoKSkKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAxY2U1NmNkNDZkNjg5ZDFkMDRmMjkyYzg0YmUyMWMwODIw
ZjUxNTVkLi43OTYzODE0YTgzYjE2MDA1MDVmNzIzMjM2MjVjODVmYWNiMjhmYmYyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMi0xMyAgQ2hy
aXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IENhbnZhcy50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBhbmQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNvbW1pdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAyNzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVl
bmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52
YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9v
ZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFu
c2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dDoKKwog
MjAyMC0wNC0yNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAg
ICAgICAgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUgc2hvdWxkIHVz
ZSBuZXdUYXJnZXQncyBnbG9iYWxPYmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dAppbmRleCA2
ZjFjNzA1MGU1ZTgyOGMzZjMyM2YyOTVmYjFkMmE0ZmVjOGMwMDdjLi5iM2IzOWE3YTkxZmMwYWM4
NTU3YTlhMjhjMmViYjYyNGI1ZTQ3NzE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogR3JlZW4g
Y2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4cGVjdGVkIDI1NSBidXQgZ290IDAKIAot
RkFJTCBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0
cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFu
IE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZh
c0VsZW1lbnQgaXMgYSBub29wLiBjdHguY29tbWl0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2N0
eC5jb21taXQoKScsICdjdHguY29tbWl0JyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBj
YWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0
cyBwbGFjZWhvbGRlci4gCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZz
Y3JlZW5DYW52YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVt
ZW50IGlzIGEgbm9vcC4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKaW5kZXggNDM0MzMy
Y2U1MWFiZmUzNzEyZDBlMjQ5NThhODA1MjgxYTYwNzA3NC4uYzQyMThlY2FjMjczZDA1NDdmNWU0
OWMzZDEyM2ZkYWY4M2YzZWFiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSw0IEBACiAKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29t
bWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVyLiBwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5n
IE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFj
ZWhvbGRlci4gCiBQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5D
YW52YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IHRo
cm93cyBhbiBleGNlcHRpb24gaW4gYSB3b3JrZXIuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9m
ZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2Fu
dmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVj
dGVkLnR4dAppbmRleCBiZDlhYTBlMTY3N2U5NDk0ODBiMjIzMzEyMjM4ZjQ3MDk5ZWYxMzc3Li5j
NTdhMjkzZWM0YTliZDY4YzZkOTFmOWFiYzgyNTU0YzRkZjg4ZjZhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zm
c2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29u
dGV4dC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKIFBBU1MgVGVzdCB0aGF0IGdldENv
bnRleHQgd2l0aCB1bi1zdXBwb3J0ZWQgc3RyaW5nIHRocm93cyBhIFR5cGVFcnJvci4gCiBGQUlM
IFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJl
Y3QgcmVzdWx0cyBBcmd1bWVudCAxICgnY29udGV4dFR5cGUnKSB0byBPZmZzY3JlZW5DYW52YXMu
Z2V0Q29udGV4dCBtdXN0IGJlIG9uZSBvZjogIjJkIiwgIndlYmdsIgotRkFJTCBUZXN0IHRoYXQg
Z2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxs
IHRoZSBzZWNvbmQgdGltZSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuCitQQVNT
IFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSBy
ZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1lIAogUEFTUyBUZXN0IHRoYXQgMmRjb250ZXh0LmNh
bnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBQQVNTIFRl
c3QgdGhhdCB3ZWJnbGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9m
ZnNjcmVlbkNhbnZhcyAKIEZBSUwgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCB3aXRoIGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBPZmZzY3JlZW5DYW52YXMgb3Bh
cXVlIGFzc2VydF9hcHByb3hfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAo
NSwgNSkgZXhwZWN0ZWQgMTI3ICsvLSAyIGJ1dCBnb3QgMjU1CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zm
c2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29u
dGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGYyMjRjZTc0ZWVhODc4Y2Y3NmExMzMzYmNh
ZTFiYWExMGZkNGY2NjcuLjM5ZmMyY2Y5YWFkZGU3ZjJkYjFiM2UyZTMzNjg5ZWQ3MDcxNzhjYTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
b2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0
Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcg
KzEsNyBAQAogCiBQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggdW4tc3VwcG9ydGVkIHN0
cmluZyB0aHJvd3MgYSBUeXBlRXJyb3IuIAotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRo
IHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQ2FuJ3QgZmluZCB2YXJp
YWJsZTogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJECi1GQUlMIFRlc3QgdGhhdCBn
ZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwg
dGhlIHNlY29uZCB0aW1lIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4KK0ZBSUwg
VGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVj
dCByZXN1bHRzIENhbid0IGZpbmQgdmFyaWFibGU6IFdlYkdMUmVuZGVyaW5nQ29udGV4dAorUEFT
UyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUg
cmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSAKIFBBU1MgVGVzdCB0aGF0IDJkY29udGV4dC5j
YW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAogUEFTUyBU
ZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBP
ZmZzY3JlZW5DYW52YXMgCiBGQUlMIFRlc3QgdGhhdCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQgd2l0aCBhbHBoYSBkaXNhYmxlZCBtYWtlcyB0aGUgT2Zmc2NyZWVuQ2FudmFzIG9w
YXF1ZSBhc3NlcnRfYXBwcm94X2VxdWFsczogR3JlZW4gY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQg
KDUsIDUpIGV4cGVjdGVkIDEyNyArLy0gMiBidXQgZ290IDI1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3Ro
ZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2Fu
dmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQu
dHh0CmluZGV4IGY0NTUwNzE3MmI3NmJhZjA2YWIwZTQ0ZWQxNWNlMzMwNmFkNDgxOGEuLjZjMTFj
OGRmNGI2NWE3OTAwYWRkYzc0NmFhOWEwZWU3Nzk0MTg2MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1j
YW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3Rl
ZC50eHQKQEAgLTIsMTEgKzIsMTEgQEAKIFBBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUg
d2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3
aGVuIHRoZXJlIGlzIG5vIGNvbnRleHQgYXR0YWNoZWQuIAogUEFTUyBWZXJpZnkgdGhhdCB3cml0
aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2Fu
dmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgYSAyZCBjb250ZXh0IGF0dGFjaGVkLiAKIFBBU1MgVmVy
aWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFu
IE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIGEgd2ViZ2wgY29udGV4dCBhdHRh
Y2hlZC4gCi1GQUlMIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBh
dHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0
aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhv
bGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBldmVuIHdoZW4gbm90IGNoYW5naW5nIHRo
ZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlLiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
JyBpcyB1bmRlZmluZWQpCitQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9y
IGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2Vw
dGlvbiAKK1BBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0
dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGV2ZW4g
d2hlbiBub3QgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuIAogUEFTUyBWZXJp
ZnkgdGhhdCByZXNpemluZyBhIDJkIGNvbnRleHQgcmVzZXRzIGl0cyBzdGF0ZS4gCiBQQVNTIFZl
cmlmeSB0aGF0IHNldHRpbmcgdGhlIHNpemUgb2YgYSAyZCBjb250ZXh0IHRvIHRoZSBzYW1lIHNp
emUgaXQgYWxyZWFkeSBoYWQgcmVzZXRzIGl0cyBzdGF0ZS4gCi1GQUlMIFZlcmlmeSB0aGF0IHJl
c2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgMmQgY29udGV4dCBwcm9wYWdhdGVzIHRo
ZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiBwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0
aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgd2ViZ2wgY29udGV4dCBwcm9w
YWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91
c2x5LiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3Bs
YWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlM
IFZlcmlmeSB0aGF0IGRyYXdJbWFnZSB1c2VzIHRoZSBzaXplIG9mIHRoZSBmcmFtZSBhcyB0aGUg
aW50aW5zaWMgc2l6ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcy4gcGxhY2Vob2xkZXIudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIu
dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBWZXJpZnkgdGhhdCByZXNpemluZyBh
biBPZmZzY3JlZW5DYW52YXMgd2l0aCBhIDJkIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNp
emUgdG8gaXRzIHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25vdXNseS4gCitQQVNTIFZlcmlm
eSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgd2ViZ2wgY29udGV4dCBw
cm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJv
bm91c2x5LiAKK1BBU1MgVmVyaWZ5IHRoYXQgZHJhd0ltYWdlIHVzZXMgdGhlIHNpemUgb2YgdGhl
IGZyYW1lIGFzIHRoZSBpbnRpbnNpYyBzaXplIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzLiAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9v
ZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFu
c2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBl
Y3RlZC50eHQKaW5kZXggNGY0MmU1MDc0MjgyODBhMmVhMTlmNzYzY2Y4Yzk2MTlhZTViYjMwNS4u
Mjk2MDQ4NWI3YjZhZDZmNzA2MmRlZjlmZTdiNzllNWNiNzRiODNiZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFz
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8u
b2Zmc2NyZWVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zm
c2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0CkBA
IC0xLDUgKzEsNSBAQAogCi1GQUlMIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJh
dGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQg
aGVpZ2h0IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAn
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZB
SUwgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0
aGF0IGhhcyBhbHJlYWR5IHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRocm93cyBhbiBleGNlcHRp
b24gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rp
b24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBU
ZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3Mg
YW4gZXhjZXB0aW9uIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
KCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5l
ZCkKK1BBU1MgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgCitQQVNT
IFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhh
dCBoYXMgYWxyZWFkeSB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0aHJvd3MgYW4gZXhjZXB0aW9u
IAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2lj
ZSB0aHJvd3MgYW4gZXhjZXB0aW9uIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5z
ZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQKaW5kZXggMmNkM2RiNGIyNzZk
YzFjMTFkMWVjZGIwNDhiM2I3OTA5M2VlZTBkYS4uMzNiODUzMmNiMmUwMDQxNGE2ZDU0YTZkYTc5
YWU3NmVhZjQ2NTYzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVu
LWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250
cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBU
ZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCB3aGVuIGl0IGlzIHRyYW5z
ZmVycmVkIHRvIGEgd29ya2VyIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zm
c2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVu
ZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9s
ZGVyIGNhbnZhcyB0aGF0IGlzIHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRvIGFuIE9mZnNjcmVl
bkNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMgaXMg
dHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicg
aXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9m
ZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBhbiBPZmZzY3Jl
ZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29y
cmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHdoZW4gaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIg
CitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52
YXMgdGhhdCBpcyB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0byBhbiBPZmZzY3JlZW5DYW52YXMg
dGhyb3dzIGFuIGV4Y2VwdGlvbiwgd2hlbiB0aGUgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVy
cmVkIHRvIGEgd29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVk
IE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397814</attachid>
            <date>2020-04-27 23:46:53 -0700</date>
            <delta_ts>2020-04-30 04:10:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200428074652.patch</filename>
            <type>text/plain</type>
            <size>39421</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU5YTMzZmI3MDg0OGYz
OGQ5MmUyZTZiMTlkYzJmZTEwZTZhNzY3ZC4uNDk5MTNjNTI1YTVlZWY4ZmNiNmMxOGUyMmEwYmE0
Y2Y3YzVhYzFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52
YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAyMC0wNC0yNyAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEs0XSBHZGtSR0JB
IGhhcyBmbG9hdCBtZW1iZXJzIGluc3RlYWQgb2YgZG91YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDBkYjUyNjhhZGVkZTBiZGYxMDU0MDE0ZTQ5MTdi
NDM5YjgyOGUwZjMuLjFiZTJjNmNhYjRmZjc5MDgxOGFkYjAxMDIxMTYzYTI4NzE4YjI5NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00OSw2ICs0OSw3
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZE9ic2VydmVyLmgiCkBAIC0xNzEsNyArMTcyLDcgQEAgYm9vbCBIVE1MQ2FudmFzRWxl
bWVudDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdAogCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1M
Q2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogewotICAgIGlmIChtX2Nv
bnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxl
ZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0
ciwgQXRvbVN0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVlLCBk
ZWZhdWx0SGVpZ2h0KSkpOwogICAgIHJldHVybiB7IH07CkBAIC0xNzksNyArMTgwLDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1
ZSkKIAogRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2ln
bmVkIHZhbHVlKQogewotICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9s
ZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09u
bHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRXaWR0aCkpKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNTQwLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiB7
Ci0gICAgaWYgKG1faWdub3JlUmVzZXQpCisgICAgaWYgKG1faWdub3JlUmVzZXQgfHwgaXNDb250
cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRJbWFn
ZUJ1ZmZlciA9IGhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpOwpAQCAtNzQyLDYgKzc0MywyNCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFJlZgogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUo
T0ZGU0NSRUVOX0NBTlZBUykKK0V4Y2VwdGlvbk9yPFJlZjxPZmZzY3JlZW5DYW52YXM+PiBIVE1M
Q2FudmFzRWxlbWVudDo6dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAobV9jb250ZXh0KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGF1dG8gY2FudmFzID0gT2Zm
c2NyZWVuQ2FudmFzOjpjcmVhdGUoY29udGV4dCwgKnRoaXMpOworICAgIG1fY29udGV4dCA9IG1h
a2VVbmlxdWU8UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0PigqdGhpcyk7CisKKyNpZiBVU0Uo
VEVYVFVSRV9NQVBQRVJfR0wpCisgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXll
ciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBjYW52YXMuCisgICAg
aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworI2VuZGlmCisKKyAgICByZXR1
cm4gY2FudmFzOworfQorI2VuZGlmCisKIFJlZlB0cjxJbWFnZURhdGE+IEhUTUxDYW52YXNFbGVt
ZW50OjpnZXRJbWFnZURhdGEoKQogewogI2lmIEVOQUJMRShXRUJHTCkKQEAgLTkxNiw4ICs5MzUs
MTcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAog
CiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eShzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyKQogeworICAgIEludFNpemUgb2xkU2l6
ZSA9IHNpemUoKTsKICAgICBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlciA9IHRydWU7CiAgICAgc2V0
SW1hZ2VCdWZmZXIoV1RGTW92ZShidWZmZXIpKTsKKworICAgIGlmIChpc0NvbnRyb2xsZWRCeU9m
ZnNjcmVlbigpICYmIG9sZFNpemUgIT0gc2l6ZSgpKSB7CisgICAgICAgIHNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIod2lkdGgo
KSkpOworICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhlaWdodEF0
dHIsIEF0b21TdHJpbmc6Om51bWJlcihoZWlnaHQoKSkpOworICAgICAgICBub3RpZnlPYnNlcnZl
cnNDYW52YXNSZXNpemVkKCk7CisgICAgICAgIGludmFsaWRhdGVTdHlsZUFuZFJlbmRlcmVyc0Zv
clN1YnRyZWUoKTsKKyAgICB9CisKICAgICBkaWREcmF3KEZsb2F0UmVjdChGbG9hdFBvaW50KCks
IHNpemUoKSkpOwogfQogCkBAIC05NzcsNCArMTAwNSw5IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCkKICNlbmRpZgogfQogCitib29sIEhUTUxDYW52
YXNFbGVtZW50Ojppc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDUwZTdjMmNkZWUxMDU4MmI2YTk3
Y2NkMmE3NzU2NzQ5MDhkZmYzOGMuLmI2MDFiN2VhNTQyYTM0ZmZhNDExMDZjYTllYmI5NjRlNjk0
MjE4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTUwLDYg
KzUwLDcgQEAgY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7CiBjbGFzcyBNZWRp
YVNhbXBsZTsKIGNsYXNzIE1lZGlhU3RyZWFtOworY2xhc3MgT2Zmc2NyZWVuQ2FudmFzOwogY2xh
c3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKIGNsYXNzIEdQVUNhbnZhc0NvbnRleHQ7CiBz
dHJ1Y3QgVW5jYWNoZWRTdHJpbmc7CkBAIC05Nyw2ICs5OCw5IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBFeGNlcHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKICAgICBXRUJDT1JFX0VYUE9S
VCBFeGNlcHRpb25PcjxVbmNhY2hlZFN0cmluZz4gdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHRvQmxvYihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVmPEJsb2JDYWxsYmFjaz4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpK
U1ZhbHVlIHF1YWxpdHkpOworI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorICAgIEV4Y2Vw
dGlvbk9yPFJlZjxPZmZzY3JlZW5DYW52YXM+PiB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisjZW5kaWYKIAogICAgIC8vIFVzZWQgZm9yIHJlbmRl
cmluZwogICAgIHZvaWQgZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKQEAgLTEyOSw2
ICsxMzMsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRN
YXhQaXhlbE1lbW9yeUZvclRlc3Rpbmcoc2l6ZV90KTsKIAorICAgIGJvb2wgaXNDb250cm9sbGVk
QnlPZmZzY3JlZW4oKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmlkbAppbmRleCA3MThhOWVhN2E0Yzk3MTVhMmU3ODA0Nzc1NTJjMmI1
ZjUxM2E5YTBhLi5hZTRmY2FhYzI2OWY2YmMzZjU0MGViZDFlNDdiNTg5MjdkYjNlZWVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbApAQCAtNTAsNiArNTAsNyBA
QCB0eXBlZGVmICgKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHRvRGF0YVVS
TChvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOwogICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB0
b0Jsb2IoQmxvYkNhbGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0
aW9uYWwgYW55IHF1YWxpdHkpOworICAgIFtDb25kaXRpb25hbD1PRkZTQ1JFRU5fQ0FOVkFTLCBD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gT2Zmc2Ny
ZWVuQ2FudmFzIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CiAKICAgICBbQ29uZGl0aW9u
YWw9TUVESUFfU1RSRUFNLCBDYWxsV2l0aD1Eb2N1bWVudCwgTWF5VGhyb3dFeGNlcHRpb24sIE5l
d09iamVjdF0gTWVkaWFTdHJlYW0gY2FwdHVyZVN0cmVhbShvcHRpb25hbCBkb3VibGUgZnJhbWVS
ZXF1ZXN0UmF0ZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCmlu
ZGV4IDYwNmE0ZDdjZTE1OGQyOGY1OTk3OTZlM2EzOTY2NWFmZjQ2YWQwN2YuLjBjOTY3YzU4NTdh
OTg4ODllYjk4YzEwMTAwYzI2ZjQzNjBmNjc0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNj
cmVlbkNhbnZhcy5jcHAKQEAgLTMxLDExICszMSwxNCBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlUG9v
bC5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2VC
aXRtYXAuaCIKKyNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJKU0Jsb2IuaCIKICNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0
cnkuaCIKICNpbmNsdWRlICJPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKKyNp
bmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC00NCwxMSArNDcsMTQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoT2Zmc2NyZWVuQ2FudmFz
KTsKIAotRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OkRldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUs
IGJvb2wgb3JpZ2luQ2xlYW4pCitEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZz
Y3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmIGJ1ZmZlciwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSwgYm9vbCBvcmlnaW5DbGVhbiwgSFRNTENhbnZhc0VsZW1lbnQqIHBsYWNl
aG9sZGVyQ2FudmFzKQogICAgIDogbV9idWZmZXIoV1RGTW92ZShidWZmZXIpKQogICAgICwgbV9z
aXplKHNpemUpCiAgICAgLCBtX29yaWdpbkNsZWFuKG9yaWdpbkNsZWFuKQorICAgICwgbV9wbGFj
ZWhvbGRlckNhbnZhcyhtYWtlV2Vha1B0cihwbGFjZWhvbGRlckNhbnZhcykpCiB7CisgICAgaWYg
KHBsYWNlaG9sZGVyQ2FudmFzKQorICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzID0gbWFrZVdl
YWtQdHIocGxhY2Vob2xkZXJDYW52YXMpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKQpAQCAtNTYsNiAr
NjIsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBEZXRhY2hlZE9mZnNjcmVlbkNh
bnZhczo6dGFrZUltYWdlQnVmZmVyKCkKICAgICByZXR1cm4gV1RGTW92ZShtX2J1ZmZlcik7CiB9
CiAKK1dlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0
YWtlUGxhY2Vob2xkZXJDYW52YXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9wbGFjZWhvbGRlckNhbnZhcywgbnVsbHB0cik7Cit9
CisKIFJlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQsIHdp
ZHRoLCBoZWlnaHQpKTsKQEAgLTYzLDE0ICs3NSwyNyBAQCBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBP
ZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1
bgogCiBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3Jl
ZW5DYW52YXM+JiYgZGV0YWNoZWRDYW52YXMpCiB7Ci0gICAgUmVmPE9mZnNjcmVlbkNhbnZhcz4g
Y2xvbmUgPSBhZG9wdFJlZigqbmV3IE9mZnNjcmVlbkNhbnZhcyhjb250ZXh0LCBkZXRhY2hlZENh
bnZhcy0+c2l6ZSgpLndpZHRoKCksIGRldGFjaGVkQ2FudmFzLT5zaXplKCkuaGVpZ2h0KCkpKTsK
KyAgICBhdXRvIGNsb25lID0gYWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwg
ZGV0YWNoZWRDYW52YXMtPnNpemUoKS53aWR0aCgpLCBkZXRhY2hlZENhbnZhcy0+c2l6ZSgpLmhl
aWdodCgpKSk7CisKICAgICBjbG9uZS0+c2V0SW1hZ2VCdWZmZXIoZGV0YWNoZWRDYW52YXMtPnRh
a2VJbWFnZUJ1ZmZlcigpKTsKICAgICBpZiAoIWRldGFjaGVkQ2FudmFzLT5vcmlnaW5DbGVhbigp
KQogICAgICAgICBjbG9uZS0+c2V0T3JpZ2luVGFpbnRlZCgpOwogCisgICAgY2FsbE9uTWFpblRo
cmVhZChbZGV0YWNoZWRDYW52YXMgPSBXVEZNb3ZlKGRldGFjaGVkQ2FudmFzKSwgb2Zmc2NyZWVu
Q2FudmFzID0gbWFrZVJlZihjbG9uZS5nZXQoKSldICgpIG11dGFibGUgeworICAgICAgICBvZmZz
Y3JlZW5DYW52YXMtPm1fcGxhY2Vob2xkZXJDYW52YXMgPSBkZXRhY2hlZENhbnZhcy0+dGFrZVBs
YWNlaG9sZGVyQ2FudmFzKCk7CisgICAgICAgIG9mZnNjcmVlbkNhbnZhcy0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbcmVsZWFzZU9mZnNjcmVlbkNhbnZhcyA9IFdURk1vdmUo
b2Zmc2NyZWVuQ2FudmFzKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7IH0pOworICAgIH0p
OworCiAgICAgcmV0dXJuIGNsb25lOwogfQogCitSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3Jl
ZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBIVE1MQ2Fu
dmFzRWxlbWVudCYgY2FudmFzKQoreworICAgIGF1dG8gb2Zmc2NyZWVuID0gYWRvcHRSZWYoKm5l
dyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwgY2FudmFzLndpZHRoKCksIGNhbnZhcy5oZWlnaHQo
KSkpOworICAgIG9mZnNjcmVlbi0+c2V0UGxhY2Vob2xkZXJDYW52YXMoY2FudmFzKTsKKyAgICBy
ZXR1cm4gb2Zmc2NyZWVuOworfQorCiBPZmZzY3JlZW5DYW52YXM6Ok9mZnNjcmVlbkNhbnZhcyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQg
aGVpZ2h0KQogICAgIDogQ2FudmFzQmFzZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKQogICAgICwg
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCkBAIC04MCw3ICsxMDUsNiBAQCBP
ZmZzY3JlZW5DYW52YXM6Ok9mZnNjcmVlbkNhbnZhcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCB1bnNpZ25lZCB3aWR0aAogT2Zmc2NyZWVuQ2FudmFzOjp+T2Zmc2NyZWVuQ2FudmFz
KCkKIHsKICAgICBub3RpZnlPYnNlcnZlcnNDYW52YXNEZXN0cm95ZWQoKTsKLQogICAgIG1fY29u
dGV4dCA9IG51bGxwdHI7IC8vIEVuc3VyZSB0aGlzIGdvZXMgYXdheSBiZWZvcmUgdGhlIEltYWdl
QnVmZmVyLgogICAgIHNldEltYWdlQnVmZmVyKG51bGxwdHIpOwogfQpAQCAtMTE5LDcgKzE0Myw3
IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRTaXplKGNvbnN0IEludFNpemUmIG5ld1NpemUp
CiAgICAgcmVzZXQoKTsKIH0KIAotRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4
dD4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRl
LCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpT
Qzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQorRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVu
UmVuZGVyaW5nQ29udGV4dD4+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xv
YmFsT2JqZWN0JiBzdGF0ZSwgUmVuZGVyaW5nQ29udGV4dFR5cGUgY29udGV4dFR5cGUsIFZlY3Rv
cjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKICAgICBpZiAobV9k
ZXRhY2hlZCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07
CkBAIC0xMjcsMjIgKzE1MSwyMiBAQCBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250
ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbAogICAgIGlmIChj
b250ZXh0VHlwZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6XzJkKSB7CiAgICAgICAgIGlmICht
X2NvbnRleHQpIHsKICAgICAgICAgICAgIGlmICghaXM8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEPigqbV9jb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICAgICAgICAgIHJl
dHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgUmVmUHRy
PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH0gfTsKICAgICAgICAgfQog
CiAgICAgICAgIG1fY29udGV4dCA9IG1ha2VVbmlxdWU8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEPigqdGhpcyk7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAgICAg
cmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyBudWxs
cHRyIH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKIAotICAg
ICAgICByZXR1cm4geyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7
ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQp
IH0gfTsKKyAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+
KCptX2NvbnRleHQpIH0gfSB9OwogICAgIH0KICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgaWYgKGNv
bnRleHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpXZWJnbCkgewogICAgICAgICBpZiAo
bV9jb250ZXh0KSB7Ci0gICAgICAgICAgICBpZiAoIWlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4o
Km1fY29udGV4dCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH07Ci0gICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdD
b250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0g
fTsKKyAgICAgICAgICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQp
KQorICAgICAgICAgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4
dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH0gfTsK
KyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKICAgICAgICAgfQogCiAg
ICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLnZtKCkpOwpAQCAt
MTUxLDEzICsxNzUsMTMgQEAgRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4g
T2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWwKIAogICAgICAgICBtX2Nv
bnRleHQgPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJpYnV0
ZXMsICJ3ZWJnbCIpOwogICAgICAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgICAgIHJldHVy
biB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgbnVsbHB0ciB9IH07CisgICAgICAg
ICAgICByZXR1cm4geyB7IFdURjo6bnVsbG9wdCB9IH07CiAKLSAgICAgICAgcmV0dXJuIHsgUmVm
UHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250
ZXh0PigqbV9jb250ZXh0KSB9IH07CisgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPFdlYkdMUmVu
ZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250
ZXh0KSB9IH0gfTsKICAgICB9CiAjZW5kaWYKIAotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKIH0K
IAogRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gT2Zmc2NyZWVuQ2FudmFzOjp0cmFu
c2ZlclRvSW1hZ2VCaXRtYXAoKQpAQCAtMjU5LDYgKzI4Myw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2Fu
dmFzOjpjb252ZXJ0VG9CbG9iKEltYWdlRW5jb2RlT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZl
cnJlZFByCiB2b2lkIE9mZnNjcmVlbkNhbnZhczo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiB7CiAgICAgY2xlYXJDb3BpZWRJbWFnZSgpOworICAgIHNjaGVkdWxlQ29tbWl0VG9QbGFj
ZWhvbGRlckNhbnZhcygpOwogICAgIG5vdGlmeU9ic2VydmVyc0NhbnZhc0NoYW5nZWQocmVjdCk7
CiB9CiAKQEAgLTMwMSw3ICszMjYsNzAgQEAgc3RkOjp1bmlxdWVfcHRyPERldGFjaGVkT2Zmc2Ny
ZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmRldGFjaCgpCiAKICAgICBtX2RldGFjaGVkID0g
dHJ1ZTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPih0
YWtlSW1hZ2VCdWZmZXIoKSwgc2l6ZSgpLCBvcmlnaW5DbGVhbigpKTsKKyAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4odGFrZUltYWdlQnVmZmVyKCksIHNpemUo
KSwgb3JpZ2luQ2xlYW4oKSwgbV9wbGFjZWhvbGRlckNhbnZhcy5nZXQoKSk7Cit9CisKK3ZvaWQg
T2Zmc2NyZWVuQ2FudmFzOjpzZXRQbGFjZWhvbGRlckNhbnZhcyhIVE1MQ2FudmFzRWxlbWVudCYg
Y2FudmFzKQoreworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIG1fcGxhY2Vob2xkZXJDYW52YXMgPSBtYWtlV2Vha1B0cihjYW52YXMpOwor
fQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6cHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKQorewor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhp
c10gKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb21taXRM
b2NrKTsKKworICAgICAgICBpZiAobV9wbGFjZWhvbGRlckNhbnZhcyAmJiBtX2hhc1BlbmRpbmdD
b21taXREYXRhKSB7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1
ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKG1fcGVuZGluZ0NvbW1pdERhdGEt
PnNpemUoKSksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOworICAgICAgICAgICAgYnVm
ZmVyLT5wdXRJbWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwg
Km1fcGVuZGluZ0NvbW1pdERhdGEsIEludFJlY3QoSW50UG9pbnQoKSwgbV9wZW5kaW5nQ29tbWl0
RGF0YS0+c2l6ZSgpKSk7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzLT5zZXRJbWFn
ZUJ1ZmZlckFuZE1hcmtEaXJ0eShXVEZNb3ZlKGJ1ZmZlcikpOworICAgICAgICAgICAgbV9oYXNQ
ZW5kaW5nQ29tbWl0RGF0YSA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbcmVsZWFzZVRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsgfSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgT2Zmc2NyZWVuQ2FudmFzOjpjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCkKK3sKKyAgICBh
dXRvKiBpbWFnZUJ1ZmZlciA9IGJ1ZmZlcigpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBUcmFuc2ZlciB0ZXh0dXJlIG92ZXIgaWYgd2Un
cmUgdXNpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICBpZiAobV9jb250ZXh0ICYmICht
X2NvbnRleHQtPmlzV2ViR0woKSB8fCBtX2NvbnRleHQtPmlzQWNjZWxlcmF0ZWQoKSkpCisgICAg
ICAgIG1fY29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKTsKKworICAgIGlm
IChpc01haW5UaHJlYWQoKSkgeworICAgICAgICBpZiAobV9wbGFjZWhvbGRlckNhbnZhcykgewor
ICAgICAgICAgICAgaWYgKGF1dG8gYnVmZmVyQ29weSA9IGltYWdlQnVmZmVyLT5jb3B5UmVjdFRv
QnVmZmVyKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgp
KSwgQ29sb3JTcGFjZTo6U1JHQiwgaW1hZ2VCdWZmZXItPmNvbnRleHQoKSkpCisgICAgICAgICAg
ICAgICAgbV9wbGFjZWhvbGRlckNhbnZhcy0+c2V0SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoV1RG
TW92ZShidWZmZXJDb3B5KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb21taXRMb2NrKTsKKworICAgIGJvb2wgc2hv
dWxkUHVzaEJ1ZmZlciA9ICFtX2hhc1BlbmRpbmdDb21taXREYXRhOworICAgIG1fcGVuZGluZ0Nv
bW1pdERhdGEgPSBpbWFnZUJ1ZmZlci0+Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRp
b246OlByZW11bHRpcGxpZWQsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2lj
YWxTaXplKCkpKTsKKyAgICBtX2hhc1BlbmRpbmdDb21taXREYXRhID0gdHJ1ZTsKKworICAgIGlm
IChzaG91bGRQdXNoQnVmZmVyKQorICAgICAgICBwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpOwor
fQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2Fu
dmFzKCkKK3sKKyAgICBpZiAoIW1faGFzU2NoZWR1bGVkQ29tbWl0KSB7CisgICAgICAgIGF1dG8m
IHNjcmlwdENvbnRleHQgPSAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAgICBtX2hh
c1NjaGVkdWxlZENvbW1pdCA9IHRydWU7CisgICAgICAgIHNjcmlwdENvbnRleHQucG9zdFRhc2so
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpc10gKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSB7CisgICAgICAgICAgICBtX2hhc1NjaGVkdWxlZENvbW1pdCA9IGZhbHNlOworICAg
ICAgICAgICAgY29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworICAgICAgICB9KTsKKyAgICB9
CiB9CiAKIENTU1ZhbHVlUG9vbCYgT2Zmc2NyZWVuQ2FudmFzOjpjc3NWYWx1ZVBvb2woKQpAQCAt
MzUxLDYgKzQzOSw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpyZXNldCgpCiAgICAgY2xlYXJD
b3BpZWRJbWFnZSgpOwogCiAgICAgbm90aWZ5T2JzZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAg
IHNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9PZmZzY3JlZW5DYW52YXMuaAppbmRleCAzZTVlMzBhNTc2ZTMxYTkzMmE2ZjE0NmE5N2Vi
ZjA4ZGU5YTI1ZjM5Li5lYjkyMzA2ZGM1YjUwYjJhM2M5NGE5YzU1ODJhMDc5N2Q2Y2RhOGQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQs
NyArNDUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250
ZXh0OwogY2xhc3MgQ1NTVmFsdWVQb29sOwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3Mg
SFRNTENhbnZhc0VsZW1lbnQ7CiBjbGFzcyBJbWFnZUJpdG1hcDsKK2NsYXNzIEltYWdlRGF0YTsK
IGNsYXNzIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDsKIGNsYXNzIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDsKIApAQCAtNTgsMTYgKzYxLDE4IEBAIGNsYXNzIERldGFjaGVkT2Zmc2Ny
ZWVuQ2FudmFzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXRhY2hlZE9mZnNjcmVlbkNh
bnZhcyk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRGV0YWNo
ZWRPZmZzY3JlZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmLCBjb25zdCBJ
bnRTaXplJiwgYm9vbCBvcmlnaW5DbGVhbik7CisgICAgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMo
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmLCBjb25zdCBJbnRTaXplJiwgYm9vbCBvcmln
aW5DbGVhbiwgSFRNTENhbnZhc0VsZW1lbnQqIHBsYWNlaG9sZGVyQ2FudmFzKTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gdGFrZUltYWdlQnVmZmVyKCk7CiAgICAgY29uc3Qg
SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogICAgIGJvb2wgb3JpZ2lu
Q2xlYW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbkNsZWFuOyB9CisgICAgV2Vha1B0cjxIVE1M
Q2FudmFzRWxlbWVudD4gdGFrZVBsYWNlaG9sZGVyQ2FudmFzKCk7CiAKIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBtX2J1ZmZlcjsKICAgICBJbnRTaXplIG1fc2l6
ZTsKICAgICBib29sIG1fb3JpZ2luQ2xlYW47CisgICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVu
dD4gbV9wbGFjZWhvbGRlckNhbnZhczsKIH07CiAKIGNsYXNzIE9mZnNjcmVlbkNhbnZhcyBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPE9mZnNjcmVlbkNhbnZhcz4sIHB1YmxpYyBDYW52YXNCYXNl
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlciB7CkBAIC04Niw2ICs5MSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBS
ZWY8T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHVuc2ln
bmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpOwogICAgIHN0YXRpYyBSZWY8T2Zmc2NyZWVuQ2Fu
dmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5pcXVlX3B0cjxEZXRh
Y2hlZE9mZnNjcmVlbkNhbnZhcz4mJik7CisgICAgc3RhdGljIFJlZjxPZmZzY3JlZW5DYW52YXM+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSFRNTENhbnZhc0VsZW1lbnQmKTsKICAg
ICB2aXJ0dWFsIH5PZmZzY3JlZW5DYW52YXMoKTsKIAogICAgIHVuc2lnbmVkIHdpZHRoKCkgY29u
c3QgZmluYWw7CkBAIC05NSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBDYW52YXNSZW5kZXJp
bmdDb250ZXh0KiByZW5kZXJpbmdDb250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb250
ZXh0LmdldCgpOyB9CiAKLSAgICBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0
PiBnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZW5kZXJpbmdDb250ZXh0VHlwZSwg
VmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKTsKKyAgICBFeGNl
cHRpb25PcjxPcHRpb25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0Pj4gZ2V0Q29udGV4dChK
U0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVuZGVyaW5nQ29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0
cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRy
PEltYWdlQml0bWFwPj4gdHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CiAgICAgdm9pZCBjb252ZXJ0
VG9CbG9iKEltYWdlRW5jb2RlT3B0aW9ucyYmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIApA
QCAtMTA5LDYgKzExNSw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkRldGFjaCgpIGNvbnN0Owog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4gZGV0YWNoKCk7CiAK
KyAgICB2b2lkIGNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKKwogICAgIENTU1ZhbHVlUG9v
bCYgY3NzVmFsdWVQb29sKCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CkBAIC0xMzgs
NiArMTQ2LDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNsZWFyQ29waWVkSW1hZ2UoKSBjb25z
dDsKIAorICAgIHZvaWQgc2V0UGxhY2Vob2xkZXJDYW52YXMoSFRNTENhbnZhc0VsZW1lbnQmKTsK
KyAgICB2b2lkIHB1c2hCdWZmZXJUb1BsYWNlaG9sZGVyKCk7CisgICAgdm9pZCBzY2hlZHVsZUNv
bW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKTsKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDYW52YXNS
ZW5kZXJpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAKICAgICAvLyBtX2hhc0NyZWF0ZWRJbWFnZUJ1
ZmZlciBtZWFucyB3ZSB0cmllZCB0byBtYWxsb2MgdGhlIGJ1ZmZlci4gV2UgZGlkbid0IG5lY2Vz
c2FyaWx5IGdldCBpdC4KQEAgLTE0Niw2ICsxNTgsMTMgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
ZGV0YWNoZWQgeyBmYWxzZSB9OwogCiAgICAgbXV0YWJsZSBSZWZQdHI8SW1hZ2U+IG1fY29waWVk
SW1hZ2U7CisKKyAgICBib29sIG1faGFzU2NoZWR1bGVkQ29tbWl0IHsgZmFsc2UgfTsKKyAgICBX
ZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiBtX3BsYWNlaG9sZGVyQ2FudmFzOworCisgICAgbXV0
YWJsZSBMb2NrIG1fY29tbWl0TG9jazsKKyAgICBib29sIG1faGFzUGVuZGluZ0NvbW1pdERhdGEg
eyBmYWxzZSB9OworICAgIFJlZlB0cjxJbWFnZURhdGE+IG1fcGVuZGluZ0NvbW1pdERhdGE7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA4NmQ3ODRhMzUxZDU4
NGNlNmVmM2E2OTkyZTdlYzIwNmU2OGQ5NjAwLi4wYjlhMDQ0MWMxNmJjMzgxYmY2ODcwNmU3MjIz
MGJiNTQ2M2FlZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTQ4LDYg
KzQ4LDExIEBAIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6T2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEKENhbnZhc0Jhc2UmCiAKIE9mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6fk9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCgpID0gZGVm
YXVsdDsKIAordm9pZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNvbW1pdCgp
Cit7CisgICAgZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzPihjYW52YXNCYXNlKCkpLmNvbW1pdFRv
UGxhY2Vob2xkZXJDYW52YXMoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKaW5kZXggY2NiMTZlOTJjZDJiZDA0Y2E1Njhi
Y2Y2MTYzMjc5MmU2OTQ5MzNlMC4uZWU5MjlhZjJiMjlkYWU4MjYzZGUxZGFmNjBkZDE2NDU0MjU3
ZTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKQEAgLTQyLDYgKzQyLDggQEAgcHVi
bGljOgogICAgIGJvb2wgaXNPZmZzY3JlZW4yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAogICAgIE9mZnNjcmVlbkNhbnZhcyYgY2FudmFzKCkgY29uc3QgeyByZXR1cm4gZG93
bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzPihjYW52YXNCYXNlKCkpOyB9CisKKyAgICB2b2lkIGNvbW1p
dCgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5pZGwKaW5kZXggMDRlYzZhNzUxOWIxNGE3NWExMjU2NGY1ZTlkZWI5MTBlYzhiZjEzOS4u
ZDdmZWM4Nzk5MzY5MDQ0YmRhNzJkZTBlYjVjNTNkNjM3YWUwMjcwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsCkBAIC0yNywxNCArMjcsMTMgQEAKICAgICBDdXN0b21Jc1JlYWNo
YWJsZSwKICAgICBFbmFibGVkQXRSdW50aW1lPU9mZnNjcmVlbkNhbnZhcywKICAgICBDb25kaXRp
b25hbD1PRkZTQ1JFRU5fQ0FOVkFTLAotICAgIEV4cG9zZWQ9KFdpbmRvdyksIC8vIEZJWE1FOiBP
ZmZzY3JlZW5DYW52YXMgLSBzaG91bGQgYmUgV2luZG93LFdvcmtlcgorICAgIEV4cG9zZWQ9KFdp
bmRvdyxXb3JrZXIpLAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgIEpTQ3VzdG9tTWFy
a0Z1bmN0aW9uLAogICAgIC8vIENhbGxUcmFjaW5nQ2FsbGJhY2s9cmVjb3JkQ2FudmFzQWN0aW9u
LCAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgogXSBpbnRlcmZhY2UgT2Zmc2NyZWVuQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgT2Zmc2NyZWVuQ2Fu
dmFzIGNhbnZhczsKLSAgICAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgotICAgIC8vIHZvaWQg
Y29tbWl0KCk7CisgICAgdm9pZCBjb21taXQoKTsKIAogICAgIC8vIEluc3BlY3Rvci1vbmx5Lgog
ICAgIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52YXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAw
OTJjNGFlZjYwYTU1MTNmNDc2YzdkNzE0MzNlYmU3MWFmYTc4MWQ0Li4xZWM3YTI0ZWRmNDQ1MjEx
YmJiYTk5NDJlODE0NmJiMWU3ZjY4NGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI2LDYg
KzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmgiCiAKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKworI2luY2x1
ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzcsNCArNDEsMTQgQEAgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0OjpQbGFjZWhvbGRl
clJlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYgY2FudmFzKQogewogfQogCitIVE1MQ2FudmFz
RWxlbWVudCogUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0OjpjYW52YXMoKSBjb25zdAorewor
ICAgIGF1dG8mIGJhc2UgPSBjYW52YXNCYXNlKCk7CisgICAgaWYgKCFpczxIVE1MQ2FudmFzRWxl
bWVudD4oYmFzZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiAmZG93bmNh
c3Q8SFRNTENhbnZhc0VsZW1lbnQ+KGJhc2UpOwogfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQuaAppbmRleCBjMzQ4ZTUxODk1MmNiOWQ0MTVjNmJkMTc5NWYyMTZkY2IxNjVkMjU5Li42NDUw
OTE0NTlkZDAxY2MyYTc5NzdkYzAwM2I0NTI2NWRlNWJhN2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaApA
QCAtMjUsMTUgKzI1LDIxIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKE9GRlNDUkVF
Tl9DQU5WQVMpCisKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgT2Zmc2NyZWVuQ2FudmFzOworCiBjbGFzcyBQbGFjZWhv
bGRlclJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQpOwogcHVibGljOgogICAgIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNl
Jik7CiAKKyAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzKCkgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgYm9vbCBpc1BsYWNlaG9sZGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQog
fTsKQEAgLTQxLDMgKzQ3LDUgQEAgcHJpdmF0ZToKIH0KIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19DQU5WQVNSRU5ERVJJTkdDT05URVhUKFdlYkNvcmU6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dCwgaXNQbGFjZWhvbGRlcigpKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IDFjZTU2Y2Q0NmQ2ODlkMWQwNGYyOTJjODRiZTIxYzA4MjBmNTE1NWQuLjc5NjM4
MTRhODNiMTYwMDUwNWY3MjMyMzYyNWM4NWZhY2IyOGZiZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAyLTEzICBDaHJpcyBMb3JkICA8Y2xv
cmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY29tbWl0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI3OTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5jb21taXQudy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNv
bnRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3Jl
ZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0
Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNj
cmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52
YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50
by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9v
ZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFu
c2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA0LTI2ICBB
bGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBJbnRlcm5h
bEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZSBzaG91bGQgdXNlIG5ld1RhcmdldCdz
IGdsb2JhbE9iamVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0CmluZGV4IDZmMWM3MDUwZTVlODI4
YzNmMzIzZjI5NWZiMWQyYTRmZWM4YzAwN2MuLmIzYjM5YTdhOTFmYzBhYzg1NTdhOWEyOGMyZWJi
NjI0YjVlNDc3MTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw1IEBACitD
T05TT0xFIE1FU1NBR0U6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRo
ZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0ZWQgMjU1IGJ1dCBnb3QgMAogCi1GQUlMIFRlc3QgdGhh
dCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRv
IGl0cyBwbGFjZWhvbGRlci4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4g
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5k
ZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBjb21taXQgb24gYW4gT2Zmc2NyZWVuQ2Fu
dmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVkIGZyb20gYSBIVE1MQ2FudmFzRWxlbWVudCBpcyBh
IG5vb3AuIGN0eC5jb21taXQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnY3R4LmNvbW1pdCgpJywg
J2N0eC5jb21taXQnIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2Ny
ZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVy
LiAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNjcmVlbkNhbnZhcyB0
aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1lbnQgaXMgYSBub29w
LiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5jb21taXQudy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dAppbmRleCA0MzQzMzJjZTUxYWJmZTM3MTJk
MGUyNDk1OGE4MDUyODFhNjA3MDc0Li5jNDIxOGVjYWMyNzNkMDU0N2Y1ZTQ5YzNkMTIzZmRhZjgz
ZjNlYWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAot
RkFJTCBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0
cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2Fu
dmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVyLiAKIFBB
U1MgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlz
IG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1lbnQgdGhyb3dzIGFuIGV4Y2Vw
dGlvbiBpbiBhIHdvcmtlci4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4
IGJkOWFhMGUxNjc3ZTk0OTQ4MGIyMjMzMTIyMzhmNDcwOTllZjEzNzcuLmM1N2EyOTNlYzRhOWJk
NjhjNmQ5MWY5YWJjODI1NTRjNGRmODhmNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFz
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVk
LnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHVu
LXN1cHBvcnRlZCBzdHJpbmcgdGhyb3dzIGEgVHlwZUVycm9yLiAKIEZBSUwgVGVzdCB0aGF0IGdl
dENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRzIEFy
Z3VtZW50IDEgKCdjb250ZXh0VHlwZScpIHRvIE9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0IG11
c3QgYmUgb25lIG9mOiAiMmQiLCAid2ViZ2wiCi1GQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3
aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0
aW1lIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4KK1BBU1MgVGVzdCB0aGF0IGdl
dENvbnRleHQgdHdpY2Ugd2l0aCBkaWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0
aGUgc2Vjb25kIHRpbWUgCiBQQVNTIFRlc3QgdGhhdCAyZGNvbnRleHQuY2FudmFzIHNob3VsZCBy
ZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKIFBBU1MgVGVzdCB0aGF0IHdlYmds
Y29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFz
IAogRkFJTCBUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHdpdGgg
YWxwaGEgZGlzYWJsZWQgbWFrZXMgdGhlIE9mZnNjcmVlbkNhbnZhcyBvcGFxdWUgYXNzZXJ0X2Fw
cHJveF9lcXVhbHM6IEdyZWVuIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCA1KSBleHBlY3Rl
ZCAxMjcgKy8tIDIgYnV0IGdvdCAyNTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNh
bnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFz
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci1l
eHBlY3RlZC50eHQKaW5kZXggZjIyNGNlNzRlZWE4NzhjZjc2YTEzMzNiY2FlMWJhYTEwZmQ0ZjY2
Ny4uMzlmYzJjZjlhYWRkZTdmMmRiMWIzZTJlMzM2ODllZDcwNzE3OGNhMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2Fu
dmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKIFBB
U1MgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCB1bi1zdXBwb3J0ZWQgc3RyaW5nIHRocm93cyBh
IFR5cGVFcnJvci4gCi1GQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0
cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBPZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQKLUZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgdHdp
Y2Ugd2l0aCBkaWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRp
bWUgVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorRkFJTCBUZXN0IHRoYXQgZ2V0
Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQ2Fu
J3QgZmluZCB2YXJpYWJsZTogV2ViR0xSZW5kZXJpbmdDb250ZXh0CitQQVNTIFRlc3QgdGhhdCBn
ZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwg
dGhlIHNlY29uZCB0aW1lIAogUEFTUyBUZXN0IHRoYXQgMmRjb250ZXh0LmNhbnZhcyBzaG91bGQg
cmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBQQVNTIFRlc3QgdGhhdCB3ZWJn
bGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZh
cyAKIEZBSUwgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB3aXRo
IGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBPZmZzY3JlZW5DYW52YXMgb3BhcXVlIGFzc2VydF9h
cHByb3hfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0
ZWQgMTI3ICsvLSAyIGJ1dCBnb3QgMjU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQKaW5kZXggZjQ1
NTA3MTcyYjc2YmFmMDZhYjBlNDRlZDE1Y2UzMzA2YWQ0ODE4YS4uNmMxMWM4ZGY0YjY1YTc5MDBh
ZGRjNzQ2YWE5YTBlZTc3OTQxODYxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dApAQCAtMiwx
MSArMiwxMSBAQAogUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVp
Z2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMg
bm8gY29udGV4dCBhdHRhY2hlZC4gCiBQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdp
ZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hl
biB0aGVyZSBpcyBhIDJkIGNvbnRleHQgYXR0YWNoZWQuIAogUEFTUyBWZXJpZnkgdGhhdCB3cml0
aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2Fu
dmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgYSB3ZWJnbCBjb250ZXh0IGF0dGFjaGVkLiAKLUZBSUwg
VmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBh
IHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIHBsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVmVyaWZ5IHRoYXQgd3JpdGluZyB0
byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0
aHJvd3MgYW4gZXhjZXB0aW9uIGV2ZW4gd2hlbiBub3QgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRo
ZSBhdHRyaWJ1dGUuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
KCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5l
ZCkKK1BBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJp
YnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIAorUEFTUyBW
ZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEg
cGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gZXZlbiB3aGVuIG5vdCBjaGFu
Z2luZyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4gCiBQQVNTIFZlcmlmeSB0aGF0IHJlc2l6
aW5nIGEgMmQgY29udGV4dCByZXNldHMgaXRzIHN0YXRlLiAKIFBBU1MgVmVyaWZ5IHRoYXQgc2V0
dGluZyB0aGUgc2l6ZSBvZiBhIDJkIGNvbnRleHQgdG8gdGhlIHNhbWUgc2l6ZSBpdCBhbHJlYWR5
IGhhZCByZXNldHMgaXRzIHN0YXRlLiAKLUZBSUwgVmVyaWZ5IHRoYXQgcmVzaXppbmcgYW4gT2Zm
c2NyZWVuQ2FudmFzIHdpdGggYSAyZCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5ldyBzaXplIHRv
IGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHkuIHBsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVmVyaWZ5IHRoYXQgcmVzaXppbmcg
YW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSB3ZWJnbCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5l
dyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHkuIHBsYWNlaG9s
ZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3Bs
YWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVmVyaWZ5IHRoYXQg
ZHJhd0ltYWdlIHVzZXMgdGhlIHNpemUgb2YgdGhlIGZyYW1lIGFzIHRoZSBpbnRpbnNpYyBzaXpl
IG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzLiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
JyBpcyB1bmRlZmluZWQpCitQQVNTIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNh
bnZhcyB3aXRoIGEgMmQgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxh
Y2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiAKK1BBU1MgVmVyaWZ5IHRoYXQgcmVzaXpp
bmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSB3ZWJnbCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhl
IG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHkuIAorUEFT
UyBWZXJpZnkgdGhhdCBkcmF3SW1hZ2UgdXNlcyB0aGUgc2l6ZSBvZiB0aGUgZnJhbWUgYXMgdGhl
IGludGluc2ljIHNpemUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMuIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52
YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50
by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dAppbmRl
eCA0ZjQyZTUwNzQyODI4MGEyZWExOWY3NjNjZjhjOTYxOWFlNWJiMzA1Li4yOTYwNDg1YjdiNmFk
NmY3MDYyZGVmOWZlN2I3OWU1Y2I3NGI4M2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMu
dHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBA
CiAKLUZBSUwgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgcGxhY2Vo
b2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQg
Y2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRoYXQgaGFzIGFscmVh
ZHkgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdGhyb3dzIGFuIGV4Y2VwdGlvbiBwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxs
aW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBleGNlcHRpb24g
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBUZXN0
IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCAKK1BBU1MgVGVzdCB0aGF0IGNh
bGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGhhcyBhbHJlYWR5
IHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRocm93cyBhbiBleGNlcHRpb24gCitQQVNTIFRlc3Qg
dGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBl
eGNlcHRpb24gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZh
cy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRv
Lm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dAppbmRleCAyY2QzZGI0YjI3NmRjMWMxMWQxZWNkYjA0
OGIzYjc5MDkzZWVlMGRhLi4zM2I4NTMyY2IyZTAwNDE0YTZkNTRhNmRhNzlhZTc2ZWFmNDY1NjNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRy
YW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2Ny
ZWVuLnctZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1GQUlMIFRlc3QgdGhhdCBhbiBP
ZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdl
dHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHdoZW4gaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSB3
b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdw
bGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJ
TCBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRo
YXQgaXMgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdG8gYW4gT2Zmc2NyZWVuQ2FudmFzIHRocm93
cyBhbiBleGNlcHRpb24sIHdoZW4gdGhlIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0
byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigp
JywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQp
Ci1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNl
IHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gaXRzIGFzc29jaWF0ZWQgT2Zmc2NyZWVuQ2FudmFz
IGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5l
cmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFu
ZCBoZWlnaHQgd2hlbiBpdCBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciAKK1BBU1MgVGVzdCB0
aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGlzIHRy
YW5zZmVycmVkIGl0cyBjb250cm9sIHRvIGFuIE9mZnNjcmVlbkNhbnZhcyB0aHJvd3MgYW4gZXhj
ZXB0aW9uLCB3aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3Jr
ZXIgCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3
aWNlIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gaXRzIGFzc29jaWF0ZWQgT2Zmc2NyZWVuQ2Fu
dmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398046</attachid>
            <date>2020-04-30 04:10:42 -0700</date>
            <delta_ts>2020-04-30 07:50:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200430121041.patch</filename>
            <type>text/plain</type>
            <size>39029</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU5YTMzZmI3MDg0OGYz
OGQ5MmUyZTZiMTlkYzJmZTEwZTZhNzY3ZC4uNDk5MTNjNTI1YTVlZWY4ZmNiNmMxOGUyMmEwYmE0
Y2Y3YzVhYzFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52
YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAyMC0wNC0yNyAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEs0XSBHZGtSR0JB
IGhhcyBmbG9hdCBtZW1iZXJzIGluc3RlYWQgb2YgZG91YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDBkYjUyNjhhZGVkZTBiZGYxMDU0MDE0ZTQ5MTdi
NDM5YjgyOGUwZjMuLmVlNmNmYjFkYTc3Njg3YTg3MjUyNmMxYjIxNThiNTAyNmM3ZGE5NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00OSw2ICs0OSw3
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZE9ic2VydmVyLmgiCkBAIC0xNzEsNyArMTcyLDcgQEAgYm9vbCBIVE1MQ2FudmFzRWxl
bWVudDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdAogCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1M
Q2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogewotICAgIGlmIChtX2Nv
bnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxl
ZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0
ciwgQXRvbVN0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVlLCBk
ZWZhdWx0SGVpZ2h0KSkpOwogICAgIHJldHVybiB7IH07CkBAIC0xNzksNyArMTgwLDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1
ZSkKIAogRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2ln
bmVkIHZhbHVlKQogewotICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9s
ZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09u
bHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRXaWR0aCkpKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNTQwLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiB7
Ci0gICAgaWYgKG1faWdub3JlUmVzZXQpCisgICAgaWYgKG1faWdub3JlUmVzZXQgfHwgaXNDb250
cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRJbWFn
ZUJ1ZmZlciA9IGhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpOwpAQCAtNzQyLDYgKzc0MywyNCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFJlZgogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUo
T0ZGU0NSRUVOX0NBTlZBUykKK0V4Y2VwdGlvbk9yPFJlZjxPZmZzY3JlZW5DYW52YXM+PiBIVE1M
Q2FudmFzRWxlbWVudDo6dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAobV9jb250ZXh0KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGF1dG8gY2FudmFzID0gT2Zm
c2NyZWVuQ2FudmFzOjpjcmVhdGUoY29udGV4dCwgKnRoaXMpOworICAgIG1fY29udGV4dCA9IG1h
a2VVbmlxdWU8UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0PigqdGhpcyk7CisKKyNpZiBVU0Uo
VEVYVFVSRV9NQVBQRVJfR0wpCisgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXll
ciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBjYW52YXMuCisgICAg
aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworI2VuZGlmCisKKyAgICByZXR1
cm4gY2FudmFzOworfQorI2VuZGlmCisKIFJlZlB0cjxJbWFnZURhdGE+IEhUTUxDYW52YXNFbGVt
ZW50OjpnZXRJbWFnZURhdGEoKQogewogI2lmIEVOQUJMRShXRUJHTCkKQEAgLTkxNiw4ICs5MzUs
MjQgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAog
CiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eShzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyKQogeworICAgIEludFNpemUgb2xkU2l6
ZSA9IHNpemUoKTsKICAgICBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlciA9IHRydWU7CiAgICAgc2V0
SW1hZ2VCdWZmZXIoV1RGTW92ZShidWZmZXIpKTsKKworICAgIGlmIChpc0NvbnRyb2xsZWRCeU9m
ZnNjcmVlbigpICYmIG9sZFNpemUgIT0gc2l6ZSgpKSB7CisgICAgICAgIHNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIod2lkdGgo
KSkpOworICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhlaWdodEF0
dHIsIEF0b21TdHJpbmc6Om51bWJlcihoZWlnaHQoKSkpOworCisgICAgICAgIGF1dG8gcmVuZGVy
ZXIgPSB0aGlzLT5yZW5kZXJlcigpOworICAgICAgICBpZiAoaXM8UmVuZGVySFRNTENhbnZhcz4o
cmVuZGVyZXIpKSB7CisgICAgICAgICAgICBhdXRvJiBjYW52YXNSZW5kZXJlciA9IGRvd25jYXN0
PFJlbmRlckhUTUxDYW52YXM+KCpyZW5kZXJlcik7CisgICAgICAgICAgICBjYW52YXNSZW5kZXJl
ci5jYW52YXNTaXplQ2hhbmdlZCgpOworICAgICAgICAgICAgY2FudmFzUmVuZGVyZXIuY29udGVu
dENoYW5nZWQoQ2FudmFzQ2hhbmdlZCk7CisgICAgICAgIH0KKworICAgICAgICBub3RpZnlPYnNl
cnZlcnNDYW52YXNSZXNpemVkKCk7CisgICAgfQorCiAgICAgZGlkRHJhdyhGbG9hdFJlY3QoRmxv
YXRQb2ludCgpLCBzaXplKCkpKTsKIH0KIApAQCAtOTc3LDQgKzEwMTIsOSBAQCB2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSgpCiAjZW5kaWYKIH0KIAorYm9v
bCBIVE1MQ2FudmFzRWxlbWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSBjb25zdAorewor
ICAgIHJldHVybiBtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA1MGU3YzJjZGVl
MTA1ODJiNmE5N2NjZDJhNzc1Njc0OTA4ZGZmMzhjLi5iNjAxYjdlYTU0MmEzNGZmYTQxMTA2Y2E5
ZWJiOTY0ZTY5NDIxODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgSW1hZ2VEYXRhOwog
Y2xhc3MgTWVkaWFTYW1wbGU7CiBjbGFzcyBNZWRpYVN0cmVhbTsKK2NsYXNzIE9mZnNjcmVlbkNh
bnZhczsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiBjbGFzcyBHUFVDYW52YXND
b250ZXh0Owogc3RydWN0IFVuY2FjaGVkU3RyaW5nOwpAQCAtOTcsNiArOTgsOSBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVS
TChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VW5jYWNoZWRTdHJpbmc+IHRvRGF0YVVSTChjb25zdCBT
dHJpbmcmIG1pbWVUeXBlKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB0b0Jsb2IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFJlZjxCbG9iQ2FsbGJhY2s+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIEpTQzo6SlNWYWx1ZSBxdWFsaXR5KTsKKyNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykK
KyAgICBFeGNlcHRpb25PcjxSZWY8T2Zmc2NyZWVuQ2FudmFzPj4gdHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworI2VuZGlmCiAKICAgICAvLyBVc2Vk
IGZvciByZW5kZXJpbmcKICAgICB2b2lkIGRpZERyYXcoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7
CkBAIC0xMjksNiArMTMzLDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHZvaWQgc2V0TWF4UGl4ZWxNZW1vcnlGb3JUZXN0aW5nKHNpemVfdCk7CiAKKyAgICBib29sIGlz
Q29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFRNTENhbnZh
c0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKaW5kZXggNzE4YTllYTdhNGM5NzE1YTJlNzgw
NDc3NTUyYzJiNWY1MTNhOWEwYS4uYWU0ZmNhYWMyNjlmNmJjM2Y1NDBlYmQxZTQ3YjU4OTI3ZGIz
ZWVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKQEAgLTUw
LDYgKzUwLDcgQEAgdHlwZWRlZiAoCiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0cmlu
ZyB0b0RhdGFVUkwob3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5
KTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRp
b25dIHZvaWQgdG9CbG9iKEJsb2JDYWxsYmFjayBjYWxsYmFjaywgb3B0aW9uYWwgRE9NU3RyaW5n
IHR5cGUsIG9wdGlvbmFsIGFueSBxdWFsaXR5KTsKKyAgICBbQ29uZGl0aW9uYWw9T0ZGU0NSRUVO
X0NBTlZBUywgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRp
b25dIE9mZnNjcmVlbkNhbnZhcyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOwogCiAgICAg
W0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwgQ2FsbFdpdGg9RG9jdW1lbnQsIE1heVRocm93RXhj
ZXB0aW9uLCBOZXdPYmplY3RdIE1lZGlhU3RyZWFtIGNhcHR1cmVTdHJlYW0ob3B0aW9uYWwgZG91
YmxlIGZyYW1lUmVxdWVzdFJhdGUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2Fu
dmFzLmNwcAppbmRleCA2MDZhNGQ3Y2UxNThkMjhmNTk5Nzk2ZTNhMzk2NjVhZmY0NmFkMDdmLi5m
NDc5ODc0YjEzNGM5MDU1NWExZWRmNjFhN2VmMzhmMzY4YzBkY2Q4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBAIC0zMSwxMSArMzEsMTQgQEAKICNpbmNsdWRlICJD
U1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1
ZGUgIkltYWdlQml0bWFwLmgiCisjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSlNC
bG9iLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgiCisjaW5jbHVkZSAiUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUu
aCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAtNTYsNiArNTksMTIgQEAg
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6dGFr
ZUltYWdlQnVmZmVyKCkKICAgICByZXR1cm4gV1RGTW92ZShtX2J1ZmZlcik7CiB9CiAKK1dlYWtQ
dHI8SFRNTENhbnZhc0VsZW1lbnQ+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0YWtlUGxhY2Vo
b2xkZXJDYW52YXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgcmV0dXJu
IHN0ZDo6ZXhjaGFuZ2UobV9wbGFjZWhvbGRlckNhbnZhcywgbnVsbHB0cik7Cit9CisKIFJlZjxP
ZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgT2Zmc2NyZWVuQ2FudmFzKGNvbnRleHQsIHdpZHRoLCBoZWln
aHQpKTsKQEAgLTYzLDE0ICs3MiwyNyBAQCBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5D
YW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1bgogCiBSZWY8
T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+
JiYgZGV0YWNoZWRDYW52YXMpCiB7Ci0gICAgUmVmPE9mZnNjcmVlbkNhbnZhcz4gY2xvbmUgPSBh
ZG9wdFJlZigqbmV3IE9mZnNjcmVlbkNhbnZhcyhjb250ZXh0LCBkZXRhY2hlZENhbnZhcy0+c2l6
ZSgpLndpZHRoKCksIGRldGFjaGVkQ2FudmFzLT5zaXplKCkuaGVpZ2h0KCkpKTsKKyAgICBhdXRv
IGNsb25lID0gYWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwgZGV0YWNoZWRD
YW52YXMtPnNpemUoKS53aWR0aCgpLCBkZXRhY2hlZENhbnZhcy0+c2l6ZSgpLmhlaWdodCgpKSk7
CisKICAgICBjbG9uZS0+c2V0SW1hZ2VCdWZmZXIoZGV0YWNoZWRDYW52YXMtPnRha2VJbWFnZUJ1
ZmZlcigpKTsKICAgICBpZiAoIWRldGFjaGVkQ2FudmFzLT5vcmlnaW5DbGVhbigpKQogICAgICAg
ICBjbG9uZS0+c2V0T3JpZ2luVGFpbnRlZCgpOwogCisgICAgY2FsbE9uTWFpblRocmVhZChbZGV0
YWNoZWRDYW52YXMgPSBXVEZNb3ZlKGRldGFjaGVkQ2FudmFzKSwgb2Zmc2NyZWVuQ2FudmFzID0g
bWFrZVJlZihjbG9uZS5nZXQoKSldICgpIG11dGFibGUgeworICAgICAgICBvZmZzY3JlZW5DYW52
YXMtPm1fcGxhY2Vob2xkZXJDYW52YXMgPSBkZXRhY2hlZENhbnZhcy0+dGFrZVBsYWNlaG9sZGVy
Q2FudmFzKCk7CisgICAgICAgIG9mZnNjcmVlbkNhbnZhcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5wb3N0VGFzayhbcmVsZWFzZU9mZnNjcmVlbkNhbnZhcyA9IFdURk1vdmUob2Zmc2NyZWVu
Q2FudmFzKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7IH0pOworICAgIH0pOworCiAgICAg
cmV0dXJuIGNsb25lOwogfQogCitSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBIVE1MQ2FudmFzRWxlbWVu
dCYgY2FudmFzKQoreworICAgIGF1dG8gb2Zmc2NyZWVuID0gYWRvcHRSZWYoKm5ldyBPZmZzY3Jl
ZW5DYW52YXMoY29udGV4dCwgY2FudmFzLndpZHRoKCksIGNhbnZhcy5oZWlnaHQoKSkpOworICAg
IG9mZnNjcmVlbi0+c2V0UGxhY2Vob2xkZXJDYW52YXMoY2FudmFzKTsKKyAgICByZXR1cm4gb2Zm
c2NyZWVuOworfQorCiBPZmZzY3JlZW5DYW52YXM6Ok9mZnNjcmVlbkNhbnZhcyhTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQog
ICAgIDogQ2FudmFzQmFzZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKQogICAgICwgQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCkBAIC04MCw3ICsxMDIsNiBAQCBPZmZzY3JlZW5D
YW52YXM6Ok9mZnNjcmVlbkNhbnZhcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1
bnNpZ25lZCB3aWR0aAogT2Zmc2NyZWVuQ2FudmFzOjp+T2Zmc2NyZWVuQ2FudmFzKCkKIHsKICAg
ICBub3RpZnlPYnNlcnZlcnNDYW52YXNEZXN0cm95ZWQoKTsKLQogICAgIG1fY29udGV4dCA9IG51
bGxwdHI7IC8vIEVuc3VyZSB0aGlzIGdvZXMgYXdheSBiZWZvcmUgdGhlIEltYWdlQnVmZmVyLgog
ICAgIHNldEltYWdlQnVmZmVyKG51bGxwdHIpOwogfQpAQCAtMTE5LDcgKzE0MCw3IEBAIHZvaWQg
T2Zmc2NyZWVuQ2FudmFzOjpzZXRTaXplKGNvbnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgcmVz
ZXQoKTsKIH0KIAotRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4gT2Zmc2Ny
ZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBSZW5kZXJp
bmdDb250ZXh0VHlwZSBjb250ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93
bj4+JiYgYXJndW1lbnRzKQorRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5n
Q29udGV4dD4+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0
JiBzdGF0ZSwgUmVuZGVyaW5nQ29udGV4dFR5cGUgY29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0
cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKIHsKICAgICBpZiAobV9kZXRhY2hlZCkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CkBAIC0xMjcs
MjIgKzE0OCwyMiBAQCBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0PiBPZmZz
Y3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbAogICAgIGlmIChjb250ZXh0VHlw
ZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6XzJkKSB7CiAgICAgICAgIGlmIChtX2NvbnRleHQp
IHsKICAgICAgICAgICAgIGlmICghaXM8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
PigqbV9jb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZzY3JlZW5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICAgICAgICAgIHJldHVybiB7IHsg
V1RGOjpudWxsb3B0IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPE9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH0gfTsKICAgICAgICAgfQogCiAgICAgICAg
IG1fY29udGV4dCA9IG1ha2VVbmlxdWU8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
PigqdGhpcyk7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAgICAgcmV0dXJuIHsg
UmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyBudWxscHRyIH0gfTsK
KyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKIAotICAgICAgICByZXR1
cm4geyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2Fz
dDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKKyAg
ICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
PiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRl
eHQpIH0gfSB9OwogICAgIH0KICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgaWYgKGNvbnRleHRUeXBl
ID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpXZWJnbCkgewogICAgICAgICBpZiAobV9jb250ZXh0
KSB7Ci0gICAgICAgICAgICBpZiAoIWlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4
dCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH07Ci0gICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7
ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAg
ICAgICAgIGlmIChpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpKQorICAgICAg
ICAgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyAmZG93
bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH0gfTsKKyAgICAgICAg
ICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKICAgICAgICAgfQogCiAgICAgICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLnZtKCkpOwpAQCAtMTUxLDEzICsx
NzIsMTMgQEAgRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4gT2Zmc2NyZWVu
Q2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWwKIAogICAgICAgICBtX2NvbnRleHQgPSBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJpYnV0ZXMsICJ3ZWJn
bCIpOwogICAgICAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0
cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgbnVsbHB0ciB9IH07CisgICAgICAgICAgICByZXR1
cm4geyB7IFdURjo6bnVsbG9wdCB9IH07CiAKLSAgICAgICAgcmV0dXJuIHsgUmVmUHRyPFdlYkdM
UmVuZGVyaW5nQ29udGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9j
b250ZXh0KSB9IH07CisgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29u
dGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH0g
fTsKICAgICB9CiAjZW5kaWYKIAotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKIH0KIAogRXhjZXB0
aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gT2Zmc2NyZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1h
Z2VCaXRtYXAoKQpAQCAtMjU5LDYgKzI4MCw3IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpjb252
ZXJ0VG9CbG9iKEltYWdlRW5jb2RlT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByCiB2
b2lkIE9mZnNjcmVlbkNhbnZhczo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAg
ICAgY2xlYXJDb3BpZWRJbWFnZSgpOworICAgIHNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNh
bnZhcygpOwogICAgIG5vdGlmeU9ic2VydmVyc0NhbnZhc0NoYW5nZWQocmVjdCk7CiB9CiAKQEAg
LTMwMSw3ICszMjMsNzMgQEAgc3RkOjp1bmlxdWVfcHRyPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFz
PiBPZmZzY3JlZW5DYW52YXM6OmRldGFjaCgpCiAKICAgICBtX2RldGFjaGVkID0gdHJ1ZTsKIAot
ICAgIHJldHVybiBtYWtlVW5pcXVlPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPih0YWtlSW1hZ2VC
dWZmZXIoKSwgc2l6ZSgpLCBvcmlnaW5DbGVhbigpKTsKKyAgICBhdXRvIGRldGFjaGVkID0gbWFr
ZVVuaXF1ZTxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4odGFrZUltYWdlQnVmZmVyKCksIHNpemUo
KSwgb3JpZ2luQ2xlYW4oKSk7CisgICAgZGV0YWNoZWQtPm1fcGxhY2Vob2xkZXJDYW52YXMgPSBz
dGQ6OmV4Y2hhbmdlKG1fcGxhY2Vob2xkZXJDYW52YXMsIG51bGxwdHIpOworCisgICAgcmV0dXJu
IGRldGFjaGVkOworfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2V0UGxhY2Vob2xkZXJDYW52
YXMoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhcykKK3sKKyAgICBBU1NFUlQoIW1fY29udGV4dCk7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX3BsYWNlaG9sZGVyQ2FudmFzID0g
bWFrZVdlYWtQdHIoY2FudmFzKTsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnB1c2hCdWZm
ZXJUb1BsYWNlaG9sZGVyKCkKK3sKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHRoaXNdICgpIG11dGFibGUgeworICAgICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fY29tbWl0TG9jayk7CisKKyAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXJD
YW52YXMgJiYgbV9oYXNQZW5kaW5nQ29tbWl0RGF0YSkgeworICAgICAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKEZsb2F0U2l6
ZShtX3BlbmRpbmdDb21taXREYXRhLT5zaXplKCkpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJh
dGVkKTsKKyAgICAgICAgICAgIGJ1ZmZlci0+cHV0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGlj
YXRpb246OlByZW11bHRpcGxpZWQsICptX3BlbmRpbmdDb21taXREYXRhLCBJbnRSZWN0KEludFBv
aW50KCksIG1fcGVuZGluZ0NvbW1pdERhdGEtPnNpemUoKSkpOworICAgICAgICAgICAgbV9wbGFj
ZWhvbGRlckNhbnZhcy0+c2V0SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoV1RGTW92ZShidWZmZXIp
KTsKKyAgICAgICAgICAgIG1faGFzUGVuZGluZ0NvbW1pdERhdGEgPSBmYWxzZTsKKyAgICAgICAg
fQorCisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soW3JlbGVhc2VU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7
IH0pOworICAgIH0pOworfQorCit2b2lkIE9mZnNjcmVlbkNhbnZhczo6Y29tbWl0VG9QbGFjZWhv
bGRlckNhbnZhcygpCit7CisgICAgYXV0byogaW1hZ2VCdWZmZXIgPSBidWZmZXIoKTsKKyAgICBp
ZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogVHJhbnNm
ZXIgdGV4dHVyZSBvdmVyIGlmIHdlJ3JlIHVzaW5nIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisg
ICAgaWYgKG1fY29udGV4dCAmJiAobV9jb250ZXh0LT5pc1dlYkdMKCkgfHwgbV9jb250ZXh0LT5p
c0FjY2VsZXJhdGVkKCkpKQorICAgICAgICBtX2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0
c1RvQ2FudmFzKCk7CisKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAgaWYgKG1f
cGxhY2Vob2xkZXJDYW52YXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGJ1ZmZlckNvcHkgPSBp
bWFnZUJ1ZmZlci0+Y29weVJlY3RUb0J1ZmZlcihGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFn
ZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbG9yU3BhY2U6OlNSR0IsIGltYWdlQnVmZmVyLT5j
b250ZXh0KCkpKQorICAgICAgICAgICAgICAgIG1fcGxhY2Vob2xkZXJDYW52YXMtPnNldEltYWdl
QnVmZmVyQW5kTWFya0RpcnR5KFdURk1vdmUoYnVmZmVyQ29weSkpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29tbWl0
TG9jayk7CisKKyAgICBib29sIHNob3VsZFB1c2hCdWZmZXIgPSAhbV9oYXNQZW5kaW5nQ29tbWl0
RGF0YTsKKyAgICBtX3BlbmRpbmdDb21taXREYXRhID0gaW1hZ2VCdWZmZXItPmdldEltYWdlRGF0
YShBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBJbnRSZWN0KEludFBvaW50
KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSk7CisgICAgbV9oYXNQZW5kaW5nQ29tbWl0
RGF0YSA9IHRydWU7CisKKyAgICBpZiAoc2hvdWxkUHVzaEJ1ZmZlcikKKyAgICAgICAgcHVzaEJ1
ZmZlclRvUGxhY2Vob2xkZXIoKTsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnNjaGVkdWxl
Q29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAgaWYgKCFtX2hhc1NjaGVkdWxlZENv
bW1pdCkgeworICAgICAgICBhdXRvJiBzY3JpcHRDb250ZXh0ID0gKnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKKyAgICAgICAgbV9oYXNTY2hlZHVsZWRDb21taXQgPSB0cnVlOworICAgICAgICBz
Y3JpcHRDb250ZXh0LnBvc3RUYXNrKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRo
aXNdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgICAgICAgICAgbV9oYXNTY2hlZHVs
ZWRDb21taXQgPSBmYWxzZTsKKyAgICAgICAgICAgIGNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMo
KTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiBDU1NWYWx1ZVBvb2wmIE9mZnNjcmVlbkNhbnZh
czo6Y3NzVmFsdWVQb29sKCkKQEAgLTM1MSw2ICs0MzksNyBAQCB2b2lkIE9mZnNjcmVlbkNhbnZh
czo6cmVzZXQoKQogICAgIGNsZWFyQ29waWVkSW1hZ2UoKTsKIAogICAgIG5vdGlmeU9ic2VydmVy
c0NhbnZhc1Jlc2l6ZWQoKTsKKyAgICBzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMo
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52
YXMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKaW5kZXggM2U1ZTMw
YTU3NmUzMWE5MzJhNmYxNDZhOTdlYmYwOGRlOWEyNWYzOS4uYTNkMTYxMGUwZTFkOWU2YzlmZTNh
YjUxZTBmN2RkNWNmNDY3MDYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZz
Y3JlZW5DYW52YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5o
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDcgKzQ1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIENTU1ZhbHVlUG9vbDsKIGNsYXNzIERl
ZmVycmVkUHJvbWlzZTsKK2NsYXNzIEhUTUxDYW52YXNFbGVtZW50OwogY2xhc3MgSW1hZ2VCaXRt
YXA7CitjbGFzcyBJbWFnZURhdGE7CiBjbGFzcyBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CiAKQEAgLTU3LDE3ICs2MCwyMSBA
QCB1c2luZyBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0ID0gVmFyaWFudDxSZWZQdHI8T2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dAogY2xhc3MgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBmcmllbmQgY2xhc3MgT2Zmc2NyZWVuQ2Fu
dmFzOworCiBwdWJsaWM6CiAgICAgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMoc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiYmLCBjb25zdCBJbnRTaXplJiwgYm9vbCBvcmlnaW5DbGVhbik7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IHRha2VJbWFnZUJ1ZmZlcigpOwogICAg
IGNvbnN0IEludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICBib29s
IG9yaWdpbkNsZWFuKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5DbGVhbjsgfQorICAgIFdlYWtQ
dHI8SFRNTENhbnZhc0VsZW1lbnQ+IHRha2VQbGFjZWhvbGRlckNhbnZhcygpOwogCiBwcml2YXRl
OgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gbV9idWZmZXI7CiAgICAgSW50U2l6
ZSBtX3NpemU7CiAgICAgYm9vbCBtX29yaWdpbkNsZWFuOworICAgIFdlYWtQdHI8SFRNTENhbnZh
c0VsZW1lbnQ+IG1fcGxhY2Vob2xkZXJDYW52YXM7CiB9OwogCiBjbGFzcyBPZmZzY3JlZW5DYW52
YXMgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxPZmZzY3JlZW5DYW52YXM+LCBwdWJsaWMgQ2Fu
dmFzQmFzZSwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHByaXZhdGUgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIgewpAQCAtODYsNiArOTMsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgUmVmPE9mZnNjcmVlbkNhbnZhcz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKICAgICBzdGF0aWMgUmVmPE9mZnNj
cmVlbkNhbnZhcz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6OnVuaXF1ZV9w
dHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+JiYpOworICAgIHN0YXRpYyBSZWY8T2Zmc2NyZWVu
Q2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEhUTUxDYW52YXNFbGVtZW50
Jik7CiAgICAgdmlydHVhbCB+T2Zmc2NyZWVuQ2FudmFzKCk7CiAKICAgICB1bnNpZ25lZCB3aWR0
aCgpIGNvbnN0IGZpbmFsOwpAQCAtOTUsNyArMTAzLDcgQEAgcHVibGljOgogCiAgICAgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dCogcmVuZGVyaW5nQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fY29udGV4dC5nZXQoKTsgfQogCi0gICAgRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5n
Q29udGV4dD4gZ2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVuZGVyaW5nQ29udGV4
dFR5cGUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cyk7Cisg
ICAgRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4+IGdldENv
bnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFJlbmRlcmluZ0NvbnRleHRUeXBlLCBWZWN0b3I8
SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOwogICAgIEV4Y2VwdGlvbk9y
PFJlZlB0cjxJbWFnZUJpdG1hcD4+IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOwogICAgIHZvaWQg
Y29udmVydFRvQmxvYihJbWFnZUVuY29kZU9wdGlvbnMmJiwgUmVmPERlZmVycmVkUHJvbWlzZT4m
Jik7CiAKQEAgLTEwOSw2ICsxMTcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5EZXRhY2goKSBj
b25zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+IGRldGFj
aCgpOwogCisgICAgdm9pZCBjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisKICAgICBDU1NW
YWx1ZVBvb2wmIGNzc1ZhbHVlUG9vbCgpOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwpA
QCAtMTM4LDYgKzE0OCwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjbGVhckNvcGllZEltYWdl
KCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldFBsYWNlaG9sZGVyQ2FudmFzKEhUTUxDYW52YXNFbGVt
ZW50Jik7CisgICAgdm9pZCBwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpOworICAgIHZvaWQgc2No
ZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q2FudmFzUmVuZGVyaW5nQ29udGV4dD4gbV9jb250ZXh0OwogCiAgICAgLy8gbV9oYXNDcmVhdGVk
SW1hZ2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQgdG8gbWFsbG9jIHRoZSBidWZmZXIuIFdlIGRpZG4n
dCBuZWNlc3NhcmlseSBnZXQgaXQuCkBAIC0xNDYsNiArMTYwLDEzIEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2RldGFjaGVkIHsgZmFsc2UgfTsKIAogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBt
X2NvcGllZEltYWdlOworCisgICAgYm9vbCBtX2hhc1NjaGVkdWxlZENvbW1pdCB7IGZhbHNlIH07
CisgICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gbV9wbGFjZWhvbGRlckNhbnZhczsKKwor
ICAgIG11dGFibGUgTG9jayBtX2NvbW1pdExvY2s7CisgICAgYm9vbCBtX2hhc1BlbmRpbmdDb21t
aXREYXRhIHsgZmFsc2UgfTsKKyAgICBSZWZQdHI8SW1hZ2VEYXRhPiBtX3BlbmRpbmdDb21taXRE
YXRhOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zm
c2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggODZkNzg0
YTM1MWQ1ODRjZTZlZjNhNjk5MmU3ZWMyMDZlNjhkOTYwMC4uMGI5YTA0NDFjMTZiYzM4MWJmNjg3
MDZlNzIyMzBiYjU0NjNhZWYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBA
IC00OCw2ICs0OCwxMSBAQCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6Ok9mZnNj
cmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChDYW52YXNCYXNlJgogCiBPZmZzY3JlZW5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6On5PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQo
KSA9IGRlZmF1bHQ7CiAKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpj
b21taXQoKQoreworICAgIGRvd25jYXN0PE9mZnNjcmVlbkNhbnZhcz4oY2FudmFzQmFzZSgpKS5j
b21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4IGNjYjE2ZTkyY2QyYmQw
NGNhNTY4YmNmNjE2MzI3OTJlNjk0OTMzZTAuLmVlOTI5YWYyYjI5ZGFlODI2M2RlMWRhZjYwZGQx
NjQ1NDI1N2U5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNj
cmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC00Miw2ICs0Miw4
IEBAIHB1YmxpYzoKICAgICBib29sIGlzT2Zmc2NyZWVuMmQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CiAKICAgICBPZmZzY3JlZW5DYW52YXMmIGNhbnZhcygpIGNvbnN0IHsgcmV0
dXJuIGRvd25jYXN0PE9mZnNjcmVlbkNhbnZhcz4oY2FudmFzQmFzZSgpKTsgfQorCisgICAgdm9p
ZCBjb21taXQoKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsCmluZGV4IDA0ZWM2YTc1MTliMTRhNzVhMTI1NjRmNWU5ZGViOTEwZWM4
YmYxMzkuLmQ3ZmVjODc5OTM2OTA0NGJkYTcyZGUwZWI1YzUzZDYzN2FlMDI3MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbApAQCAtMjcsMTQgKzI3LDEzIEBACiAgICAgQ3VzdG9t
SXNSZWFjaGFibGUsCiAgICAgRW5hYmxlZEF0UnVudGltZT1PZmZzY3JlZW5DYW52YXMsCiAgICAg
Q29uZGl0aW9uYWw9T0ZGU0NSRUVOX0NBTlZBUywKLSAgICBFeHBvc2VkPShXaW5kb3cpLCAvLyBG
SVhNRTogT2Zmc2NyZWVuQ2FudmFzIC0gc2hvdWxkIGJlIFdpbmRvdyxXb3JrZXIKKyAgICBFeHBv
c2VkPShXaW5kb3csV29ya2VyKSwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAgICBKU0N1
c3RvbU1hcmtGdW5jdGlvbiwKICAgICAvLyBDYWxsVHJhY2luZ0NhbGxiYWNrPXJlY29yZENhbnZh
c0FjdGlvbiwgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4KIF0gaW50ZXJmYWNlIE9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE9mZnNj
cmVlbkNhbnZhcyBjYW52YXM7Ci0gICAgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4KLSAgICAv
LyB2b2lkIGNvbW1pdCgpOworICAgIHZvaWQgY29tbWl0KCk7CiAKICAgICAvLyBJbnNwZWN0b3It
b25seS4KICAgICAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggMDkyYzRhZWY2MGE1NTEzZjQ3NmM3ZDcxNDMzZWJlNzFhZmE3ODFkNC4uMWVjN2EyNGVk
ZjQ0NTIxMWJiYmE5OTQyZTgxNDZiYjFlN2Y2ODRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuY3BwCkBA
IC0yNiw2ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dC5oIgogCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisK
KyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUgIk9mZnNjcmVlbkNhbnZh
cy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTM3LDQgKzQxLDE0IEBAIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6UGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcykKIHsKIH0KIAorSFRN
TENhbnZhc0VsZW1lbnQqIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzKCkgY29u
c3QKK3sKKyAgICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOworICAgIGlmICghaXM8SFRNTENh
bnZhc0VsZW1lbnQ+KGJhc2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
JmRvd25jYXN0PEhUTUxDYW52YXNFbGVtZW50PihiYXNlKTsKIH0KKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5n
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJp
bmdDb250ZXh0LmgKaW5kZXggYzM0OGU1MTg5NTJjYjlkNDE1YzZiZDE3OTVmMjE2ZGNiMTY1ZDI1
OS4uNjQ1MDkxNDU5ZGQwMWNjMmE3OTc3ZGMwMDNiNDUyNjVkZTViYTdkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250
ZXh0LmgKQEAgLTI1LDE1ICsyNSwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShP
RkZTQ1JFRU5fQ0FOVkFTKQorCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE9mZnNjcmVlbkNhbnZhczsKKwogY2xhc3Mg
UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVibGljIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUGxhY2Vob2xkZXJSZW5kZXJp
bmdDb250ZXh0KTsKIHB1YmxpYzoKICAgICBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQoQ2Fu
dmFzQmFzZSYpOwogCisgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcygpIGNvbnN0OworCiBw
cml2YXRlOgogICAgIGJvb2wgaXNQbGFjZWhvbGRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KIH07CkBAIC00MSwzICs0Nyw1IEBAIHByaXZhdGU6CiB9CiAKIFNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQ0FOVkFTUkVOREVSSU5HQ09OVEVYVChXZWJDb3JlOjpQbGFjZWhvbGRlclJlbmRl
cmluZ0NvbnRleHQsIGlzUGxhY2Vob2xkZXIoKSkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCAxY2U1NmNkNDZkNjg5ZDFkMDRmMjkyYzg0YmUyMWMwODIwZjUxNTVk
Li43OTYzODE0YTgzYjE2MDA1MDVmNzIzMjM2MjVjODVmYWNiMjhmYmYyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMi0xMyAgQ2hyaXMgTG9y
ZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IENhbnZhcy50cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbiBhbmQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNvbW1pdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAyNzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
b2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0
Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5y
ZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3Jl
ZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNv
bnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52
YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dDoKKwogMjAyMC0w
NC0yNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAg
SW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUgc2hvdWxkIHVzZSBuZXdU
YXJnZXQncyBnbG9iYWxPYmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dAppbmRleCA2ZjFjNzA1
MGU1ZTgyOGMzZjMyM2YyOTVmYjFkMmE0ZmVjOGMwMDdjLi5iM2IzOWE3YTkxZmMwYWM4NTU3YTlh
MjhjMmViYjYyNGI1ZTQ3NzE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NSBAQAorQ09OU09MRSBNRVNTQUdFOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogR3JlZW4gY2hhbm5l
bCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4cGVjdGVkIDI1NSBidXQgZ290IDAKIAotRkFJTCBU
ZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250
ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zm
c2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4n
IGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNj
cmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1l
bnQgaXMgYSBub29wLiBjdHguY29tbWl0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2N0eC5jb21t
aXQoKScsICdjdHguY29tbWl0JyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5n
IE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFj
ZWhvbGRlci4gCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5D
YW52YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IGlz
IGEgbm9vcC4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKaW5kZXggNDM0MzMyY2U1MWFi
ZmUzNzEyZDBlMjQ5NThhODA1MjgxYTYwNzA3NC4uYzQyMThlY2FjMjczZDA1NDdmNWU0OWMzZDEy
M2ZkYWY4M2YzZWFiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0
IEBACiAKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1
c2hlcyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVyLiBwbGFjZWhvbGRlci50cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNj
cmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRl
ci4gCiBQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52YXMg
dGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IHRocm93cyBh
biBleGNlcHRpb24gaW4gYSB3b3JrZXIuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3Ro
ZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4
dAppbmRleCBiZDlhYTBlMTY3N2U5NDk0ODBiMjIzMzEyMjM4ZjQ3MDk5ZWYxMzc3Li5jNTdhMjkz
ZWM0YTliZDY4YzZkOTFmOWFiYzgyNTU0YzRkZjg4ZjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9m
ZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVu
LWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKIFBBU1MgVGVzdCB0aGF0IGdldENvbnRleHQg
d2l0aCB1bi1zdXBwb3J0ZWQgc3RyaW5nIHRocm93cyBhIFR5cGVFcnJvci4gCiBGQUlMIFRlc3Qg
dGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVz
dWx0cyBBcmd1bWVudCAxICgnY29udGV4dFR5cGUnKSB0byBPZmZzY3JlZW5DYW52YXMuZ2V0Q29u
dGV4dCBtdXN0IGJlIG9uZSBvZjogIjJkIiwgIndlYmdsIgotRkFJTCBUZXN0IHRoYXQgZ2V0Q29u
dGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBz
ZWNvbmQgdGltZSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuCitQQVNTIFRlc3Qg
dGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5z
IG51bGwgdGhlIHNlY29uZCB0aW1lIAogUEFTUyBUZXN0IHRoYXQgMmRjb250ZXh0LmNhbnZhcyBz
aG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBQQVNTIFRlc3QgdGhh
dCB3ZWJnbGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVl
bkNhbnZhcyAKIEZBSUwgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCB3aXRoIGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBPZmZzY3JlZW5DYW52YXMgb3BhcXVlIGFz
c2VydF9hcHByb3hfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoNSwgNSkg
ZXhwZWN0ZWQgMTI3ICsvLSAyIGJ1dCBnb3QgMjU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVu
LWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGYyMjRjZTc0ZWVhODc4Y2Y3NmExMzMzYmNhZTFiYWEx
MGZkNGY2NjcuLjM5ZmMyY2Y5YWFkZGU3ZjJkYjFiM2UyZTMzNjg5ZWQ3MDcxNzhjYTEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2Ny
ZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4
dC53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBA
QAogCiBQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggdW4tc3VwcG9ydGVkIHN0cmluZyB0
aHJvd3MgYSBUeXBlRXJyb3IuIAotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBv
cnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTog
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJECi1GQUlMIFRlc3QgdGhhdCBnZXRDb250
ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNl
Y29uZCB0aW1lIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4KK0ZBSUwgVGVzdCB0
aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1
bHRzIENhbid0IGZpbmQgdmFyaWFibGU6IFdlYkdMUmVuZGVyaW5nQ29udGV4dAorUEFTUyBUZXN0
IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJu
cyBudWxsIHRoZSBzZWNvbmQgdGltZSAKIFBBU1MgVGVzdCB0aGF0IDJkY29udGV4dC5jYW52YXMg
c2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAogUEFTUyBUZXN0IHRo
YXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3Jl
ZW5DYW52YXMgCiBGQUlMIFRlc3QgdGhhdCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQgd2l0aCBhbHBoYSBkaXNhYmxlZCBtYWtlcyB0aGUgT2Zmc2NyZWVuQ2FudmFzIG9wYXF1ZSBh
c3NlcnRfYXBwcm94X2VxdWFsczogR3JlZW4gY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDUp
IGV4cGVjdGVkIDEyNyArLy0gMiBidXQgZ290IDI1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3Ro
ZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGY0NTUwNzE3MmI3NmJhZjA2YWIwZTQ0ZWQxNWNlMzMwNmFkNDgxOGEuLjZjMTFjOGRmNGI2
NWE3OTAwYWRkYzc0NmFhOWEwZWU3Nzk0MTg2MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQK
QEAgLTIsMTEgKzIsMTEgQEAKIFBBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGgg
YW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRo
ZXJlIGlzIG5vIGNvbnRleHQgYXR0YWNoZWQuIAogUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRv
IHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdv
cmtzIHdoZW4gdGhlcmUgaXMgYSAyZCBjb250ZXh0IGF0dGFjaGVkLiAKIFBBU1MgVmVyaWZ5IHRo
YXQgd3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNj
cmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIGEgd2ViZ2wgY29udGV4dCBhdHRhY2hlZC4g
Ci1GQUlMIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1
dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0aGF0IHdy
aXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBj
YW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBldmVuIHdoZW4gbm90IGNoYW5naW5nIHRoZSB2YWx1
ZSBvZiB0aGUgYXR0cmlidXRlLiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1
bmRlZmluZWQpCitQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdo
dCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiAK
K1BBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0dHJpYnV0
ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGV2ZW4gd2hlbiBu
b3QgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuIAogUEFTUyBWZXJpZnkgdGhh
dCByZXNpemluZyBhIDJkIGNvbnRleHQgcmVzZXRzIGl0cyBzdGF0ZS4gCiBQQVNTIFZlcmlmeSB0
aGF0IHNldHRpbmcgdGhlIHNpemUgb2YgYSAyZCBjb250ZXh0IHRvIHRoZSBzYW1lIHNpemUgaXQg
YWxyZWFkeSBoYWQgcmVzZXRzIGl0cyBzdGF0ZS4gCi1GQUlMIFZlcmlmeSB0aGF0IHJlc2l6aW5n
IGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgMmQgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcg
c2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiBwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlmeSB0aGF0IHJl
c2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgd2ViZ2wgY29udGV4dCBwcm9wYWdhdGVz
IHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiBw
bGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9s
ZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFZlcmlm
eSB0aGF0IGRyYXdJbWFnZSB1c2VzIHRoZSBzaXplIG9mIHRoZSBmcmFtZSBhcyB0aGUgaW50aW5z
aWMgc2l6ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcy4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZz
Y3JlZW5DYW52YXMgd2l0aCBhIDJkIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8g
aXRzIHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25vdXNseS4gCitQQVNTIFZlcmlmeSB0aGF0
IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgd2ViZ2wgY29udGV4dCBwcm9wYWdh
dGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5
LiAKK1BBU1MgVmVyaWZ5IHRoYXQgZHJhd0ltYWdlIHVzZXMgdGhlIHNpemUgb2YgdGhlIGZyYW1l
IGFzIHRoZSBpbnRpbnNpYyBzaXplIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzLiAKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3Jl
ZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNv
bnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50
eHQKaW5kZXggNGY0MmU1MDc0MjgyODBhMmVhMTlmNzYzY2Y4Yzk2MTlhZTViYjMwNS4uMjk2MDQ4
NWI3YjZhZDZmNzA2MmRlZjlmZTdiNzllNWNiNzRiODNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2Ny
ZWVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0CkBAIC0xLDUg
KzEsNSBAQAogCi1GQUlMIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5
IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0
IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vo
b2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVz
dCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGhh
cyBhbHJlYWR5IHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRocm93cyBhbiBleGNlcHRpb24gcGxh
Y2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBUZXN0IHRo
YXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhj
ZXB0aW9uIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAn
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BB
U1MgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgCitQQVNTIFRlc3Qg
dGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhhdCBoYXMg
YWxyZWFkeSB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0aHJvd3MgYW4gZXhjZXB0aW9uIAorUEFT
UyBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJv
d3MgYW4gZXhjZXB0aW9uIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29u
dHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQKaW5kZXggMmNkM2RiNGIyNzZkYzFjMTFk
MWVjZGIwNDhiM2I3OTA5M2VlZTBkYS4uMzNiODUzMmNiMmUwMDQxNGE2ZDU0YTZkYTc5YWU3NmVh
ZjQ2NTYzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZh
cy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRv
Lm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBUZXN0IHRo
YXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCB3aGVuIGl0IGlzIHRyYW5zZmVycmVk
IHRvIGEgd29ya2VyIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
KCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5l
ZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNh
bnZhcyB0aGF0IGlzIHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRvIGFuIE9mZnNjcmVlbkNhbnZh
cyB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNm
ZXJyZWQgdG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4g
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5k
ZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9mZnNjcmVl
bkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52
YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3
aWR0aCBhbmQgaGVpZ2h0IHdoZW4gaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgCitQQVNT
IFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhh
dCBpcyB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0byBhbiBPZmZzY3JlZW5DYW52YXMgdGhyb3dz
IGFuIGV4Y2VwdGlvbiwgd2hlbiB0aGUgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRv
IGEgd29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9mZnNj
cmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398054</attachid>
            <date>2020-04-30 07:50:33 -0700</date>
            <delta_ts>2020-08-11 02:10:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200430155032.patch</filename>
            <type>text/plain</type>
            <size>38067</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDU5YTMzZmI3MDg0OGYz
OGQ5MmUyZTZiMTlkYzJmZTEwZTZhNzY3ZC4uNDk5MTNjNTI1YTVlZWY4ZmNiNmMxOGUyMmEwYmE0
Y2Y3YzVhYzFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52
YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAyMC0wNC0yNyAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEs0XSBHZGtSR0JB
IGhhcyBmbG9hdCBtZW1iZXJzIGluc3RlYWQgb2YgZG91YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDBkYjUyNjhhZGVkZTBiZGYxMDU0MDE0ZTQ5MTdi
NDM5YjgyOGUwZjMuLjRkYmEyYTcyYzdkYmU2ODQ5OGNlODMwODZhNTQ5ODcxOTQxMTAwYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00OSw2ICs0OSw3
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySFRNTENhbnZhcy5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZE9ic2VydmVyLmgiCkBAIC0xNzEsNyArMTcyLDcgQEAgYm9vbCBIVE1MQ2FudmFzRWxl
bWVudDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdAogCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1M
Q2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogewotICAgIGlmIChtX2Nv
bnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9sZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxl
ZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oaGVpZ2h0QXR0
ciwgQXRvbVN0cmluZzo6bnVtYmVyKGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHZhbHVlLCBk
ZWZhdWx0SGVpZ2h0KSkpOwogICAgIHJldHVybiB7IH07CkBAIC0xNzksNyArMTgwLDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCB2YWx1
ZSkKIAogRXhjZXB0aW9uT3I8dm9pZD4gSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKHVuc2ln
bmVkIHZhbHVlKQogewotICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1BsYWNlaG9s
ZGVyKCkpCisgICAgaWYgKGlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogICAgIHNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09u
bHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRXaWR0aCkpKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNTQwLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmRpZERyYXcoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiB7
Ci0gICAgaWYgKG1faWdub3JlUmVzZXQpCisgICAgaWYgKG1faWdub3JlUmVzZXQgfHwgaXNDb250
cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBoYWRJbWFn
ZUJ1ZmZlciA9IGhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpOwpAQCAtNzQyLDYgKzc0MywxNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6dG9CbG9iKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFJlZgogICAgIHJldHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUo
T0ZGU0NSRUVOX0NBTlZBUykKK0V4Y2VwdGlvbk9yPFJlZjxPZmZzY3JlZW5DYW52YXM+PiBIVE1M
Q2FudmFzRWxlbWVudDo6dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAobV9jb250ZXh0KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIG1fY29udGV4dCA9IG1ha2VV
bmlxdWU8UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0PigqdGhpcyk7CisgICAgcmV0dXJuIE9m
ZnNjcmVlbkNhbnZhczo6Y3JlYXRlKGNvbnRleHQsICp0aGlzKTsKK30KKyNlbmRpZgorCiBSZWZQ
dHI8SW1hZ2VEYXRhPiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0SW1hZ2VEYXRhKCkKIHsKICNpZiBF
TkFCTEUoV0VCR0wpCkBAIC05MTYsOCArOTI4LDI0IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6
OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0
SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmIGJ1
ZmZlcikKIHsKKyAgICBJbnRTaXplIG9sZFNpemUgPSBzaXplKCk7CiAgICAgbV9oYXNDcmVhdGVk
SW1hZ2VCdWZmZXIgPSB0cnVlOwogICAgIHNldEltYWdlQnVmZmVyKFdURk1vdmUoYnVmZmVyKSk7
CisKKyAgICBpZiAoaXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSAmJiBvbGRTaXplICE9IHNpemUo
KSkgeworICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHdpZHRoQXR0
ciwgQXRvbVN0cmluZzo6bnVtYmVyKHdpZHRoKCkpKTsKKyAgICAgICAgc2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBBdG9tU3RyaW5nOjpudW1iZXIoaGVpZ2h0
KCkpKTsKKworICAgICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKKyAgICAg
ICAgaWYgKGlzPFJlbmRlckhUTUxDYW52YXM+KHJlbmRlcmVyKSkgeworICAgICAgICAgICAgYXV0
byYgY2FudmFzUmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJIVE1MQ2FudmFzPigqcmVuZGVyZXIp
OworICAgICAgICAgICAgY2FudmFzUmVuZGVyZXIuY2FudmFzU2l6ZUNoYW5nZWQoKTsKKyAgICAg
ICAgICAgIGNhbnZhc1JlbmRlcmVyLmNvbnRlbnRDaGFuZ2VkKENhbnZhc0NoYW5nZWQpOworICAg
ICAgICB9CisKKyAgICAgICAgbm90aWZ5T2JzZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAgIH0K
KwogICAgIGRpZERyYXcoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSgpKSk7CiB9CiAKQEAg
LTk3Nyw0ICsxMDA1LDkgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6ZXZlbnRMaXN0ZW5lcnNE
aWRDaGFuZ2UoKQogI2VuZGlmCiB9CiAKK2Jvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzQ29udHJv
bGxlZEJ5T2Zmc2NyZWVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0ICYmIG1fY29u
dGV4dC0+aXNQbGFjZWhvbGRlcigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmgKaW5kZXggNTBlN2MyY2RlZTEwNTgyYjZhOTdjY2QyYTc3NTY3NDkwOGRmZjM4
Yy4uYjYwMWI3ZWE1NDJhMzRmZmE0MTEwNmNhOWViYjk2NGU2OTQyMTgxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJbWFn
ZUJ1ZmZlcjsKIGNsYXNzIEltYWdlRGF0YTsKIGNsYXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgTWVk
aWFTdHJlYW07CitjbGFzcyBPZmZzY3JlZW5DYW52YXM7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOwogY2xhc3MgR1BVQ2FudmFzQ29udGV4dDsKIHN0cnVjdCBVbmNhY2hlZFN0cmlu
ZzsKQEAgLTk3LDYgKzk4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlv
bk9yPFVuY2FjaGVkU3RyaW5nPiB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlND
OjpKU1ZhbHVlIHF1YWxpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2Fj
aGVkU3RyaW5nPiB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gdG9CbG9iKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8QmxvYkNhbGxi
YWNrPiYmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7Cisj
aWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCisgICAgRXhjZXB0aW9uT3I8UmVmPE9mZnNjcmVl
bkNhbnZhcz4+IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKTsKKyNlbmRpZgogCiAgICAgLy8gVXNlZCBmb3IgcmVuZGVyaW5nCiAgICAgdm9pZCBkaWRE
cmF3KGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwpAQCAtMTI5LDYgKzEzMyw4IEBAIHB1YmxpYzoK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldE1heFBpeGVsTWVtb3J5Rm9yVGVz
dGluZyhzaXplX3QpOwogCisgICAgYm9vbCBpc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpIGNvbnN0
OworCiBwcml2YXRlOgogICAgIEhUTUxDYW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRs
CmluZGV4IDcxOGE5ZWE3YTRjOTcxNWEyZTc4MDQ3NzU1MmMyYjVmNTEzYTlhMGEuLmFlNGZjYWFj
MjY5ZjZiYzNmNTQwZWJkMWU0N2I1ODkyN2RiM2VlZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuaWRsCkBAIC01MCw2ICs1MCw3IEBAIHR5cGVkZWYgKAogCiAgICAg
W01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgdG9EYXRhVVJMKG9wdGlvbmFsIERPTVN0cmlu
ZyB0eXBlLCBvcHRpb25hbCBhbnkgcXVhbGl0eSk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSB2b2lkIHRvQmxvYihCbG9iQ2FsbGJhY2sg
Y2FsbGJhY2ssIG9wdGlvbmFsIERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBhbnkgcXVhbGl0eSk7
CisgICAgW0NvbmRpdGlvbmFsPU9GRlNDUkVFTl9DQU5WQVMsIENhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBPZmZzY3JlZW5DYW52YXMgdHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4oKTsKIAogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIENh
bGxXaXRoPURvY3VtZW50LCBNYXlUaHJvd0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBNZWRpYVN0cmVh
bSBjYXB0dXJlU3RyZWFtKG9wdGlvbmFsIGRvdWJsZSBmcmFtZVJlcXVlc3RSYXRlKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKaW5kZXggNjA2YTRkN2NlMTU4ZDI4
ZjU5OTc5NmUzYTM5NjY1YWZmNDZhZDA3Zi4uNGJhZGQ0ZWViNTI1YTIwMDM4ODZjYTZhNTVkMzgy
ZmQ0NGEzYTY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52
YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcApAQCAt
MzEsMTEgKzMxLDE0IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVQb29sLmgiCiAjaW5jbHVkZSAiQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
SFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZUJpdG1hcC5oIgorI2luY2x1ZGUg
IkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkpTQmxvYi5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlz
ZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIgorI2luY2x1ZGUgIlBsYWNlaG9sZGVy
UmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgog
I2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KQEAgLTU2LDYgKzU5LDEyIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4g
RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VJbWFnZUJ1ZmZlcigpCiAgICAgcmV0dXJuIFdU
Rk1vdmUobV9idWZmZXIpOwogfQogCitXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiBEZXRhY2hl
ZE9mZnNjcmVlbkNhbnZhczo6dGFrZVBsYWNlaG9sZGVyQ2FudmFzKCkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fcGxhY2Vob2xkZXJD
YW52YXMsIG51bGxwdHIpOworfQorCiBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52
YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCB3aWR0
aCwgdW5zaWduZWQgaGVpZ2h0KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9mZnNjcmVl
bkNhbnZhcyhjb250ZXh0LCB3aWR0aCwgaGVpZ2h0KSk7CkBAIC02OCw5ICs3NywyMSBAQCBSZWY8
T2Zmc2NyZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBzdAogICAgIGlmICghZGV0YWNoZWRDYW52YXMtPm9yaWdpbkNsZWFu
KCkpCiAgICAgICAgIGNsb25lLT5zZXRPcmlnaW5UYWludGVkKCk7CiAKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFtkZXRhY2hlZENhbnZhcyA9IFdURk1vdmUoZGV0YWNoZWRDYW52YXMpLCBvZmZzY3Jl
ZW5DYW52YXMgPSBtYWtlUmVmKGNsb25lLmdldCgpKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIG9m
ZnNjcmVlbkNhbnZhcy0+bV9wbGFjZWhvbGRlckNhbnZhcyA9IGRldGFjaGVkQ2FudmFzLT50YWtl
UGxhY2Vob2xkZXJDYW52YXMoKTsKKyAgICAgICAgb2Zmc2NyZWVuQ2FudmFzLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnBvc3RUYXNrKFtyZWxlYXNlT2Zmc2NyZWVuQ2FudmFzID0gV1RGTW92
ZShvZmZzY3JlZW5DYW52YXMpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsgfSk7CisgICAg
fSk7CisKICAgICByZXR1cm4gY2xvbmU7CiB9CiAKK1JlZjxPZmZzY3JlZW5DYW52YXM+IE9mZnNj
cmVlbkNhbnZhczo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEhUTUxD
YW52YXNFbGVtZW50JiBjYW52YXMpCit7CisgICAgYXV0byBvZmZzY3JlZW4gPSBhZG9wdFJlZigq
bmV3IE9mZnNjcmVlbkNhbnZhcyhjb250ZXh0LCBjYW52YXMud2lkdGgoKSwgY2FudmFzLmhlaWdo
dCgpKSk7CisgICAgb2Zmc2NyZWVuLT5zZXRQbGFjZWhvbGRlckNhbnZhcyhjYW52YXMpOworICAg
IHJldHVybiBvZmZzY3JlZW47Cit9CisKIE9mZnNjcmVlbkNhbnZhczo6T2Zmc2NyZWVuQ2FudmFz
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25l
ZCBoZWlnaHQpCiAgICAgOiBDYW52YXNCYXNlKEludFNpemUod2lkdGgsIGhlaWdodCkpCiAgICAg
LCBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKQEAgLTExOSw3ICsxNDAsNyBA
QCB2b2lkIE9mZnNjcmVlbkNhbnZhczo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQog
ICAgIHJlc2V0KCk7CiB9CiAKLUV4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+
IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwg
UmVuZGVyaW5nQ29udGV4dFR5cGUgY29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6
OlVua25vd24+PiYmIGFyZ3VtZW50cykKK0V4Y2VwdGlvbk9yPE9wdGlvbmFsPE9mZnNjcmVlblJl
bmRlcmluZ0NvbnRleHQ+PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2Jh
bE9iamVjdCYgc3RhdGUsIFJlbmRlcmluZ0NvbnRleHRUeXBlIGNvbnRleHRUeXBlLCBWZWN0b3I8
SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpCiB7CiAgICAgaWYgKG1fZGV0
YWNoZWQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwpA
QCAtMTI3LDIyICsxNDgsMjIgQEAgRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4
dD4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWwKICAgICBpZiAoY29u
dGV4dFR5cGUgPT0gUmVuZGVyaW5nQ29udGV4dFR5cGU6Ol8yZCkgewogICAgICAgICBpZiAobV9j
b250ZXh0KSB7CiAgICAgICAgICAgICBpZiAoIWlzPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRD4oKm1fY29udGV4dCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yIH07Ci0gICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8T2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgICAgICAgICByZXR1
cm4geyB7IFdURjo6bnVsbG9wdCB9IH07CisgICAgICAgICAgICByZXR1cm4geyB7IFJlZlB0cjxP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9IH07CiAgICAgICAgIH0KIAog
ICAgICAgICBtX2NvbnRleHQgPSBtYWtlVW5pcXVlPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRD4oKnRoaXMpOwogICAgICAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgICAgIHJl
dHVybiB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgbnVsbHB0
ciB9IH07CisgICAgICAgICAgICByZXR1cm4geyB7IFdURjo6bnVsbG9wdCB9IH07CiAKLSAgICAg
ICAgcmV0dXJuIHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAm
ZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9
IH07CisgICAgICAgIHJldHVybiB7IHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigq
bV9jb250ZXh0KSB9IH0gfTsKICAgICB9CiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIGlmIChjb250
ZXh0VHlwZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6V2ViZ2wpIHsKICAgICAgICAgaWYgKG1f
Y29udGV4dCkgewotICAgICAgICAgICAgaWYgKCFpczxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCpt
X2NvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9OwotICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29u
dGV4dD4geyAmZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSB9IH07
CisgICAgICAgICAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkK
KyAgICAgICAgICAgICAgICByZXR1cm4geyB7IFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4dCkgfSB9IH07Cisg
ICAgICAgICAgICByZXR1cm4geyB7IFdURjo6bnVsbG9wdCB9IH07CiAgICAgICAgIH0KIAogICAg
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS52bSgpKTsKQEAgLTE1
MSwxMyArMTcyLDEzIEBAIEV4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+IE9m
ZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xvYmFsCiAKICAgICAgICAgbV9jb250
ZXh0ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRyaWJ1dGVz
LCAid2ViZ2wiKTsKICAgICAgICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAgICAgICByZXR1cm4g
eyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7IG51bGxwdHIgfSB9OworICAgICAgICAg
ICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9OwogCi0gICAgICAgIHJldHVybiB7IFJlZlB0
cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4
dD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICByZXR1cm4geyB7IFJlZlB0cjxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4
dCkgfSB9IH07CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3Vw
cG9ydGVkRXJyb3IgfTsKKyAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CiB9CiAK
IEV4Y2VwdGlvbk9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+IE9mZnNjcmVlbkNhbnZhczo6dHJhbnNm
ZXJUb0ltYWdlQml0bWFwKCkKQEAgLTI1OSw2ICsyODAsNyBAQCB2b2lkIE9mZnNjcmVlbkNhbnZh
czo6Y29udmVydFRvQmxvYihJbWFnZUVuY29kZU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJy
ZWRQcgogdm9pZCBPZmZzY3JlZW5DYW52YXM6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByZWN0
KQogewogICAgIGNsZWFyQ29waWVkSW1hZ2UoKTsKKyAgICBzY2hlZHVsZUNvbW1pdFRvUGxhY2Vo
b2xkZXJDYW52YXMoKTsKICAgICBub3RpZnlPYnNlcnZlcnNDYW52YXNDaGFuZ2VkKHJlY3QpOwog
fQogCkBAIC0zMDEsNyArMzIzLDczIEBAIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVl
bkNhbnZhcz4gT2Zmc2NyZWVuQ2FudmFzOjpkZXRhY2goKQogCiAgICAgbV9kZXRhY2hlZCA9IHRy
dWU7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4odGFr
ZUltYWdlQnVmZmVyKCksIHNpemUoKSwgb3JpZ2luQ2xlYW4oKSk7CisgICAgYXV0byBkZXRhY2hl
ZCA9IG1ha2VVbmlxdWU8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+KHRha2VJbWFnZUJ1ZmZlcigp
LCBzaXplKCksIG9yaWdpbkNsZWFuKCkpOworICAgIGRldGFjaGVkLT5tX3BsYWNlaG9sZGVyQ2Fu
dmFzID0gc3RkOjpleGNoYW5nZShtX3BsYWNlaG9sZGVyQ2FudmFzLCBudWxscHRyKTsKKworICAg
IHJldHVybiBkZXRhY2hlZDsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFBsYWNlaG9s
ZGVyQ2FudmFzKEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMpCit7CisgICAgQVNTRVJUKCFtX2Nv
bnRleHQpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV9wbGFjZWhvbGRlckNh
bnZhcyA9IG1ha2VXZWFrUHRyKGNhbnZhcyk7Cit9CisKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpCit7CisgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2NvbW1pdExvY2spOworCisgICAgICAgIGlmIChtX3BsYWNl
aG9sZGVyQ2FudmFzICYmIG1faGFzUGVuZGluZ0NvbW1pdERhdGEpIHsKKyAgICAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShG
bG9hdFNpemUobV9wZW5kaW5nQ29tbWl0RGF0YS0+c2l6ZSgpKSwgUmVuZGVyaW5nTW9kZTo6VW5h
Y2NlbGVyYXRlZCk7CisgICAgICAgICAgICBidWZmZXItPnB1dEltYWdlRGF0YShBbHBoYVByZW11
bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCAqbV9wZW5kaW5nQ29tbWl0RGF0YSwgSW50UmVj
dChJbnRQb2ludCgpLCBtX3BlbmRpbmdDb21taXREYXRhLT5zaXplKCkpKTsKKyAgICAgICAgICAg
IG1fcGxhY2Vob2xkZXJDYW52YXMtPnNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5KFdURk1vdmUo
YnVmZmVyKSk7CisgICAgICAgICAgICBtX2hhc1BlbmRpbmdDb21taXREYXRhID0gZmFsc2U7Cisg
ICAgICAgIH0KKworICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnBvc3RUYXNrKFty
ZWxlYXNlVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JikgeyB9KTsKKyAgICB9KTsKK30KKwordm9pZCBPZmZzY3JlZW5DYW52YXM6OmNvbW1pdFRv
UGxhY2Vob2xkZXJDYW52YXMoKQoreworICAgIGF1dG8qIGltYWdlQnVmZmVyID0gYnVmZmVyKCk7
CisgICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6
IFRyYW5zZmVyIHRleHR1cmUgb3ZlciBpZiB3ZSdyZSB1c2luZyBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZworICAgIGlmIChtX2NvbnRleHQgJiYgKG1fY29udGV4dC0+aXNXZWJHTCgpIHx8IG1fY29u
dGV4dC0+aXNBY2NlbGVyYXRlZCgpKSkKKyAgICAgICAgbV9jb250ZXh0LT5wYWludFJlbmRlcmlu
Z1Jlc3VsdHNUb0NhbnZhcygpOworCisgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAg
IGlmIChtX3BsYWNlaG9sZGVyQ2FudmFzKSB7CisgICAgICAgICAgICBpZiAoYXV0byBidWZmZXJD
b3B5ID0gaW1hZ2VCdWZmZXItPmNvcHlSZWN0VG9CdWZmZXIoRmxvYXRSZWN0KEZsb2F0UG9pbnQo
KSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb2xvclNwYWNlOjpTUkdCLCBpbWFnZUJ1
ZmZlci0+Y29udGV4dCgpKSkKKyAgICAgICAgICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzLT5z
ZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eShXVEZNb3ZlKGJ1ZmZlckNvcHkpKTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X2NvbW1pdExvY2spOworCisgICAgYm9vbCBzaG91bGRQdXNoQnVmZmVyID0gIW1faGFzUGVuZGlu
Z0NvbW1pdERhdGE7CisgICAgbV9wZW5kaW5nQ29tbWl0RGF0YSA9IGltYWdlQnVmZmVyLT5nZXRJ
bWFnZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgSW50UmVjdChJ
bnRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSkpOworICAgIG1faGFzUGVuZGlu
Z0NvbW1pdERhdGEgPSB0cnVlOworCisgICAgaWYgKHNob3VsZFB1c2hCdWZmZXIpCisgICAgICAg
IHB1c2hCdWZmZXJUb1BsYWNlaG9sZGVyKCk7Cit9CisKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpz
Y2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMoKQoreworICAgIGlmICghbV9oYXNTY2hl
ZHVsZWRDb21taXQpIHsKKyAgICAgICAgYXV0byYgc2NyaXB0Q29udGV4dCA9ICpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7CisgICAgICAgIG1faGFzU2NoZWR1bGVkQ29tbWl0ID0gdHJ1ZTsKKyAg
ICAgICAgc2NyaXB0Q29udGV4dC5wb3N0VGFzayhbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCB0aGlzXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAgICAgICAgICAgIG1faGFz
U2NoZWR1bGVkQ29tbWl0ID0gZmFsc2U7CisgICAgICAgICAgICBjb21taXRUb1BsYWNlaG9sZGVy
Q2FudmFzKCk7CisgICAgICAgIH0pOworICAgIH0KIH0KIAogQ1NTVmFsdWVQb29sJiBPZmZzY3Jl
ZW5DYW52YXM6OmNzc1ZhbHVlUG9vbCgpCkBAIC0zNTEsNiArNDM5LDcgQEAgdm9pZCBPZmZzY3Jl
ZW5DYW52YXM6OnJlc2V0KCkKICAgICBjbGVhckNvcGllZEltYWdlKCk7CiAKICAgICBub3RpZnlP
YnNlcnZlcnNDYW52YXNSZXNpemVkKCk7CisgICAgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVy
Q2FudmFzKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2Ny
ZWVuQ2FudmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCmluZGV4
IDNlNWUzMGE1NzZlMzFhOTMyYTZmMTQ2YTk3ZWJmMDhkZTlhMjVmMzkuLmEzZDE2MTBlMGUxZDll
NmM5ZmUzYWI1MWUwZjdkZDVjZjQ2NzA2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvT2Zmc2NyZWVuQ2FudmFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5D
YW52YXMuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCw3ICs0NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBDU1NWYWx1ZVBvb2w7CiBj
bGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKIGNsYXNzIElt
YWdlQml0bWFwOworY2xhc3MgSW1hZ2VEYXRhOwogY2xhc3MgT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOwogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0OwogCkBAIC01NywxNyAr
NjAsMjEgQEAgdXNpbmcgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dCA9IFZhcmlhbnQ8UmVmUHRy
PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQKIGNsYXNzIERldGFjaGVkT2Zmc2NyZWVu
Q2FudmFzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXRhY2hlZE9mZnNjcmVlbkNhbnZh
cyk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgZnJpZW5kIGNsYXNzIE9mZnNj
cmVlbkNhbnZhczsKKwogcHVibGljOgogICAgIERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzKHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiwgY29uc3QgSW50U2l6ZSYsIGJvb2wgb3JpZ2luQ2xl
YW4pOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiB0YWtlSW1hZ2VCdWZmZXIo
KTsKICAgICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAg
ICAgYm9vbCBvcmlnaW5DbGVhbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luQ2xlYW47IH0KKyAg
ICBXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiB0YWtlUGxhY2Vob2xkZXJDYW52YXMoKTsKIAog
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IG1fYnVmZmVyOwogICAg
IEludFNpemUgbV9zaXplOwogICAgIGJvb2wgbV9vcmlnaW5DbGVhbjsKKyAgICBXZWFrUHRyPEhU
TUxDYW52YXNFbGVtZW50PiBtX3BsYWNlaG9sZGVyQ2FudmFzOwogfTsKIAogY2xhc3MgT2Zmc2Ny
ZWVuQ2FudmFzIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8T2Zmc2NyZWVuQ2FudmFzPiwgcHVi
bGljIENhbnZhc0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwcml2YXRl
IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKQEAgLTg2LDYgKzkzLDcgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIFJlZjxPZmZzY3JlZW5DYW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCk7CiAgICAgc3RhdGljIFJl
ZjxPZmZzY3JlZW5DYW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjp1
bmlxdWVfcHRyPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPiYmKTsKKyAgICBzdGF0aWMgUmVmPE9m
ZnNjcmVlbkNhbnZhcz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBIVE1MQ2FudmFz
RWxlbWVudCYpOwogICAgIHZpcnR1YWwgfk9mZnNjcmVlbkNhbnZhcygpOwogCiAgICAgdW5zaWdu
ZWQgd2lkdGgoKSBjb25zdCBmaW5hbDsKQEAgLTk1LDcgKzEwMyw3IEBAIHB1YmxpYzoKIAogICAg
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIHJlbmRlcmluZ0NvbnRleHQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIAotICAgIEV4Y2VwdGlvbk9yPE9mZnNjcmVlblJl
bmRlcmluZ0NvbnRleHQ+IGdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFJlbmRlcmlu
Z0NvbnRleHRUeXBlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVu
dHMpOworICAgIEV4Y2VwdGlvbk9yPE9wdGlvbmFsPE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQ+
PiBnZXRDb250ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZW5kZXJpbmdDb250ZXh0VHlwZSwg
VmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKTsKICAgICBFeGNl
cHRpb25PcjxSZWZQdHI8SW1hZ2VCaXRtYXA+PiB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsKICAg
ICB2b2lkIGNvbnZlcnRUb0Jsb2IoSW1hZ2VFbmNvZGVPcHRpb25zJiYsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYpOwogCkBAIC0xMDksNiArMTE3LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuRGV0
YWNoKCkgY29uc3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFz
PiBkZXRhY2goKTsKIAorICAgIHZvaWQgY29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworCiAg
ICAgQ1NTVmFsdWVQb29sJiBjc3NWYWx1ZVBvb2woKTsKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OnJlZjsKQEAgLTEzOCw2ICsxNDgsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY2xlYXJDb3Bp
ZWRJbWFnZSgpIGNvbnN0OwogCisgICAgdm9pZCBzZXRQbGFjZWhvbGRlckNhbnZhcyhIVE1MQ2Fu
dmFzRWxlbWVudCYpOworICAgIHZvaWQgcHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKTsKKyAgICB2
b2lkIHNjaGVkdWxlQ29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworCiAgICAgc3RkOjp1bmlx
dWVfcHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQ+IG1fY29udGV4dDsKIAogICAgIC8vIG1faGFz
Q3JlYXRlZEltYWdlQnVmZmVyIG1lYW5zIHdlIHRyaWVkIHRvIG1hbGxvYyB0aGUgYnVmZmVyLiBX
ZSBkaWRuJ3QgbmVjZXNzYXJpbHkgZ2V0IGl0LgpAQCAtMTQ2LDYgKzE2MCwxMyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9kZXRhY2hlZCB7IGZhbHNlIH07CiAKICAgICBtdXRhYmxlIFJlZlB0cjxJ
bWFnZT4gbV9jb3BpZWRJbWFnZTsKKworICAgIGJvb2wgbV9oYXNTY2hlZHVsZWRDb21taXQgeyBm
YWxzZSB9OworICAgIFdlYWtQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IG1fcGxhY2Vob2xkZXJDYW52
YXM7CisKKyAgICBtdXRhYmxlIExvY2sgbV9jb21taXRMb2NrOworICAgIGJvb2wgbV9oYXNQZW5k
aW5nQ29tbWl0RGF0YSB7IGZhbHNlIH07CisgICAgUmVmUHRyPEltYWdlRGF0YT4gbV9wZW5kaW5n
Q29tbWl0RGF0YTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4
IDg2ZDc4NGEzNTFkNTg0Y2U2ZWYzYTY5OTJlN2VjMjA2ZTY4ZDk2MDAuLjBiOWEwNDQxYzE2YmMz
ODFiZjY4NzA2ZTcyMjMwYmI1NDYzYWVmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcApAQCAtNDgsNiArNDgsMTEgQEAgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OjpPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoQ2FudmFzQmFzZSYKIAogT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp+T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEKCkgPSBkZWZhdWx0OwogCit2b2lkIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6Y29tbWl0KCkKK3sKKyAgICBkb3duY2FzdDxPZmZzY3JlZW5DYW52YXM+KGNhbnZhc0Jh
c2UoKSkuY29tbWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRleCBjY2IxNmU5
MmNkMmJkMDRjYTU2OGJjZjYxNjMyNzkyZTY5NDkzM2UwLi5lZTkyOWFmMmIyOWRhZTgyNjNkZTFk
YWY2MGRkMTY0NTQyNTdlOWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtNDIs
NiArNDIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc09mZnNjcmVlbjJkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgT2Zmc2NyZWVuQ2FudmFzJiBjYW52YXMoKSBjb25z
dCB7IHJldHVybiBkb3duY2FzdDxPZmZzY3JlZW5DYW52YXM+KGNhbnZhc0Jhc2UoKSk7IH0KKwor
ICAgIHZvaWQgY29tbWl0KCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmlkbAppbmRleCAwNGVjNmE3NTE5YjE0YTc1YTEyNTY0ZjVlOWRl
YjkxMGVjOGJmMTM5Li5kN2ZlYzg3OTkzNjkwNDRiZGE3MmRlMGViNWM1M2Q2MzdhZTAyNzA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNj
cmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKQEAgLTI3LDE0ICsyNywxMyBAQAogICAg
IEN1c3RvbUlzUmVhY2hhYmxlLAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9T2Zmc2NyZWVuQ2FudmFz
LAogICAgIENvbmRpdGlvbmFsPU9GRlNDUkVFTl9DQU5WQVMsCi0gICAgRXhwb3NlZD0oV2luZG93
KSwgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcyAtIHNob3VsZCBiZSBXaW5kb3csV29ya2VyCisg
ICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAg
ICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgLy8gQ2FsbFRyYWNpbmdDYWxsYmFjaz1yZWNv
cmRDYW52YXNBY3Rpb24sIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52YXMuCiBdIGludGVyZmFjZSBP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBPZmZzY3JlZW5DYW52YXMgY2FudmFzOwotICAgIC8vIEZJWE1FOiBPZmZzY3JlZW5DYW52YXMu
Ci0gICAgLy8gdm9pZCBjb21taXQoKTsKKyAgICB2b2lkIGNvbW1pdCgpOwogCiAgICAgLy8gSW5z
cGVjdG9yLW9ubHkuCiAgICAgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQuY3BwCmluZGV4IDA5MmM0YWVmNjBhNTUxM2Y0NzZjN2Q3MTQzM2ViZTcxYWZhNzgxZDQuLjFl
YzdhMjRlZGY0NDUyMTFiYmJhOTk0MmU4MTQ2YmIxZTdmNjg0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0
LmNwcApAQCAtMjYsNiArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQ
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKIAorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FO
VkFTKQorCisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJPZmZzY3Jl
ZW5DYW52YXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0zNyw0ICs0MSwxNCBAQCBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQ6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dChDYW52YXNCYXNlJiBjYW52YXMpCiB7CiB9
CiAKK0hUTUxDYW52YXNFbGVtZW50KiBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ6OmNhbnZh
cygpIGNvbnN0Cit7CisgICAgYXV0byYgYmFzZSA9IGNhbnZhc0Jhc2UoKTsKKyAgICBpZiAoIWlz
PEhUTUxDYW52YXNFbGVtZW50PihiYXNlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
cmV0dXJuICZkb3duY2FzdDxIVE1MQ2FudmFzRWxlbWVudD4oYmFzZSk7CiB9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJl
bmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVy
UmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGMzNDhlNTE4OTUyY2I5ZDQxNWM2YmQxNzk1ZjIxNmRj
YjE2NWQyNTkuLjY0NTA5MTQ1OWRkMDFjYzJhNzk3N2RjMDAzYjQ1MjY1ZGU1YmE3ZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dC5oCkBAIC0yNSwxNSArMjUsMjEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBF
TkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKKwogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBPZmZzY3JlZW5DYW52YXM7CisK
IGNsYXNzIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFBsYWNlaG9sZGVy
UmVuZGVyaW5nQ29udGV4dCk7CiBwdWJsaWM6CiAgICAgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250
ZXh0KENhbnZhc0Jhc2UmKTsKIAorICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMoKSBjb25z
dDsKKwogcHJpdmF0ZToKICAgICBib29sIGlzUGxhY2Vob2xkZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CiB9OwpAQCAtNDEsMyArNDcsNSBAQCBwcml2YXRlOgogfQogCiBTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0NBTlZBU1JFTkRFUklOR0NPTlRFWFQoV2ViQ29yZTo6UGxhY2Vob2xk
ZXJSZW5kZXJpbmdDb250ZXh0LCBpc1BsYWNlaG9sZGVyKCkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMWNlNTZjZDQ2ZDY4OWQxZDA0ZjI5MmM4NGJlMjFjMDgy
MGY1MTU1ZC4uNzk2MzgxNGE4M2IxNjAwNTA1ZjcyMzIzNjI1Yzg1ZmFjYjI4ZmJmMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDItMTMgIENo
cmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcGxlbWVudCBDYW52YXMu
dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gYW5kIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jb21taXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMjc5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMucmVzaXplLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
b2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJh
bnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQ6CisK
IDIwMjAtMDQtMjYgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAg
ICAgICAgIEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlIHNob3VsZCB1
c2UgbmV3VGFyZ2V0J3MgZ2xvYmFsT2JqZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9m
ZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKaW5kZXgg
NmYxYzcwNTBlNWU4MjhjM2YzMjNmMjk1ZmIxZDJhNGZlYzhjMDA3Yy4uYjNiMzlhN2E5MWZjMGFj
ODU1N2E5YTI4YzJlYmI2MjRiNWU0NzcxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dApAQCAt
MSw0ICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogRXJyb3I6IGFzc2VydF9lcXVhbHM6IEdyZWVu
IGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCA1KSBleHBlY3RlZCAyNTUgYnV0IGdvdCAwCiAK
LUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBp
dHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVyLiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zm
c2NyZWVuJyBpcyB1bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBh
biBPZmZzY3JlZW5DYW52YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52
YXNFbGVtZW50IGlzIGEgbm9vcC4gY3R4LmNvbW1pdCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdj
dHguY29tbWl0KCknLCAnY3R4LmNvbW1pdCcgaXMgdW5kZWZpbmVkKQorUEFTUyBUZXN0IHRoYXQg
Y2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBp
dHMgcGxhY2Vob2xkZXIuIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBjb21taXQgb24gYW4gT2Zm
c2NyZWVuQ2FudmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVkIGZyb20gYSBIVE1MQ2FudmFzRWxl
bWVudCBpcyBhIG5vb3AuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0CmluZGV4IDQzNDMz
MmNlNTFhYmZlMzcxMmQwZTI0OTU4YTgwNTI4MWE2MDcwNzQuLmM0MjE4ZWNhYzI3M2QwNTQ3ZjVl
NDljM2QxMjNmZGFmODNmM2VhYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsNCBAQAogCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNv
bW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gcGxhY2Vob2xkZXIu
dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vo
b2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBUZXN0IHRoYXQgY2FsbGlu
ZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBpdHMgcGxh
Y2Vob2xkZXIuIAogUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBjb21taXQgb24gYW4gT2Zmc2NyZWVu
Q2FudmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVkIGZyb20gYSBIVE1MQ2FudmFzRWxlbWVudCB0
aHJvd3MgYW4gZXhjZXB0aW9uIGluIGEgd29ya2VyLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNh
bnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBl
Y3RlZC50eHQKaW5kZXggYmQ5YWEwZTE2NzdlOTQ5NDgwYjIyMzMxMjIzOGY0NzA5OWVmMTM3Ny4u
YzU3YTI5M2VjNGE5YmQ2OGM2ZDkxZjlhYmM4MjU1NGM0ZGY4OGY2YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFz
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNv
bnRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIFRlc3QgdGhhdCBnZXRD
b250ZXh0IHdpdGggdW4tc3VwcG9ydGVkIHN0cmluZyB0aHJvd3MgYSBUeXBlRXJyb3IuIAogRkFJ
TCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBjb3Jy
ZWN0IHJlc3VsdHMgQXJndW1lbnQgMSAoJ2NvbnRleHRUeXBlJykgdG8gT2Zmc2NyZWVuQ2FudmFz
LmdldENvbnRleHQgbXVzdCBiZSBvbmUgb2Y6ICIyZCIsICJ3ZWJnbCIKLUZBSUwgVGVzdCB0aGF0
IGdldENvbnRleHQgdHdpY2Ugd2l0aCBkaWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVs
bCB0aGUgc2Vjb25kIHRpbWUgVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorUEFT
UyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUg
cmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSAKIFBBU1MgVGVzdCB0aGF0IDJkY29udGV4dC5j
YW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAogUEFTUyBU
ZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBP
ZmZzY3JlZW5DYW52YXMgCiBGQUlMIFRlc3QgdGhhdCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQgd2l0aCBhbHBoYSBkaXNhYmxlZCBtYWtlcyB0aGUgT2Zmc2NyZWVuQ2FudmFzIG9w
YXF1ZSBhc3NlcnRfYXBwcm94X2VxdWFsczogR3JlZW4gY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQg
KDUsIDUpIGV4cGVjdGVkIDEyNyArLy0gMiBidXQgZ290IDI1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3Ro
ZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29m
ZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNv
bnRleHQud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBmMjI0Y2U3NGVlYTg3OGNmNzZhMTMzM2Jj
YWUxYmFhMTBmZDRmNjY3Li4zOWZjMmNmOWFhZGRlN2YyZGIxYjNlMmUzMzY4OWVkNzA3MTc4Y2Ex
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdl
dGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3
ICsxLDcgQEAKIAogUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHVuLXN1cHBvcnRlZCBz
dHJpbmcgdGhyb3dzIGEgVHlwZUVycm9yLiAKLUZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0
aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRzIENhbid0IGZpbmQgdmFy
aWFibGU6IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRAotRkFJTCBUZXN0IHRoYXQg
Z2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxs
IHRoZSBzZWNvbmQgdGltZSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuCitGQUlM
IFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJl
Y3QgcmVzdWx0cyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBXZWJHTFJlbmRlcmluZ0NvbnRleHQKK1BB
U1MgVGVzdCB0aGF0IGdldENvbnRleHQgdHdpY2Ugd2l0aCBkaWZmZXJlbnQgY29udGV4dCB0eXBl
IHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRpbWUgCiBQQVNTIFRlc3QgdGhhdCAyZGNvbnRleHQu
Y2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKIFBBU1Mg
VGVzdCB0aGF0IHdlYmdsY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwg
T2Zmc2NyZWVuQ2FudmFzIAogRkFJTCBUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEIHdpdGggYWxwaGEgZGlzYWJsZWQgbWFrZXMgdGhlIE9mZnNjcmVlbkNhbnZhcyBv
cGFxdWUgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IEdyZWVuIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0
ICg1LCA1KSBleHBlY3RlZCAxMjcgKy8tIDIgYnV0IGdvdCAyNTUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90
aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNh
bnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVk
LnR4dAppbmRleCBmNDU1MDcxNzJiNzZiYWYwNmFiMGU0NGVkMTVjZTMzMDZhZDQ4MThhLi42YzEx
YzhkZjRiNjVhNzkwMGFkZGM3NDZhYTlhMGVlNzc5NDE4NjFlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4t
Y2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0
ZWQudHh0CkBAIC0yLDExICsyLDExIEBACiBQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhl
IHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mg
d2hlbiB0aGVyZSBpcyBubyBjb250ZXh0IGF0dGFjaGVkLiAKIFBBU1MgVmVyaWZ5IHRoYXQgd3Jp
dGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNh
bnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIGEgMmQgY29udGV4dCBhdHRhY2hlZC4gCiBQQVNTIFZl
cmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBh
biBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hlbiB0aGVyZSBpcyBhIHdlYmdsIGNvbnRleHQgYXR0
YWNoZWQuIAotRkFJTCBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQg
YXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gcGxh
Y2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBWZXJpZnkg
dGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vo
b2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gZXZlbiB3aGVuIG5vdCBjaGFuZ2luZyB0
aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
bicgaXMgdW5kZWZpbmVkKQorUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBv
ciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNl
cHRpb24gCitQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBh
dHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBldmVu
IHdoZW4gbm90IGNoYW5naW5nIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlLiAKIFBBU1MgVmVy
aWZ5IHRoYXQgcmVzaXppbmcgYSAyZCBjb250ZXh0IHJlc2V0cyBpdHMgc3RhdGUuIAogUEFTUyBW
ZXJpZnkgdGhhdCBzZXR0aW5nIHRoZSBzaXplIG9mIGEgMmQgY29udGV4dCB0byB0aGUgc2FtZSBz
aXplIGl0IGFscmVhZHkgaGFkIHJlc2V0cyBpdHMgc3RhdGUuIAotRkFJTCBWZXJpZnkgdGhhdCBy
ZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBhIDJkIGNvbnRleHQgcHJvcGFnYXRlcyB0
aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25vdXNseS4gcGxh
Y2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJTCBWZXJpZnkg
dGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBhIHdlYmdsIGNvbnRleHQgcHJv
cGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25v
dXNseS4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdw
bGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJ
TCBWZXJpZnkgdGhhdCBkcmF3SW1hZ2UgdXNlcyB0aGUgc2l6ZSBvZiB0aGUgZnJhbWUgYXMgdGhl
IGludGluc2ljIHNpemUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMuIHBsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVmVyaWZ5IHRoYXQgcmVzaXppbmcg
YW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSAyZCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5ldyBz
aXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHkuIAorUEFTUyBWZXJp
ZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBhIHdlYmdsIGNvbnRleHQg
cHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hy
b25vdXNseS4gCitQQVNTIFZlcmlmeSB0aGF0IGRyYXdJbWFnZSB1c2VzIHRoZSBzaXplIG9mIHRo
ZSBmcmFtZSBhcyB0aGUgaW50aW5zaWMgc2l6ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcy4gCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
b2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJh
bnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVlbi1jYW52YXMvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhw
ZWN0ZWQudHh0CmluZGV4IDRmNDJlNTA3NDI4MjgwYTJlYTE5Zjc2M2NmOGM5NjE5YWU1YmIzMDUu
LjI5NjA0ODViN2I2YWQ2ZjcwNjJkZWY5ZmU3Yjc5ZTVjYjc0YjgzYmUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZh
cy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRv
Lm9mZnNjcmVlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29m
ZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dApA
QCAtMSw1ICsxLDUgQEAKIAotRkFJTCBUZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVy
YXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5k
IGhlaWdodCBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywg
J3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1G
QUlMIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMg
dGhhdCBoYXMgYWxyZWFkeSB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0aHJvd3MgYW4gZXhjZXB0
aW9uIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxh
Y2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKLUZBSUwg
VGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gdHdpY2UgdGhyb3dz
IGFuIGV4Y2VwdGlvbiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBu
b3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
bigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmlu
ZWQpCitQQVNTIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IAorUEFT
UyBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRo
YXQgaGFzIGFscmVhZHkgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdGhyb3dzIGFuIGV4Y2VwdGlv
biAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gdHdp
Y2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9vZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9v
ZmZzY3JlZW4tY2FudmFzL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFu
c2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0CmluZGV4IDJjZDNkYjRiMjc2
ZGMxYzExZDFlY2RiMDQ4YjNiNzkwOTNlZWUwZGEuLjMzYjg1MzJjYjJlMDA0MTRhNmQ1NGE2ZGE3
OWFlNzZlYWY0NjU2M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcy90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL29mZnNjcmVl
bi1jYW52YXMvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29u
dHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwg
VGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgd2hlbiBpdCBpcyB0cmFu
c2ZlcnJlZCB0byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1
bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhv
bGRlciBjYW52YXMgdGhhdCBpcyB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0byBhbiBPZmZzY3Jl
ZW5DYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgd2hlbiB0aGUgT2Zmc2NyZWVuQ2FudmFzIGlz
IHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zm
c2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4n
IGlzIHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgd2hlbiBpdHMgYXNzb2NpYXRlZCBP
ZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xk
ZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBUZXN0IHRoYXQgYW4gT2Zmc2Ny
ZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNv
cnJlY3Qgd2lkdGggYW5kIGhlaWdodCB3aGVuIGl0IGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2Vy
IAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2Fu
dmFzIHRoYXQgaXMgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdG8gYW4gT2Zmc2NyZWVuQ2FudmFz
IHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gdGhlIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2Zl
cnJlZCB0byBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgd2hlbiBpdHMgYXNzb2NpYXRl
ZCBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406369</attachid>
            <date>2020-08-11 02:19:57 -0700</date>
            <delta_ts>2020-08-12 01:33:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200811101955.patch</filename>
            <type>text/plain</type>
            <size>39788</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk1NzMwNGI0YTAwMjk2
ODJjNTFkOGI1ODlmMGM3YTBlZGViNmFmOC4uNzU2OWNlOWYxMTVjYjU4N2Y3MmIwOGNkZTVlNDlh
NzgxNzc5OWU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgSFRNTENhbnZhc0VsZW1lbnQudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gYW5kCisgICAgICAgIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jb21taXQu
IFRoaXMgYWxsb3dzIGZvcgorICAgICAgICAoc3luY2hyb25vdXMpIGRpc3BsYXkgb2YgYXN5bmNo
cm9ub3VzbHkgcmVuZGVyZWQgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIGNvbnRlbnQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2Fu
dmFzRWxlbWVudDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRJ
bWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6aXNDb250cm9sbGVkQnlPZmZzY3JlZW4gY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
ZXRhY2hlZE9mZnNjcmVlbkNhbnZhczo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZh
cyk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVl
bkNhbnZhczo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0
UGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpw
dXNoQnVmZmVyVG9QbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52
YXM6OmNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpzY2hlZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9s
ZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAyMC0wOC0xMSAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gZ3N0
LWZ1bGwgc3RhbmRhbG9uZSBsaWJyYXJ5IHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAKaW5kZXggYzRjODg5MDQ5ZjE2MzBkMjM0YTBhZmU3MzAyMjUwNmZm
ZjZkNjM3Zi4uM2YzNzcxZWM1YWFkNDJkYWFjYmQyOWY2YjgyZWI1MjlkMjlmM2U1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAK
ICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTUNv
bnZlcnREaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1
ZGUgIlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1l
bnQuaCIKICNpbmNsdWRlICJSZW5kZXJIVE1MQ2FudmFzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VM
b2FkT2JzZXJ2ZXIuaCIKQEAgLTE4NCw3ICsxODUsNyBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50
OjpjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxDYW52
YXNFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgdmFsdWUpCiB7Ci0gICAgaWYgKG1fY29udGV4
dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKSkKKyAgICBpZiAoaXNDb250cm9sbGVkQnlP
ZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH07CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBB
dG9tU3RyaW5nOjpudW1iZXIobGltaXRUb09ubHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1
bHRIZWlnaHQpKSk7CiAgICAgcmV0dXJuIHsgfTsKQEAgLTE5Miw3ICsxOTMsNyBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQog
CiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQg
dmFsdWUpCiB7Ci0gICAgaWYgKG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIo
KSkKKyAgICBpZiAoaXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbih3aWR0aEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcihsaW1pdFRvT25seUhU
TUxOb25OZWdhdGl2ZSh2YWx1ZSwgZGVmYXVsdFdpZHRoKSkpOwogICAgIHJldHVybiB7IH07CkBA
IC01NjYsNyArNTY3LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6ZGlkRHJhdyhjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKIHsKLSAg
ICBpZiAobV9pZ25vcmVSZXNldCkKKyAgICBpZiAobV9pZ25vcmVSZXNldCB8fCBpc0NvbnRyb2xs
ZWRCeU9mZnNjcmVlbigpKQogICAgICAgICByZXR1cm47CiAKICAgICBib29sIGhhZEltYWdlQnVm
ZmVyID0gaGFzQ3JlYXRlZEltYWdlQnVmZmVyKCk7CkBAIC03NjgsNiArNzY5LDE3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IEhUTUxDYW52YXNFbGVtZW50Ojp0b0Jsb2IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgUmVmCiAgICAgcmV0dXJuIHsgfTsKIH0KIAorI2lmIEVOQUJMRShPRkZT
Q1JFRU5fQ0FOVkFTKQorRXhjZXB0aW9uT3I8UmVmPE9mZnNjcmVlbkNhbnZhcz4+IEhUTUxDYW52
YXNFbGVtZW50Ojp0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQoreworICAgIGlmIChtX2NvbnRleHQpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgbV9jb250ZXh0ID0gbWFrZVVuaXF1
ZTxQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQ+KCp0aGlzKTsKKyAgICByZXR1cm4gT2Zmc2Ny
ZWVuQ2FudmFzOjpjcmVhdGUoY29udGV4dCwgKnRoaXMpOworfQorI2VuZGlmCisKIFJlZlB0cjxJ
bWFnZURhdGE+IEhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEoKQogewogI2lmIEVOQUJM
RShXRUJHTCkKQEAgLTk0NSw4ICs5NTcsMjQgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFn
ZUJ1ZmZlckFuZE1hcmtEaXJ0eShzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVy
KQogeworICAgIEludFNpemUgb2xkU2l6ZSA9IHNpemUoKTsKICAgICBtX2hhc0NyZWF0ZWRJbWFn
ZUJ1ZmZlciA9IHRydWU7CiAgICAgc2V0SW1hZ2VCdWZmZXIoV1RGTW92ZShidWZmZXIpKTsKKwor
ICAgIGlmIChpc0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpICYmIG9sZFNpemUgIT0gc2l6ZSgpKSB7
CisgICAgICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBB
dG9tU3RyaW5nOjpudW1iZXIod2lkdGgoKSkpOworICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKGhlaWdodEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcihoZWlnaHQoKSkp
OworCisgICAgICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOworICAgICAgICBp
ZiAoaXM8UmVuZGVySFRNTENhbnZhcz4ocmVuZGVyZXIpKSB7CisgICAgICAgICAgICBhdXRvJiBj
YW52YXNSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckhUTUxDYW52YXM+KCpyZW5kZXJlcik7Cisg
ICAgICAgICAgICBjYW52YXNSZW5kZXJlci5jYW52YXNTaXplQ2hhbmdlZCgpOworICAgICAgICAg
ICAgY2FudmFzUmVuZGVyZXIuY29udGVudENoYW5nZWQoQ2FudmFzQ2hhbmdlZCk7CisgICAgICAg
IH0KKworICAgICAgICBub3RpZnlPYnNlcnZlcnNDYW52YXNSZXNpemVkKCk7CisgICAgfQorCiAg
ICAgZGlkRHJhdyhGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBzaXplKCkpKTsKIH0KIApAQCAtMTA1
Miw0ICsxMDgwLDkgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cHJlcGFyZUZvckRpc3BsYXko
KQogI2VuZGlmCiB9CiAKK2Jvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzQ29udHJvbGxlZEJ5T2Zm
c2NyZWVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNQ
bGFjZWhvbGRlcigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmgKaW5kZXggODIzNGZkOGIwOTUwMWYzMGFkYjE3MTY1Y2E0YTJjY2U5NzcwMzBhYS4uNmI0MWM0
NjMyMTI5ZGI2MGQyMTUzZDFlOTBkZDFiNThlN2FmMzJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJbWFnZUJ1ZmZlcjsK
IGNsYXNzIEltYWdlRGF0YTsKIGNsYXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgTWVkaWFTdHJlYW07
CitjbGFzcyBPZmZzY3JlZW5DYW52YXM7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OwogY2xhc3MgR1BVQ2FudmFzQ29udGV4dDsKIHN0cnVjdCBVbmNhY2hlZFN0cmluZzsKQEAgLTk3
LDYgKzk4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2Fj
aGVkU3RyaW5nPiB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1ZhbHVl
IHF1YWxpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2FjaGVkU3RyaW5n
PiB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gdG9CbG9iKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8QmxvYkNhbGxiYWNrPiYmLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CisjaWYgRU5BQkxF
KE9GRlNDUkVFTl9DQU5WQVMpCisgICAgRXhjZXB0aW9uT3I8UmVmPE9mZnNjcmVlbkNhbnZhcz4+
IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyNl
bmRpZgogCiAgICAgLy8gVXNlZCBmb3IgcmVuZGVyaW5nCiAgICAgdm9pZCBkaWREcmF3KGNvbnN0
IEZsb2F0UmVjdCYpIGZpbmFsOwpAQCAtMTM1LDYgKzEzOSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldElzU25hcHNob3R0aW5nKGJvb2wgaXNTbmFwc2hvdHRpbmcpIHsgbV9pc1NuYXBzaG90dGlu
ZyA9IGlzU25hcHNob3R0aW5nOyB9CiAgICAgYm9vbCBpc1NuYXBzaG90dGluZygpIGNvbnN0IHsg
cmV0dXJuIG1faXNTbmFwc2hvdHRpbmc7IH0KIAorICAgIGJvb2wgaXNDb250cm9sbGVkQnlPZmZz
Y3JlZW4oKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmlkbAppbmRleCA3MThhOWVhN2E0Yzk3MTVhMmU3ODA0Nzc1NTJjMmI1ZjUxM2E5
YTBhLi5hZTRmY2FhYzI2OWY2YmMzZjU0MGViZDFlNDdiNTg5MjdkYjNlZWVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbApAQCAtNTAsNiArNTAsNyBAQCB0eXBl
ZGVmICgKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHRvRGF0YVVSTChvcHRp
b25hbCBET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOwogICAgIFtDYWxsV2l0
aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB0b0Jsb2Io
QmxvYkNhbGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwg
YW55IHF1YWxpdHkpOworICAgIFtDb25kaXRpb25hbD1PRkZTQ1JFRU5fQ0FOVkFTLCBDYWxsV2l0
aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gT2Zmc2NyZWVuQ2Fu
dmFzIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CiAKICAgICBbQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLCBDYWxsV2l0aD1Eb2N1bWVudCwgTWF5VGhyb3dFeGNlcHRpb24sIE5ld09iamVj
dF0gTWVkaWFTdHJlYW0gY2FwdHVyZVN0cmVhbShvcHRpb25hbCBkb3VibGUgZnJhbWVSZXF1ZXN0
UmF0ZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52
YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCmluZGV4IDli
YmQxOWE0NjZmNjVkNDU4ZWI5ODVhMTVjM2QyNTgyZjVmNDM5ODguLjczNGI3OWQ1ZmFhMDJjNWJh
MmIzY2UwN2YxMzk1NDk3NDQ3Yzk3MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
T2Zmc2NyZWVuQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNh
bnZhcy5jcHAKQEAgLTMxLDExICszMSwxNCBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlUG9vbC5oIgog
I2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAu
aCIKKyNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJKU0Jsb2IuaCIKICNpbmNsdWRl
ICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIK
ICNpbmNsdWRlICJPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKKyNpbmNsdWRl
ICJQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01Niw2ICs1OSwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKQog
ICAgIHJldHVybiBXVEZNb3ZlKG1fYnVmZmVyKTsKIH0KIAorV2Vha1B0cjxIVE1MQ2FudmFzRWxl
bWVudD4gRGV0YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZhcygpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICByZXR1cm4gc3RkOjpleGNoYW5nZSht
X3BsYWNlaG9sZGVyQ2FudmFzLCBudWxscHRyKTsKK30KKwogUmVmPE9mZnNjcmVlbkNhbnZhcz4g
T2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
dW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwgd2lkdGgsIGhlaWdodCkpOwpAQCAtNjgsOSAr
NzcsMjIgQEAgUmVmPE9mZnNjcmVlbkNhbnZhcz4gT2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3QKICAgICBpZiAoIWRldGFjaGVkQ2FudmFz
LT5vcmlnaW5DbGVhbigpKQogICAgICAgICBjbG9uZS0+c2V0T3JpZ2luVGFpbnRlZCgpOwogCisg
ICAgY2FsbE9uTWFpblRocmVhZChbZGV0YWNoZWRDYW52YXMgPSBXVEZNb3ZlKGRldGFjaGVkQ2Fu
dmFzKSwgb2Zmc2NyZWVuQ2FudmFzID0gbWFrZVJlZihjbG9uZS5nZXQoKSldICgpIG11dGFibGUg
eworICAgICAgICBvZmZzY3JlZW5DYW52YXMtPm1fcGxhY2Vob2xkZXJDYW52YXMgPSBkZXRhY2hl
ZENhbnZhcy0+dGFrZVBsYWNlaG9sZGVyQ2FudmFzKCk7CisgICAgICAgIG9mZnNjcmVlbkNhbnZh
cy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayh7IFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2s6OkNsZWFudXBUYXNrLAorICAgICAgICAgICAgW3JlbGVhc2VPZmZzY3JlZW5D
YW52YXMgPSBXVEZNb3ZlKG9mZnNjcmVlbkNhbnZhcyldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JikgeyB9IH0pOworICAgIH0pOworCiAgICAgcmV0dXJuIGNsb25lOwogfQogCitSZWY8T2Zmc2Ny
ZWVuQ2FudmFzPiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzKQoreworICAgIGF1dG8gb2Zmc2Ny
ZWVuID0gYWRvcHRSZWYoKm5ldyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwgY2FudmFzLndpZHRo
KCksIGNhbnZhcy5oZWlnaHQoKSkpOworICAgIG9mZnNjcmVlbi0+c2V0UGxhY2Vob2xkZXJDYW52
YXMoY2FudmFzKTsKKyAgICByZXR1cm4gb2Zmc2NyZWVuOworfQorCiBPZmZzY3JlZW5DYW52YXM6
Ok9mZnNjcmVlbkNhbnZhcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25l
ZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogICAgIDogQ2FudmFzQmFzZShJbnRTaXplKHdpZHRo
LCBoZWlnaHQpKQogICAgICwgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCkBA
IC0xMTksNyArMTQxLDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFNpemUoY29uc3QgSW50
U2l6ZSYgbmV3U2l6ZSkKICAgICByZXNldCgpOwogfQogCi1FeGNlcHRpb25PcjxPZmZzY3JlZW5S
ZW5kZXJpbmdDb250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2Jh
bE9iamVjdCYgc3RhdGUsIFJlbmRlcmluZ0NvbnRleHRUeXBlIGNvbnRleHRUeXBlLCBWZWN0b3I8
SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpCitFeGNlcHRpb25PcjxPcHRp
b25hbDxPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0Pj4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250
ZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250
ZXh0VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQog
ewogICAgIGlmIChtX2RldGFjaGVkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfTsKQEAgLTEyNywyMiArMTQ5LDIyIEBAIEV4Y2VwdGlvbk9yPE9mZnNjcmVl
blJlbmRlcmluZ0NvbnRleHQ+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xv
YmFsCiAgICAgaWYgKGNvbnRleHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpfMmQpIHsK
ICAgICAgICAgaWYgKG1fY29udGV4dCkgewogICAgICAgICAgICAgaWYgKCFpczxPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwotICAgICAgICAgICAgcmV0dXJu
IHsgUmVmUHRyPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH07CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9OworICAgICAgICAgICAgcmV0
dXJuIHsgeyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3du
Y2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfSB9
OwogICAgICAgICB9CiAKICAgICAgICAgbV9jb250ZXh0ID0gbWFrZVVuaXF1ZTxPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCp0aGlzKTsKICAgICAgICAgaWYgKCFtX2NvbnRleHQp
Ci0gICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEPiB7IG51bGxwdHIgfSB9OworICAgICAgICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxv
cHQgfSB9OwogCi0gICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RD4oKm1fY29udGV4dCkgfSB9OworICAgICAgICByZXR1cm4geyB7IFJlZlB0cjxPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkgfSB9IH07CiAgICAgfQogI2lmIEVOQUJMRShXRUJH
TCkKICAgICBpZiAoY29udGV4dFR5cGUgPT0gUmVuZGVyaW5nQ29udGV4dFR5cGU6OldlYmdsKSB7
CiAgICAgICAgIGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgICAgIGlmICghaXM8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0PigqbV9jb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4o
Km1fY29udGV4dCkgfSB9OworICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4
dD4oKm1fY29udGV4dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8V2ViR0xS
ZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2Nv
bnRleHQpIH0gfSB9OworICAgICAgICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9Owog
ICAgICAgICB9CiAKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3Rh
dGUudm0oKSk7CkBAIC0xNTEsMTMgKzE3MywxMyBAQCBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5k
ZXJpbmdDb250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbAog
CiAgICAgICAgIG1fY29udGV4dCA9IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSgq
dGhpcywgYXR0cmlidXRlcywgIndlYmdsIik7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAg
ICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyBudWxscHRy
IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKIAotICAgICAg
ICByZXR1cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJH
TFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgcmV0dXJuIHsgeyBS
ZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ+KCptX2NvbnRleHQpIH0gfSB9OwogICAgIH0KICNlbmRpZgogCi0gICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciB9OwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VCaXRtYXA+PiBPZmZzY3Jl
ZW5DYW52YXM6OnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpCkBAIC0yNTksNiArMjgxLDcgQEAgdm9p
ZCBPZmZzY3JlZW5DYW52YXM6OmNvbnZlcnRUb0Jsb2IoSW1hZ2VFbmNvZGVPcHRpb25zJiYgb3B0
aW9ucywgUmVmPERlZmVycmVkUHIKIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBjbGVhckNvcGllZEltYWdlKCk7CisgICAgc2NoZWR1
bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CiAgICAgbm90aWZ5T2JzZXJ2ZXJzQ2FudmFz
Q2hhbmdlZChyZWN0KTsKIH0KIApAQCAtMzAxLDcgKzMyNCw3MyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6ZGV0YWNoKCkKIAogICAg
IG1fZGV0YWNoZWQgPSB0cnVlOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8RGV0YWNoZWRPZmZz
Y3JlZW5DYW52YXM+KHRha2VJbWFnZUJ1ZmZlcigpLCBzaXplKCksIG9yaWdpbkNsZWFuKCkpOwor
ICAgIGF1dG8gZGV0YWNoZWQgPSBtYWtlVW5pcXVlPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPih0
YWtlSW1hZ2VCdWZmZXIoKSwgc2l6ZSgpLCBvcmlnaW5DbGVhbigpKTsKKyAgICBkZXRhY2hlZC0+
bV9wbGFjZWhvbGRlckNhbnZhcyA9IHN0ZDo6ZXhjaGFuZ2UobV9wbGFjZWhvbGRlckNhbnZhcywg
bnVsbHB0cik7CisKKyAgICByZXR1cm4gZGV0YWNoZWQ7Cit9CisKK3ZvaWQgT2Zmc2NyZWVuQ2Fu
dmFzOjpzZXRQbGFjZWhvbGRlckNhbnZhcyhIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzKQorewor
ICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IG1fcGxhY2Vob2xkZXJDYW52YXMgPSBtYWtlV2Vha1B0cihjYW52YXMpOworfQorCit2b2lkIE9m
ZnNjcmVlbkNhbnZhczo6cHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKQoreworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpc10gKCkgbXV0YWJs
ZSB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb21taXRMb2NrKTsKKworICAg
ICAgICBpZiAobV9wbGFjZWhvbGRlckNhbnZhcyAmJiBtX2hhc1BlbmRpbmdDb21taXREYXRhKSB7
CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IEltYWdl
QnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKG1fcGVuZGluZ0NvbW1pdERhdGEtPnNpemUoKSksIFJl
bmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOworICAgICAgICAgICAgYnVmZmVyLT5wdXRJbWFn
ZURhdGEoQWxwaGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgKm1fcGVuZGluZ0Nv
bW1pdERhdGEsIEludFJlY3QoSW50UG9pbnQoKSwgbV9wZW5kaW5nQ29tbWl0RGF0YS0+c2l6ZSgp
KSk7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzLT5zZXRJbWFnZUJ1ZmZlckFuZE1h
cmtEaXJ0eShXVEZNb3ZlKGJ1ZmZlcikpOworICAgICAgICAgICAgbV9oYXNQZW5kaW5nQ29tbWl0
RGF0YSA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5wb3N0VGFzayhbcmVsZWFzZVRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSAoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpIHsgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgT2Zmc2NyZWVu
Q2FudmFzOjpjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCkKK3sKKyAgICBhdXRvKiBpbWFnZUJ1
ZmZlciA9IGJ1ZmZlcigpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIEZJWE1FOiBUcmFuc2ZlciB0ZXh0dXJlIG92ZXIgaWYgd2UncmUgdXNpbmcgYWNj
ZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICBpZiAobV9jb250ZXh0ICYmIChtX2NvbnRleHQtPmlz
V2ViR0woKSB8fCBtX2NvbnRleHQtPmlzQWNjZWxlcmF0ZWQoKSkpCisgICAgICAgIG1fY29udGV4
dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKTsKKworICAgIGlmIChpc01haW5UaHJl
YWQoKSkgeworICAgICAgICBpZiAobV9wbGFjZWhvbGRlckNhbnZhcykgeworICAgICAgICAgICAg
aWYgKGF1dG8gYnVmZmVyQ29weSA9IGltYWdlQnVmZmVyLT5jb3B5UmVjdFRvQnVmZmVyKEZsb2F0
UmVjdChGbG9hdFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwgQ29sb3JTcGFj
ZTo6U1JHQiwgaW1hZ2VCdWZmZXItPmNvbnRleHQoKSkpCisgICAgICAgICAgICAgICAgbV9wbGFj
ZWhvbGRlckNhbnZhcy0+c2V0SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoV1RGTW92ZShidWZmZXJD
b3B5KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9jb21taXRMb2NrKTsKKworICAgIGJvb2wgc2hvdWxkUHVzaEJ1ZmZl
ciA9ICFtX2hhc1BlbmRpbmdDb21taXREYXRhOworICAgIG1fcGVuZGluZ0NvbW1pdERhdGEgPSBp
bWFnZUJ1ZmZlci0+Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRp
cGxpZWQsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpKTsK
KyAgICBtX2hhc1BlbmRpbmdDb21taXREYXRhID0gdHJ1ZTsKKworICAgIGlmIChzaG91bGRQdXNo
QnVmZmVyKQorICAgICAgICBwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpOworfQorCit2b2lkIE9m
ZnNjcmVlbkNhbnZhczo6c2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCkKK3sKKyAg
ICBpZiAoIW1faGFzU2NoZWR1bGVkQ29tbWl0KSB7CisgICAgICAgIGF1dG8mIHNjcmlwdENvbnRl
eHQgPSAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAgICBtX2hhc1NjaGVkdWxlZENv
bW1pdCA9IHRydWU7CisgICAgICAgIHNjcmlwdENvbnRleHQucG9zdFRhc2soW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpc10gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7Cisg
ICAgICAgICAgICBtX2hhc1NjaGVkdWxlZENvbW1pdCA9IGZhbHNlOworICAgICAgICAgICAgY29t
bWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOworICAgICAgICB9KTsKKyAgICB9CiB9CiAKIENTU1Zh
bHVlUG9vbCYgT2Zmc2NyZWVuQ2FudmFzOjpjc3NWYWx1ZVBvb2woKQpAQCAtMzUxLDYgKzQ0MCw3
IEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpyZXNldCgpCiAgICAgY2xlYXJDb3BpZWRJbWFnZSgp
OwogCiAgICAgbm90aWZ5T2JzZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAgIHNjaGVkdWxlQ29t
bWl0VG9QbGFjZWhvbGRlckNhbnZhcygpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3Jl
ZW5DYW52YXMuaAppbmRleCAwM2FhZGQ0NGZiYTE4M2RlYjYwOWYwOGM3YjZkNDE3MTcwOGIxY2Ez
Li43Y2JlMWVhZTQ1MThjMDY4MzQ2NmFiYzJmNWUxMDUzMWM3OGI4OWY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJTY3Jp
cHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsNyArNDYsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0OwogY2xhc3Mg
Q1NTVmFsdWVQb29sOwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3MgSFRNTENhbnZhc0Vs
ZW1lbnQ7CiBjbGFzcyBJbWFnZUJpdG1hcDsKK2NsYXNzIEltYWdlRGF0YTsKIGNsYXNzIE9mZnNj
cmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDsKIApAQCAtNTgsNiArNjEsOCBAQCB1c2luZyBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0ID0g
VmFyaWFudDxSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dAogY2xhc3MgRGV0
YWNoZWRPZmZzY3JlZW5DYW52YXMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERldGFjaGVk
T2Zmc2NyZWVuQ2FudmFzKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBmcmll
bmQgY2xhc3MgT2Zmc2NyZWVuQ2FudmFzOworCiBwdWJsaWM6CiAgICAgRGV0YWNoZWRPZmZzY3Jl
ZW5DYW52YXMoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmLCBjb25zdCBJbnRTaXplJiwg
Ym9vbCBvcmlnaW5DbGVhbik7CiAKQEAgLTcxLDExICs3NiwxMyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm4gYnVmZmVyLT5tZW1vcnlDb3N0KCk7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KKyAgICBXZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiB0YWtlUGxhY2Vob2xkZXJDYW52YXMo
KTsKIAogcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IG1fYnVmZmVy
OwogICAgIEludFNpemUgbV9zaXplOwogICAgIGJvb2wgbV9vcmlnaW5DbGVhbjsKKyAgICBXZWFr
UHRyPEhUTUxDYW52YXNFbGVtZW50PiBtX3BsYWNlaG9sZGVyQ2FudmFzOwogfTsKIAogY2xhc3Mg
T2Zmc2NyZWVuQ2FudmFzIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8T2Zmc2NyZWVuQ2FudmFz
PiwgcHVibGljIENhbnZhc0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBw
cml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKQEAgLTk0LDYgKzEwMSw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpOwogICAgIHN0
YXRpYyBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4mJik7CisgICAgc3RhdGlj
IFJlZjxPZmZzY3JlZW5DYW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSFRN
TENhbnZhc0VsZW1lbnQmKTsKICAgICB2aXJ0dWFsIH5PZmZzY3JlZW5DYW52YXMoKTsKIAogICAg
IHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgZmluYWw7CkBAIC0xMDMsNyArMTExLDcgQEAgcHVibGlj
OgogCiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogcmVuZGVyaW5nQ29udGV4dCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQogCi0gICAgRXhjZXB0aW9uT3I8T2Zm
c2NyZWVuUmVuZGVyaW5nQ29udGV4dD4gZ2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0Jiwg
UmVuZGVyaW5nQ29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYm
IGFyZ3VtZW50cyk7CisgICAgRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5n
Q29udGV4dD4+IGdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFJlbmRlcmluZ0NvbnRl
eHRUeXBlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOwog
ICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+IHRyYW5zZmVyVG9JbWFnZUJpdG1h
cCgpOwogICAgIHZvaWQgY29udmVydFRvQmxvYihJbWFnZUVuY29kZU9wdGlvbnMmJiwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJik7CiAKQEAgLTExNyw2ICsxMjUsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBjYW5EZXRhY2goKSBjb25zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3Jl
ZW5DYW52YXM+IGRldGFjaCgpOwogCisgICAgdm9pZCBjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFz
KCk7CisKICAgICBDU1NWYWx1ZVBvb2wmIGNzc1ZhbHVlUG9vbCgpOwogCiAgICAgdXNpbmcgUmVm
Q291bnRlZDo6cmVmOwpAQCAtMTQ2LDYgKzE1NiwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBj
bGVhckNvcGllZEltYWdlKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldFBsYWNlaG9sZGVyQ2FudmFz
KEhUTUxDYW52YXNFbGVtZW50Jik7CisgICAgdm9pZCBwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigp
OworICAgIHZvaWQgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dD4gbV9jb250ZXh0OwogCiAgICAg
Ly8gbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQgdG8gbWFsbG9jIHRoZSBi
dWZmZXIuIFdlIGRpZG4ndCBuZWNlc3NhcmlseSBnZXQgaXQuCkBAIC0xNTQsNiArMTY4LDEzIEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2RldGFjaGVkIHsgZmFsc2UgfTsKIAogICAgIG11dGFibGUg
UmVmUHRyPEltYWdlPiBtX2NvcGllZEltYWdlOworCisgICAgYm9vbCBtX2hhc1NjaGVkdWxlZENv
bW1pdCB7IGZhbHNlIH07CisgICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gbV9wbGFjZWhv
bGRlckNhbnZhczsKKworICAgIG11dGFibGUgTG9jayBtX2NvbW1pdExvY2s7CisgICAgYm9vbCBt
X2hhc1BlbmRpbmdDb21taXREYXRhIHsgZmFsc2UgfTsKKyAgICBSZWZQdHI8SW1hZ2VEYXRhPiBt
X3BlbmRpbmdDb21taXREYXRhOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAKaW5kZXggODZkNzg0YTM1MWQ1ODRjZTZlZjNhNjk5MmU3ZWMyMDZlNjhkOTYwMC4uMGI5YTA0
NDFjMTZiYzM4MWJmNjg3MDZlNzIyMzBiYjU0NjNhZWYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCkBAIC00OCw2ICs0OCwxMSBAQCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6Ok9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChDYW52YXNCYXNlJgog
CiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6On5PZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQoKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjb21taXQoKQoreworICAgIGRvd25jYXN0PE9mZnNjcmVlbkNhbnZhcz4o
Y2FudmFzQmFzZSgpKS5jb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4
IGNjYjE2ZTkyY2QyYmQwNGNhNTY4YmNmNjE2MzI3OTJlNjk0OTMzZTAuLmVlOTI5YWYyYjI5ZGFl
ODI2M2RlMWRhZjYwZGQxNjQ1NDI1N2U5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
CkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzT2Zmc2NyZWVuMmQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBPZmZzY3JlZW5DYW52YXMmIGNhbnZh
cygpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PE9mZnNjcmVlbkNhbnZhcz4oY2FudmFzQmFzZSgp
KTsgfQorCisgICAgdm9pZCBjb21taXQoKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCmluZGV4IDA0ZWM2YTc1MTliMTRhNzVhMTI1
NjRmNWU5ZGViOTEwZWM4YmYxMzkuLmQ3ZmVjODc5OTM2OTA0NGJkYTcyZGUwZWI1YzUzZDYzN2Fl
MDI3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbApAQCAtMjcsMTQgKzI3LDEz
IEBACiAgICAgQ3VzdG9tSXNSZWFjaGFibGUsCiAgICAgRW5hYmxlZEF0UnVudGltZT1PZmZzY3Jl
ZW5DYW52YXMsCiAgICAgQ29uZGl0aW9uYWw9T0ZGU0NSRUVOX0NBTlZBUywKLSAgICBFeHBvc2Vk
PShXaW5kb3cpLCAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzIC0gc2hvdWxkIGJlIFdpbmRvdyxX
b3JrZXIKKyAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBKU0dlbmVyYXRlVG9KU09i
amVjdCwKICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAvLyBDYWxsVHJhY2luZ0NhbGxi
YWNrPXJlY29yZENhbnZhc0FjdGlvbiwgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4KIF0gaW50
ZXJmYWNlIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIE9mZnNjcmVlbkNhbnZhcyBjYW52YXM7Ci0gICAgLy8gRklYTUU6IE9mZnNjcmVl
bkNhbnZhcy4KLSAgICAvLyB2b2lkIGNvbW1pdCgpOworICAgIHZvaWQgY29tbWl0KCk7CiAKICAg
ICAvLyBJbnNwZWN0b3Itb25seS4KICAgICAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggMDkyYzRhZWY2MGE1NTEzZjQ3NmM3ZDcxNDMzZWJlNzFhZmE3
ODFkNC4uMWVjN2EyNGVkZjQ0NTIxMWJiYmE5OTQyZTgxNDZiYjFlN2Y2ODRjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmlu
Z0NvbnRleHQuY3BwCkBAIC0yNiw2ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIgogCisjaWYgRU5BQkxFKE9GRlND
UkVFTl9DQU5WQVMpCisKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUg
Ik9mZnNjcmVlbkNhbnZhcy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM3LDQgKzQxLDE0IEBAIFBsYWNlaG9sZGVyUmVuZGVy
aW5nQ29udGV4dDo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZh
cykKIHsKIH0KIAorSFRNTENhbnZhc0VsZW1lbnQqIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dDo6Y2FudmFzKCkgY29uc3QKK3sKKyAgICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOworICAg
IGlmICghaXM8SFRNTENhbnZhc0VsZW1lbnQ+KGJhc2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gJmRvd25jYXN0PEhUTUxDYW52YXNFbGVtZW50PihiYXNlKTsKIH0KKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNl
aG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYzM0OGU1MTg5NTJjYjlkNDE1YzZiZDE3
OTVmMjE2ZGNiMTY1ZDI1OS4uNjQ1MDkxNDU5ZGQwMWNjMmE3OTc3ZGMwMDNiNDUyNjVkZTViYTdk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5k
ZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xk
ZXJSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTI1LDE1ICsyNSwyMSBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE9mZnNjcmVlbkNh
bnZhczsKKwogY2xhc3MgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVibGlj
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUGxh
Y2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KTsKIHB1YmxpYzoKICAgICBQbGFjZWhvbGRlclJlbmRl
cmluZ0NvbnRleHQoQ2FudmFzQmFzZSYpOwogCisgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZh
cygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGJvb2wgaXNQbGFjZWhvbGRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIH07CkBAIC00MSwzICs0Nyw1IEBAIHByaXZhdGU6CiB9CiAK
IFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FOVkFTUkVOREVSSU5HQ09OVEVYVChXZWJDb3JlOjpQ
bGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQsIGlzUGxhY2Vob2xkZXIoKSkKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZmI3ZjUyYjNiYWJhYzgwNjgyZjQxMGM4N2U5ZWYxZDdjY2MwMDJiZS4uNzNmOTNhZGIy
MTU0YTk3MmU0YWEwNTVhNTUzNGM5Njc4NThhODM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDIwLTA4LTExICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgQ2FudmFzLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dsaWIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3JlZW5j
YW52YXMuZmlsdGVyLnctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDIwLTA4LTEwICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0JpZ1N1cl0g
NSBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3VhZ2UvbmF2aWdhdG9yLWxhbmd1
YWdlL25hdmlnYXRvci1sYW5ndWFnZSB0ZXN0cyBhcmUgY29uc3RhbnQgZmFpbHVyZXMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDU3MDE2MGUzZGMwZWQ0NDllNmZmMGFlM2VkODRk
MDk4YTc3M2ExM2QuLjA0Y2UzNDBmZDkyODcxODZiMzllNjRiYTU1N2YyMDVkZDA2MTk3NGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA4LTEx
ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2Fu
dmFzLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRl
eHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5n
ZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zm
c2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wu
dG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA4LTEwICBDbGFyayBXYW5nICA8
Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEF1ZGlvUHJvY2Vzc2luZ0V2ZW50
IENvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50
eHQKaW5kZXggNmYxYzcwNTBlNWU4MjhjM2YzMjNmMjk1ZmIxZDJhNGZlYzhjMDA3Yy4uZjMwMTI1
MDM4ZmU2OGYwZmZlOWI5NmYwZDk2NzdjNzAzMTZhYjRhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBUZXN0
IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50
cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2Ny
ZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlz
IHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNjcmVl
bkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1lbnQg
aXMgYSBub29wLiBjdHguY29tbWl0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2N0eC5jb21taXQo
KScsICdjdHguY29tbWl0JyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIE9m
ZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhv
bGRlci4gCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52
YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IGlzIGEg
bm9vcC4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50
eHQKaW5kZXggNDM0MzMyY2U1MWFiZmUzNzEyZDBlMjQ5NThhODA1MjgxYTYwNzA3NC4uYzQyMThl
Y2FjMjczZDA1NDdmNWU0OWMzZDEyM2ZkYWY4M2YzZWFiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwg
VGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29u
dGVudHMgdG8gaXRzIHBsYWNlaG9sZGVyLiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
JyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydz
IGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gCiBQQVNTIFRl
c3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52YXMgdGhhdCBpcyBub3Qg
dHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IHRocm93cyBhbiBleGNlcHRpb24g
aW4gYSB3b3JrZXIuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0
LWV4cGVjdGVkLnR4dAppbmRleCBiZDlhYTBlMTY3N2U5NDk0ODBiMjIzMzEyMjM4ZjQ3MDk5ZWYx
Mzc3Li5jNTdhMjkzZWM0YTliZDY4YzZkOTFmOWFiYzgyNTU0YzRkZjg4ZjZhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdl
dGNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsNyAr
MSw3IEBACiAKIFBBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCB1bi1zdXBwb3J0ZWQgc3Ry
aW5nIHRocm93cyBhIFR5cGVFcnJvci4gCiBGQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGgg
c3VwcG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBBcmd1bWVudCAxICgnY29u
dGV4dFR5cGUnKSB0byBPZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCBtdXN0IGJlIG9uZSBvZjog
IjJkIiwgIndlYmdsIgotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZl
cmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSBUaGUgb2JqZWN0
IGlzIGluIGFuIGludmFsaWQgc3RhdGUuCitQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNl
IHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1l
IAogUEFTUyBUZXN0IHRoYXQgMmRjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmln
aW5hbCBPZmZzY3JlZW5DYW52YXMgCiBQQVNTIFRlc3QgdGhhdCB3ZWJnbGNvbnRleHQuY2FudmFz
IHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKIEZBSUwgVGVzdCB0
aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB3aXRoIGFscGhhIGRpc2FibGVk
IG1ha2VzIHRoZSBPZmZzY3JlZW5DYW52YXMgb3BhcXVlIGFzc2VydF9hcHByb3hfZXF1YWxzOiBH
cmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoNSwgNSkgZXhwZWN0ZWQgMTI3ICsvLSAyIGJ1
dCBnb3QgMjU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4
dC53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGYyMjRjZTc0ZWVhODc4Y2Y3NmExMzMzYmNhZTFi
YWExMGZkNGY2NjcuLjM5ZmMyY2Y5YWFkZGU3ZjJkYjFiM2UyZTMzNjg5ZWQ3MDcxNzhjYTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVh
bC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXIt
ZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0
IHdpdGggdW4tc3VwcG9ydGVkIHN0cmluZyB0aHJvd3MgYSBUeXBlRXJyb3IuIAotRkFJTCBUZXN0
IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJl
c3VsdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJECi1GQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRl
eHQgdHlwZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1lIFRoZSBvYmplY3QgaXMgaW4gYW4g
aW52YWxpZCBzdGF0ZS4KK0ZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQg
c3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRzIENhbid0IGZpbmQgdmFyaWFibGU6IFdlYkdM
UmVuZGVyaW5nQ29udGV4dAorUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRp
ZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSAKIFBBU1Mg
VGVzdCB0aGF0IDJkY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zm
c2NyZWVuQ2FudmFzIAogUEFTUyBUZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBzaG91bGQg
cmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBGQUlMIFRlc3QgdGhhdCBPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgd2l0aCBhbHBoYSBkaXNhYmxlZCBtYWtlcyB0
aGUgT2Zmc2NyZWVuQ2FudmFzIG9wYXF1ZSBhc3NlcnRfYXBwcm94X2VxdWFsczogR3JlZW4gY2hh
bm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4cGVjdGVkIDEyNyArLy0gMiBidXQgZ290IDI1
NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0CmluZGV4IGY0
NTUwNzE3MmI3NmJhZjA2YWIwZTQ0ZWQxNWNlMzMwNmFkNDgxOGEuLjZjMTFjOGRmNGI2NWE3OTAw
YWRkYzc0NmFhOWEwZWU3Nzk0MTg2MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJl
c2l6ZS1leHBlY3RlZC50eHQKQEAgLTIsMTEgKzIsMTEgQEAKIFBBU1MgVmVyaWZ5IHRoYXQgd3Jp
dGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNh
bnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIG5vIGNvbnRleHQgYXR0YWNoZWQuIAogUEFTUyBWZXJp
ZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgYW4g
T2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgYSAyZCBjb250ZXh0IGF0dGFjaGVk
LiAKIFBBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRy
aWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIGEgd2ViZ2wg
Y29udGV4dCBhdHRhY2hlZC4gCi1GQUlMIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRo
IG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4
Y2VwdGlvbiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywg
J3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1G
QUlMIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUg
b2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBldmVuIHdoZW4gbm90
IGNoYW5naW5nIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlLiBwbGFjZWhvbGRlci50cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJv
bFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8g
dGhlIHdpZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhy
b3dzIGFuIGV4Y2VwdGlvbiAKK1BBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGgg
b3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhj
ZXB0aW9uIGV2ZW4gd2hlbiBub3QgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUu
IAogUEFTUyBWZXJpZnkgdGhhdCByZXNpemluZyBhIDJkIGNvbnRleHQgcmVzZXRzIGl0cyBzdGF0
ZS4gCiBQQVNTIFZlcmlmeSB0aGF0IHNldHRpbmcgdGhlIHNpemUgb2YgYSAyZCBjb250ZXh0IHRv
IHRoZSBzYW1lIHNpemUgaXQgYWxyZWFkeSBoYWQgcmVzZXRzIGl0cyBzdGF0ZS4gCi1GQUlMIFZl
cmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgMmQgY29udGV4dCBw
cm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJv
bm91c2x5LiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywg
J3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCi1G
QUlMIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgd2ViZ2wg
Y29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFz
IGFzeW5jaHJvbm91c2x5LiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBp
cyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRl
ZmluZWQpCi1GQUlMIFZlcmlmeSB0aGF0IGRyYXdJbWFnZSB1c2VzIHRoZSBzaXplIG9mIHRoZSBm
cmFtZSBhcyB0aGUgaW50aW5zaWMgc2l6ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcy4gcGxhY2Vo
b2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBWZXJpZnkgdGhh
dCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBhIDJkIGNvbnRleHQgcHJvcGFnYXRl
cyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25vdXNseS4g
CitQQVNTIFZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgd2Vi
Z2wgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2Fu
dmFzIGFzeW5jaHJvbm91c2x5LiAKK1BBU1MgVmVyaWZ5IHRoYXQgZHJhd0ltYWdlIHVzZXMgdGhl
IHNpemUgb2YgdGhlIGZyYW1lIGFzIHRoZSBpbnRpbnNpYyBzaXplIG9mIGEgcGxhY2Vob2xkZXIg
Y2FudmFzLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52
YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50eHQKaW5kZXggNGY0MmU1
MDc0MjgyODBhMmVhMTlmNzYzY2Y4Yzk2MTlhZTViYjMwNS4uMjk2MDQ4NWI3YjZhZDZmNzA2MmRl
ZjlmZTdiNzllNWNiNzRiODNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVu
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0
CkBAIC0xLDUgKzEsNSBAQAogCi1GQUlMIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2Vu
ZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBh
bmQgaGVpZ2h0IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCkn
LCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkK
LUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZh
cyB0aGF0IGhhcyBhbHJlYWR5IHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRocm93cyBhbiBleGNl
cHRpb24gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdw
bGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQotRkFJ
TCBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJv
d3MgYW4gZXhjZXB0aW9uIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlz
IG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2Ny
ZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVm
aW5lZCkKK1BBU1MgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgCitQ
QVNTIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMg
dGhhdCBoYXMgYWxyZWFkeSB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0aHJvd3MgYW4gZXhjZXB0
aW9uIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0
d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5v
ZmZzY3JlZW4udy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBl
Y3RlZC50eHQKaW5kZXggMmNkM2RiNGIyNzZkYzFjMTFkMWVjZGIwNDhiM2I3OTA5M2VlZTBkYS4u
MzNiODUzMmNiMmUwMDQxNGE2ZDU0YTZkYTc5YWU3NmVhZjQ2NTYzZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zl
cmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVh
bC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRv
Lm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBUZXN0IHRo
YXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCB3aGVuIGl0IGlzIHRyYW5zZmVycmVk
IHRvIGEgd29ya2VyIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
KCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5l
ZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNh
bnZhcyB0aGF0IGlzIHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRvIGFuIE9mZnNjcmVlbkNhbnZh
cyB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNm
ZXJyZWQgdG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4g
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5k
ZWZpbmVkKQotRkFJTCBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9mZnNjcmVl
bkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFu
c2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52
YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3
aWR0aCBhbmQgaGVpZ2h0IHdoZW4gaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgCitQQVNT
IFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhh
dCBpcyB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0byBhbiBPZmZzY3JlZW5DYW52YXMgdGhyb3dz
IGFuIGV4Y2VwdGlvbiwgd2hlbiB0aGUgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRv
IGEgd29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9mZnNj
cmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXIu
dy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9maWx0ZXIvb2Zm
c2NyZWVuY2FudmFzLmZpbHRlci53LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2M3NDc4OTYzNGY1ZjQyZTJjMjg5YzdjYThkYWRjNDM4Zjg3N2Y4OS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9nbGliL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci53LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIG9mZnNjcmVlbmNhbnZhcyAK
LQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406451</attachid>
            <date>2020-08-12 01:33:26 -0700</date>
            <delta_ts>2020-08-12 02:05:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202797-20200812093325.patch</filename>
            <type>text/plain</type>
            <size>40419</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjA2OTRmMzU5NWUwZGQ5
NTgyNzRmZGNjMmU2MzY0YjM3M2U2MjM0OS4uZWU0MGU4YTJhODgxNDAwNjE3M2IxMDIyNDUzMGUw
MjVmNDc5OWVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIwLTAyLTEzICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2FudmFzLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAg
ICAgSW1wbGVtZW50IEhUTUxDYW52YXNFbGVtZW50LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
IGFuZAorICAgICAgICBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY29tbWl0LiBU
aGlzIGFsbG93cyBmb3IKKyAgICAgICAgKHN5bmNocm9ub3VzKSBkaXNwbGF5IG9mIGFzeW5jaHJv
bm91c2x5IHJlbmRlcmVkIE9mZnNjcmVlbkNhbnZhcworICAgICAgICBjb250ZW50LgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAq
IGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OnNldEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVu
dDo6c2V0V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojp0cmFuc2ZlckNvbnRyb2xU
b09mZnNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6c2V0SW1h
Z2VCdWZmZXJBbmRNYXJrRGlydHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OmlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxD
YW52YXNFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGw6Cisg
ICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV0
YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZhcyk6CisgICAgICAgIChX
ZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpPZmZz
Y3JlZW5DYW52YXM6OmdldENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2Fu
dmFzOjpkaWREcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6ZGV0YWNo
KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6c2V0UGxhY2Vob2xkZXJDYW52
YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpwdXNoQnVmZmVyVG9QbGFj
ZWhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNvbW1pdFRvUGxh
Y2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpzY2hl
ZHVsZUNvbW1pdFRvUGxhY2Vob2xkZXJDYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2Ny
ZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52YXMuaDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpj
b21taXQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJp
bmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYWNlaG9sZGVyUmVuZGVyaW5nQ29u
dGV4dDo6Y2FudmFzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9QbGFjZWhvbGRlclJl
bmRlcmluZ0NvbnRleHQuaDoKKwogMjAyMC0wOC0xMSAgSmFtZXMgRGFycGluaWFuICA8amRhcnBp
bmlhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1dlYkdMMl0gRGVwdGggZm9ybWF0cyBjYW4g
aGF2ZSBtaXBtYXBzIGluIFdlYkdMIDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAKaW5kZXggYzRjODg5MDQ5ZjE2MzBkMjM0YTBhZmU3MzAyMjUwNmZmZjZkNjM3Zi4u
M2YzNzcxZWM1YWFkNDJkYWFjYmQyOWY2YjgyZWI1MjlkMjlmM2U1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRl
ICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0
aW9uYXJ5LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlBsYWNl
aG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNp
bmNsdWRlICJSZW5kZXJIVE1MQ2FudmFzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkT2JzZXJ2
ZXIuaCIKQEAgLTE4NCw3ICsxODUsNyBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50OjpjYW5TdGFy
dFNlbGVjdGlvbigpIGNvbnN0CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxDYW52YXNFbGVtZW50
OjpzZXRIZWlnaHQodW5zaWduZWQgdmFsdWUpCiB7Ci0gICAgaWYgKG1fY29udGV4dCAmJiBtX2Nv
bnRleHQtPmlzUGxhY2Vob2xkZXIoKSkKKyAgICBpZiAoaXNDb250cm9sbGVkQnlPZmZzY3JlZW4o
KSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAgICAg
c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihoZWlnaHRBdHRyLCBBdG9tU3RyaW5n
OjpudW1iZXIobGltaXRUb09ubHlIVE1MTm9uTmVnYXRpdmUodmFsdWUsIGRlZmF1bHRIZWlnaHQp
KSk7CiAgICAgcmV0dXJuIHsgfTsKQEAgLTE5Miw3ICsxOTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBIVE1MQ2FudmFzRWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIHZhbHVlKQogCiBFeGNlcHRp
b25Pcjx2b2lkPiBIVE1MQ2FudmFzRWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiB7
Ci0gICAgaWYgKG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzUGxhY2Vob2xkZXIoKSkKKyAgICBp
ZiAoaXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbih3aWR0aEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcihsaW1pdFRvT25seUhUTUxOb25OZWdh
dGl2ZSh2YWx1ZSwgZGVmYXVsdFdpZHRoKSkpOwogICAgIHJldHVybiB7IH07CkBAIC01NjYsNyAr
NTY3LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3Qm
IHJlY3QpCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKIHsKLSAgICBpZiAobV9p
Z25vcmVSZXNldCkKKyAgICBpZiAobV9pZ25vcmVSZXNldCB8fCBpc0NvbnRyb2xsZWRCeU9mZnNj
cmVlbigpKQogICAgICAgICByZXR1cm47CiAKICAgICBib29sIGhhZEltYWdlQnVmZmVyID0gaGFz
Q3JlYXRlZEltYWdlQnVmZmVyKCk7CkBAIC03NjgsNiArNzY5LDE3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEhUTUxDYW52YXNFbGVtZW50Ojp0b0Jsb2IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgUmVmCiAgICAgcmV0dXJuIHsgfTsKIH0KIAorI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FO
VkFTKQorRXhjZXB0aW9uT3I8UmVmPE9mZnNjcmVlbkNhbnZhcz4+IEhUTUxDYW52YXNFbGVtZW50
Ojp0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0KQoreworICAgIGlmIChtX2NvbnRleHQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgbV9jb250ZXh0ID0gbWFrZVVuaXF1ZTxQbGFjZWhv
bGRlclJlbmRlcmluZ0NvbnRleHQ+KCp0aGlzKTsKKyAgICByZXR1cm4gT2Zmc2NyZWVuQ2FudmFz
OjpjcmVhdGUoY29udGV4dCwgKnRoaXMpOworfQorI2VuZGlmCisKIFJlZlB0cjxJbWFnZURhdGE+
IEhUTUxDYW52YXNFbGVtZW50OjpnZXRJbWFnZURhdGEoKQogewogI2lmIEVOQUJMRShXRUJHTCkK
QEAgLTk0NSw4ICs5NTcsMjQgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VC
dWZmZXIoKSBjb25zdAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlckFu
ZE1hcmtEaXJ0eShzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+JiYgYnVmZmVyKQogeworICAg
IEludFNpemUgb2xkU2l6ZSA9IHNpemUoKTsKICAgICBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlciA9
IHRydWU7CiAgICAgc2V0SW1hZ2VCdWZmZXIoV1RGTW92ZShidWZmZXIpKTsKKworICAgIGlmIChp
c0NvbnRyb2xsZWRCeU9mZnNjcmVlbigpICYmIG9sZFNpemUgIT0gc2l6ZSgpKSB7CisgICAgICAg
IHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24od2lkdGhBdHRyLCBBdG9tU3RyaW5n
OjpudW1iZXIod2lkdGgoKSkpOworICAgICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKGhlaWdodEF0dHIsIEF0b21TdHJpbmc6Om51bWJlcihoZWlnaHQoKSkpOworCisgICAg
ICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOworICAgICAgICBpZiAoaXM8UmVu
ZGVySFRNTENhbnZhcz4ocmVuZGVyZXIpKSB7CisgICAgICAgICAgICBhdXRvJiBjYW52YXNSZW5k
ZXJlciA9IGRvd25jYXN0PFJlbmRlckhUTUxDYW52YXM+KCpyZW5kZXJlcik7CisgICAgICAgICAg
ICBjYW52YXNSZW5kZXJlci5jYW52YXNTaXplQ2hhbmdlZCgpOworICAgICAgICAgICAgY2FudmFz
UmVuZGVyZXIuY29udGVudENoYW5nZWQoQ2FudmFzQ2hhbmdlZCk7CisgICAgICAgIH0KKworICAg
ICAgICBub3RpZnlPYnNlcnZlcnNDYW52YXNSZXNpemVkKCk7CisgICAgfQorCiAgICAgZGlkRHJh
dyhGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBzaXplKCkpKTsKIH0KIApAQCAtMTA1Miw0ICsxMDgw
LDkgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cHJlcGFyZUZvckRpc3BsYXkoKQogI2VuZGlm
CiB9CiAKK2Jvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OmlzQ29udHJvbGxlZEJ5T2Zmc2NyZWVuKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXNQbGFjZWhvbGRl
cigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXgg
ODIzNGZkOGIwOTUwMWYzMGFkYjE3MTY1Y2E0YTJjY2U5NzcwMzBhYS4uNmI0MWM0NjMyMTI5ZGI2
MGQyMTUzZDFlOTBkZDFiNThlN2FmMzJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIElt
YWdlRGF0YTsKIGNsYXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgTWVkaWFTdHJlYW07CitjbGFzcyBP
ZmZzY3JlZW5DYW52YXM7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwogY2xhc3Mg
R1BVQ2FudmFzQ29udGV4dDsKIHN0cnVjdCBVbmNhY2hlZFN0cmluZzsKQEAgLTk3LDYgKzk4LDkg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2FjaGVkU3RyaW5n
PiB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgSlNDOjpKU1ZhbHVlIHF1YWxpdHkp
OwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFVuY2FjaGVkU3RyaW5nPiB0b0RhdGFV
UkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gdG9CbG9i
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8QmxvYkNhbGxiYWNrPiYmLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBKU0M6OkpTVmFsdWUgcXVhbGl0eSk7CisjaWYgRU5BQkxFKE9GRlNDUkVF
Tl9DQU5WQVMpCisgICAgRXhjZXB0aW9uT3I8UmVmPE9mZnNjcmVlbkNhbnZhcz4+IHRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyNlbmRpZgogCiAg
ICAgLy8gVXNlZCBmb3IgcmVuZGVyaW5nCiAgICAgdm9pZCBkaWREcmF3KGNvbnN0IEZsb2F0UmVj
dCYpIGZpbmFsOwpAQCAtMTM1LDYgKzEzOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzU25h
cHNob3R0aW5nKGJvb2wgaXNTbmFwc2hvdHRpbmcpIHsgbV9pc1NuYXBzaG90dGluZyA9IGlzU25h
cHNob3R0aW5nOyB9CiAgICAgYm9vbCBpc1NuYXBzaG90dGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
aXNTbmFwc2hvdHRpbmc7IH0KIAorICAgIGJvb2wgaXNDb250cm9sbGVkQnlPZmZzY3JlZW4oKSBj
b25zdDsKKwogcHJpdmF0ZToKICAgICBIVE1MQ2FudmFzRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmlkbAppbmRleCA3MThhOWVhN2E0Yzk3MTVhMmU3ODA0Nzc1NTJjMmI1ZjUxM2E5YTBhLi5hZTRm
Y2FhYzI2OWY2YmMzZjU0MGViZDFlNDdiNTg5MjdkYjNlZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbApAQCAtNTAsNiArNTAsNyBAQCB0eXBlZGVmICgKIAog
ICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHRvRGF0YVVSTChvcHRpb25hbCBET01T
dHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55IHF1YWxpdHkpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCB0b0Jsb2IoQmxvYkNhbGxi
YWNrIGNhbGxiYWNrLCBvcHRpb25hbCBET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYW55IHF1YWxp
dHkpOworICAgIFtDb25kaXRpb25hbD1PRkZTQ1JFRU5fQ0FOVkFTLCBDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gT2Zmc2NyZWVuQ2FudmFzIHRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CiAKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFN
LCBDYWxsV2l0aD1Eb2N1bWVudCwgTWF5VGhyb3dFeGNlcHRpb24sIE5ld09iamVjdF0gTWVkaWFT
dHJlYW0gY2FwdHVyZVN0cmVhbShvcHRpb25hbCBkb3VibGUgZnJhbWVSZXF1ZXN0UmF0ZSk7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCmluZGV4IDliYmQxOWE0NjZm
NjVkNDU4ZWI5ODVhMTVjM2QyNTgyZjVmNDM5ODguLjczNGI3OWQ1ZmFhMDJjNWJhMmIzY2UwN2Yx
Mzk1NDk3NDQ3Yzk3MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVu
Q2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAK
QEAgLTMxLDExICszMSwxNCBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUg
IkNhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAuaCIKKyNpbmNs
dWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJKU0Jsb2IuaCIKICNpbmNsdWRlICJKU0RPTVBy
b21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRl
ICJPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKKyNpbmNsdWRlICJQbGFjZWhv
bGRlclJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CkBAIC01Niw2ICs1OSwxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+IERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKQogICAgIHJldHVy
biBXVEZNb3ZlKG1fYnVmZmVyKTsKIH0KIAorV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gRGV0
YWNoZWRPZmZzY3JlZW5DYW52YXM6OnRha2VQbGFjZWhvbGRlckNhbnZhcygpCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICByZXR1cm4gc3RkOjpleGNoYW5nZShtX3BsYWNlaG9s
ZGVyQ2FudmFzLCBudWxscHRyKTsKK30KKwogUmVmPE9mZnNjcmVlbkNhbnZhcz4gT2Zmc2NyZWVu
Q2FudmFzOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgdW5zaWduZWQg
d2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPZmZz
Y3JlZW5DYW52YXMoY29udGV4dCwgd2lkdGgsIGhlaWdodCkpOwpAQCAtNjgsOSArNzcsMjIgQEAg
UmVmPE9mZnNjcmVlbkNhbnZhcz4gT2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgc3QKICAgICBpZiAoIWRldGFjaGVkQ2FudmFzLT5vcmlnaW5D
bGVhbigpKQogICAgICAgICBjbG9uZS0+c2V0T3JpZ2luVGFpbnRlZCgpOwogCisgICAgY2FsbE9u
TWFpblRocmVhZChbZGV0YWNoZWRDYW52YXMgPSBXVEZNb3ZlKGRldGFjaGVkQ2FudmFzKSwgb2Zm
c2NyZWVuQ2FudmFzID0gbWFrZVJlZihjbG9uZS5nZXQoKSldICgpIG11dGFibGUgeworICAgICAg
ICBvZmZzY3JlZW5DYW52YXMtPm1fcGxhY2Vob2xkZXJDYW52YXMgPSBkZXRhY2hlZENhbnZhcy0+
dGFrZVBsYWNlaG9sZGVyQ2FudmFzKCk7CisgICAgICAgIG9mZnNjcmVlbkNhbnZhcy0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayh7IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2s6OkNsZWFudXBUYXNrLAorICAgICAgICAgICAgW3JlbGVhc2VPZmZzY3JlZW5DYW52YXMgPSBX
VEZNb3ZlKG9mZnNjcmVlbkNhbnZhcyldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeyB9IH0p
OworICAgIH0pOworCiAgICAgcmV0dXJuIGNsb25lOwogfQogCitSZWY8T2Zmc2NyZWVuQ2FudmFz
PiBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzKQoreworICAgIGF1dG8gb2Zmc2NyZWVuID0gYWRv
cHRSZWYoKm5ldyBPZmZzY3JlZW5DYW52YXMoY29udGV4dCwgY2FudmFzLndpZHRoKCksIGNhbnZh
cy5oZWlnaHQoKSkpOworICAgIG9mZnNjcmVlbi0+c2V0UGxhY2Vob2xkZXJDYW52YXMoY2FudmFz
KTsKKyAgICByZXR1cm4gb2Zmc2NyZWVuOworfQorCiBPZmZzY3JlZW5DYW52YXM6Ok9mZnNjcmVl
bkNhbnZhcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1bnNpZ25lZCB3aWR0aCwg
dW5zaWduZWQgaGVpZ2h0KQogICAgIDogQ2FudmFzQmFzZShJbnRTaXplKHdpZHRoLCBoZWlnaHQp
KQogICAgICwgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCkBAIC0xMTksNyAr
MTQxLDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgbmV3
U2l6ZSkKICAgICByZXNldCgpOwogfQogCi1FeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdD
b250ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYg
c3RhdGUsIFJlbmRlcmluZ0NvbnRleHRUeXBlIGNvbnRleHRUeXBlLCBWZWN0b3I8SlNDOjpTdHJv
bmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpCitFeGNlcHRpb25PcjxPcHRpb25hbDxPZmZz
Y3JlZW5SZW5kZXJpbmdDb250ZXh0Pj4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6
SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBSZW5kZXJpbmdDb250ZXh0VHlwZSBjb250ZXh0VHlwZSwg
VmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKQogewogICAgIGlm
IChtX2RldGFjaGVkKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfTsKQEAgLTEyNywyMiArMTQ5LDIyIEBAIEV4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRlcmlu
Z0NvbnRleHQ+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkpTR2xvYmFsCiAgICAg
aWYgKGNvbnRleHRUeXBlID09IFJlbmRlcmluZ0NvbnRleHRUeXBlOjpfMmQpIHsKICAgICAgICAg
aWYgKG1fY29udGV4dCkgewogICAgICAgICAgICAgaWYgKCFpczxPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwotICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRy
PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4geyAmZG93bmNhc3Q8T2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPigqbV9jb250ZXh0KSB9IH07CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9OworICAgICAgICAgICAgcmV0dXJuIHsgeyBS
ZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7ICZkb3duY2FzdDxPZmZz
Y3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KCptX2NvbnRleHQpIH0gfSB9OwogICAgICAg
ICB9CiAKICAgICAgICAgbV9jb250ZXh0ID0gbWFrZVVuaXF1ZTxPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ+KCp0aGlzKTsKICAgICAgICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAg
ICAgICByZXR1cm4geyBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPiB7
IG51bGxwdHIgfSB9OworICAgICAgICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9Owog
Ci0gICAgICAgIHJldHVybiB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29u
dGV4dCkgfSB9OworICAgICAgICByZXR1cm4geyB7IFJlZlB0cjxPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ+IHsgJmRvd25jYXN0PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRD4oKm1fY29udGV4dCkgfSB9IH07CiAgICAgfQogI2lmIEVOQUJMRShXRUJHTCkKICAgICBp
ZiAoY29udGV4dFR5cGUgPT0gUmVuZGVyaW5nQ29udGV4dFR5cGU6OldlYmdsKSB7CiAgICAgICAg
IGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgICAgIGlmICghaXM8V2ViR0xSZW5kZXJpbmdDb250
ZXh0PigqbV9jb250ZXh0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfTsKLSAgICAgICAgICAgIHJldHVybiB7IFJlZlB0cjxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+IHsgJmRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29udGV4
dCkgfSB9OworICAgICAgICAgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oKm1fY29u
dGV4dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdD
b250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0g
fSB9OworICAgICAgICAgICAgcmV0dXJuIHsgeyBXVEY6Om51bGxvcHQgfSB9OwogICAgICAgICB9
CiAKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUudm0oKSk7
CkBAIC0xNTEsMTMgKzE3MywxMyBAQCBFeGNlcHRpb25PcjxPZmZzY3JlZW5SZW5kZXJpbmdDb250
ZXh0PiBPZmZzY3JlZW5DYW52YXM6OmdldENvbnRleHQoSlNDOjpKU0dsb2JhbAogCiAgICAgICAg
IG1fY29udGV4dCA9IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSgqdGhpcywgYXR0
cmlidXRlcywgIndlYmdsIik7CiAgICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAgICAg
cmV0dXJuIHsgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4geyBudWxscHRyIH0gfTsKKyAg
ICAgICAgICAgIHJldHVybiB7IHsgV1RGOjpudWxsb3B0IH0gfTsKIAotICAgICAgICByZXR1cm4g
eyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAgICAgICAgcmV0dXJuIHsgeyBSZWZQdHI8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCpt
X2NvbnRleHQpIH0gfSB9OwogICAgIH0KICNlbmRpZgogCi0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yIH07CisgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9
OwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VCaXRtYXA+PiBPZmZzY3JlZW5DYW52YXM6
OnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpCkBAIC0yNTksNiArMjgxLDcgQEAgdm9pZCBPZmZzY3Jl
ZW5DYW52YXM6OmNvbnZlcnRUb0Jsb2IoSW1hZ2VFbmNvZGVPcHRpb25zJiYgb3B0aW9ucywgUmVm
PERlZmVycmVkUHIKIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpkaWREcmF3KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKIHsKICAgICBjbGVhckNvcGllZEltYWdlKCk7CisgICAgc2NoZWR1bGVDb21taXRU
b1BsYWNlaG9sZGVyQ2FudmFzKCk7CiAgICAgbm90aWZ5T2JzZXJ2ZXJzQ2FudmFzQ2hhbmdlZChy
ZWN0KTsKIH0KIApAQCAtMzAxLDcgKzMyNCw3MyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRP
ZmZzY3JlZW5DYW52YXM+IE9mZnNjcmVlbkNhbnZhczo6ZGV0YWNoKCkKIAogICAgIG1fZGV0YWNo
ZWQgPSB0cnVlOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8RGV0YWNoZWRPZmZzY3JlZW5DYW52
YXM+KHRha2VJbWFnZUJ1ZmZlcigpLCBzaXplKCksIG9yaWdpbkNsZWFuKCkpOworICAgIGF1dG8g
ZGV0YWNoZWQgPSBtYWtlVW5pcXVlPERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzPih0YWtlSW1hZ2VC
dWZmZXIoKSwgc2l6ZSgpLCBvcmlnaW5DbGVhbigpKTsKKyAgICBkZXRhY2hlZC0+bV9wbGFjZWhv
bGRlckNhbnZhcyA9IHN0ZDo6ZXhjaGFuZ2UobV9wbGFjZWhvbGRlckNhbnZhcywgbnVsbHB0cik7
CisKKyAgICByZXR1cm4gZGV0YWNoZWQ7Cit9CisKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRQ
bGFjZWhvbGRlckNhbnZhcyhIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzKQoreworICAgIEFTU0VS
VCghbV9jb250ZXh0KTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fcGxhY2Vo
b2xkZXJDYW52YXMgPSBtYWtlV2Vha1B0cihjYW52YXMpOworfQorCit2b2lkIE9mZnNjcmVlbkNh
bnZhczo6cHVzaEJ1ZmZlclRvUGxhY2Vob2xkZXIoKQoreworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpc10gKCkgbXV0YWJsZSB7CisgICAg
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb21taXRMb2NrKTsKKworICAgICAgICBpZiAo
bV9wbGFjZWhvbGRlckNhbnZhcyAmJiBtX2hhc1BlbmRpbmdDb21taXREYXRhKSB7CisgICAgICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpj
cmVhdGUoRmxvYXRTaXplKG1fcGVuZGluZ0NvbW1pdERhdGEtPnNpemUoKSksIFJlbmRlcmluZ01v
ZGU6OlVuYWNjZWxlcmF0ZWQpOworICAgICAgICAgICAgYnVmZmVyLT5wdXRJbWFnZURhdGEoQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgKm1fcGVuZGluZ0NvbW1pdERhdGEs
IEludFJlY3QoSW50UG9pbnQoKSwgbV9wZW5kaW5nQ29tbWl0RGF0YS0+c2l6ZSgpKSk7CisgICAg
ICAgICAgICBtX3BsYWNlaG9sZGVyQ2FudmFzLT5zZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eShX
VEZNb3ZlKGJ1ZmZlcikpOworICAgICAgICAgICAgbV9oYXNQZW5kaW5nQ29tbWl0RGF0YSA9IGZh
bHNlOworICAgICAgICB9CisKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0
VGFzayhbcmVsZWFzZVRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXSAoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIHsgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpj
b21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCkKK3sKKyAgICBhdXRvKiBpbWFnZUJ1ZmZlciA9IGJ1
ZmZlcigpOworICAgIGlmICghaW1hZ2VCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8v
IEZJWE1FOiBUcmFuc2ZlciB0ZXh0dXJlIG92ZXIgaWYgd2UncmUgdXNpbmcgYWNjZWxlcmF0ZWQg
Y29tcG9zaXRpbmcKKyAgICBpZiAobV9jb250ZXh0ICYmIChtX2NvbnRleHQtPmlzV2ViR0woKSB8
fCBtX2NvbnRleHQtPmlzQWNjZWxlcmF0ZWQoKSkpCisgICAgICAgIG1fY29udGV4dC0+cGFpbnRS
ZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKTsKKworICAgIGlmIChpc01haW5UaHJlYWQoKSkgewor
ICAgICAgICBpZiAobV9wbGFjZWhvbGRlckNhbnZhcykgeworICAgICAgICAgICAgaWYgKGF1dG8g
YnVmZmVyQ29weSA9IGltYWdlQnVmZmVyLT5jb3B5UmVjdFRvQnVmZmVyKEZsb2F0UmVjdChGbG9h
dFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwgQ29sb3JTcGFjZTo6U1JHQiwg
aW1hZ2VCdWZmZXItPmNvbnRleHQoKSkpCisgICAgICAgICAgICAgICAgbV9wbGFjZWhvbGRlckNh
bnZhcy0+c2V0SW1hZ2VCdWZmZXJBbmRNYXJrRGlydHkoV1RGTW92ZShidWZmZXJDb3B5KSk7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9jb21taXRMb2NrKTsKKworICAgIGJvb2wgc2hvdWxkUHVzaEJ1ZmZlciA9ICFtX2hh
c1BlbmRpbmdDb21taXREYXRhOworICAgIG1fcGVuZGluZ0NvbW1pdERhdGEgPSBpbWFnZUJ1ZmZl
ci0+Z2V0SW1hZ2VEYXRhKEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRpcGxpZWQsIElu
dFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpKTsKKyAgICBtX2hh
c1BlbmRpbmdDb21taXREYXRhID0gdHJ1ZTsKKworICAgIGlmIChzaG91bGRQdXNoQnVmZmVyKQor
ICAgICAgICBwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpOworfQorCit2b2lkIE9mZnNjcmVlbkNh
bnZhczo6c2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCkKK3sKKyAgICBpZiAoIW1f
aGFzU2NoZWR1bGVkQ29tbWl0KSB7CisgICAgICAgIGF1dG8mIHNjcmlwdENvbnRleHQgPSAqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAgICBtX2hhc1NjaGVkdWxlZENvbW1pdCA9IHRy
dWU7CisgICAgICAgIHNjcmlwdENvbnRleHQucG9zdFRhc2soW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgdGhpc10gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgICAgICAg
ICBtX2hhc1NjaGVkdWxlZENvbW1pdCA9IGZhbHNlOworICAgICAgICAgICAgY29tbWl0VG9QbGFj
ZWhvbGRlckNhbnZhcygpOworICAgICAgICB9KTsKKyAgICB9CiB9CiAKIENTU1ZhbHVlUG9vbCYg
T2Zmc2NyZWVuQ2FudmFzOjpjc3NWYWx1ZVBvb2woKQpAQCAtMzUxLDYgKzQ0MCw3IEBAIHZvaWQg
T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCgpCiAgICAgY2xlYXJDb3BpZWRJbWFnZSgpOwogCiAgICAg
bm90aWZ5T2JzZXJ2ZXJzQ2FudmFzUmVzaXplZCgpOworICAgIHNjaGVkdWxlQ29tbWl0VG9QbGFj
ZWhvbGRlckNhbnZhcygpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L09mZnNjcmVlbkNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMu
aAppbmRleCAwM2FhZGQ0NGZiYTE4M2RlYjYwOWYwOGM3YjZkNDE3MTcwOGIxY2EzLi43Y2JlMWVh
ZTQ1MThjMDY4MzQ2NmFiYzJmNWUxMDUzMWM3OGI4OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zm
c2NyZWVuQ2FudmFzLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFi
bGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsNyArNDYsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0OwogY2xhc3MgQ1NTVmFsdWVQ
b29sOwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CiBj
bGFzcyBJbWFnZUJpdG1hcDsKK2NsYXNzIEltYWdlRGF0YTsKIGNsYXNzIE9mZnNjcmVlbkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dDsKIApAQCAt
NTgsNiArNjEsOCBAQCB1c2luZyBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0ID0gVmFyaWFudDxS
ZWZQdHI8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dAogY2xhc3MgRGV0YWNoZWRPZmZz
Y3JlZW5DYW52YXMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERldGFjaGVkT2Zmc2NyZWVu
Q2FudmFzKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBmcmllbmQgY2xhc3Mg
T2Zmc2NyZWVuQ2FudmFzOworCiBwdWJsaWM6CiAgICAgRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMo
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiYmLCBjb25zdCBJbnRTaXplJiwgYm9vbCBvcmln
aW5DbGVhbik7CiAKQEAgLTcxLDExICs3NiwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1
cm4gYnVmZmVyLT5tZW1vcnlDb3N0KCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KKyAgICBX
ZWFrUHRyPEhUTUxDYW52YXNFbGVtZW50PiB0YWtlUGxhY2Vob2xkZXJDYW52YXMoKTsKIAogcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IG1fYnVmZmVyOwogICAgIElu
dFNpemUgbV9zaXplOwogICAgIGJvb2wgbV9vcmlnaW5DbGVhbjsKKyAgICBXZWFrUHRyPEhUTUxD
YW52YXNFbGVtZW50PiBtX3BsYWNlaG9sZGVyQ2FudmFzOwogfTsKIAogY2xhc3MgT2Zmc2NyZWVu
Q2FudmFzIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8T2Zmc2NyZWVuQ2FudmFzPiwgcHVibGlj
IENhbnZhc0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwcml2YXRlIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKQEAgLTk0LDYgKzEwMSw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBSZWY8T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpOwogICAgIHN0YXRpYyBSZWY8
T2Zmc2NyZWVuQ2FudmFzPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6dW5p
cXVlX3B0cjxEZXRhY2hlZE9mZnNjcmVlbkNhbnZhcz4mJik7CisgICAgc3RhdGljIFJlZjxPZmZz
Y3JlZW5DYW52YXM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSFRNTENhbnZhc0Vs
ZW1lbnQmKTsKICAgICB2aXJ0dWFsIH5PZmZzY3JlZW5DYW52YXMoKTsKIAogICAgIHVuc2lnbmVk
IHdpZHRoKCkgY29uc3QgZmluYWw7CkBAIC0xMDMsNyArMTExLDcgQEAgcHVibGljOgogCiAgICAg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dCogcmVuZGVyaW5nQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQogCi0gICAgRXhjZXB0aW9uT3I8T2Zmc2NyZWVuUmVu
ZGVyaW5nQ29udGV4dD4gZ2V0Q29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVuZGVyaW5n
Q29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50
cyk7CisgICAgRXhjZXB0aW9uT3I8T3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4+
IGdldENvbnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFJlbmRlcmluZ0NvbnRleHRUeXBlLCBW
ZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpOwogICAgIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxJbWFnZUJpdG1hcD4+IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOwogICAg
IHZvaWQgY29udmVydFRvQmxvYihJbWFnZUVuY29kZU9wdGlvbnMmJiwgUmVmPERlZmVycmVkUHJv
bWlzZT4mJik7CiAKQEAgLTExNyw2ICsxMjUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5EZXRh
Y2goKSBjb25zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRPZmZzY3JlZW5DYW52YXM+
IGRldGFjaCgpOwogCisgICAgdm9pZCBjb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisKICAg
ICBDU1NWYWx1ZVBvb2wmIGNzc1ZhbHVlUG9vbCgpOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDo6
cmVmOwpAQCAtMTQ2LDYgKzE1NiwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjbGVhckNvcGll
ZEltYWdlKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldFBsYWNlaG9sZGVyQ2FudmFzKEhUTUxDYW52
YXNFbGVtZW50Jik7CisgICAgdm9pZCBwdXNoQnVmZmVyVG9QbGFjZWhvbGRlcigpOworICAgIHZv
aWQgc2NoZWR1bGVDb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7CisKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dD4gbV9jb250ZXh0OwogCiAgICAgLy8gbV9oYXND
cmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQgdG8gbWFsbG9jIHRoZSBidWZmZXIuIFdl
IGRpZG4ndCBuZWNlc3NhcmlseSBnZXQgaXQuCkBAIC0xNTQsNiArMTY4LDEzIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2RldGFjaGVkIHsgZmFsc2UgfTsKIAogICAgIG11dGFibGUgUmVmUHRyPElt
YWdlPiBtX2NvcGllZEltYWdlOworCisgICAgYm9vbCBtX2hhc1NjaGVkdWxlZENvbW1pdCB7IGZh
bHNlIH07CisgICAgV2Vha1B0cjxIVE1MQ2FudmFzRWxlbWVudD4gbV9wbGFjZWhvbGRlckNhbnZh
czsKKworICAgIG11dGFibGUgTG9jayBtX2NvbW1pdExvY2s7CisgICAgYm9vbCBtX2hhc1BlbmRp
bmdDb21taXREYXRhIHsgZmFsc2UgfTsKKyAgICBSZWZQdHI8SW1hZ2VEYXRhPiBtX3BlbmRpbmdD
b21taXREYXRhOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXgg
ODZkNzg0YTM1MWQ1ODRjZTZlZjNhNjk5MmU3ZWMyMDZlNjhkOTYwMC4uMGI5YTA0NDFjMTZiYzM4
MWJmNjg3MDZlNzIyMzBiYjU0NjNhZWYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwCkBAIC00OCw2ICs0OCwxMSBAQCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
Ok9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChDYW52YXNCYXNlJgogCiBPZmZzY3Jl
ZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6On5PZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQoKSA9IGRlZmF1bHQ7CiAKK3ZvaWQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpjb21taXQoKQoreworICAgIGRvd25jYXN0PE9mZnNjcmVlbkNhbnZhcz4oY2FudmFzQmFz
ZSgpKS5jb21taXRUb1BsYWNlaG9sZGVyQ2FudmFzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9P
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4IGNjYjE2ZTky
Y2QyYmQwNGNhNTY4YmNmNjE2MzI3OTJlNjk0OTMzZTAuLmVlOTI5YWYyYjI5ZGFlODI2M2RlMWRh
ZjYwZGQxNjQ1NDI1N2U5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC00Miw2
ICs0Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzT2Zmc2NyZWVuMmQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBPZmZzY3JlZW5DYW52YXMmIGNhbnZhcygpIGNvbnN0
IHsgcmV0dXJuIGRvd25jYXN0PE9mZnNjcmVlbkNhbnZhcz4oY2FudmFzQmFzZSgpKTsgfQorCisg
ICAgdm9pZCBjb21taXQoKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaWRsCmluZGV4IDA0ZWM2YTc1MTliMTRhNzVhMTI1NjRmNWU5ZGVi
OTEwZWM4YmYxMzkuLmQ3ZmVjODc5OTM2OTA0NGJkYTcyZGUwZWI1YzUzZDYzN2FlMDI3MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbApAQCAtMjcsMTQgKzI3LDEzIEBACiAgICAg
Q3VzdG9tSXNSZWFjaGFibGUsCiAgICAgRW5hYmxlZEF0UnVudGltZT1PZmZzY3JlZW5DYW52YXMs
CiAgICAgQ29uZGl0aW9uYWw9T0ZGU0NSRUVOX0NBTlZBUywKLSAgICBFeHBvc2VkPShXaW5kb3cp
LCAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzIC0gc2hvdWxkIGJlIFdpbmRvdyxXb3JrZXIKKyAg
ICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAg
ICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAvLyBDYWxsVHJhY2luZ0NhbGxiYWNrPXJlY29y
ZENhbnZhc0FjdGlvbiwgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4KIF0gaW50ZXJmYWNlIE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IE9mZnNjcmVlbkNhbnZhcyBjYW52YXM7Ci0gICAgLy8gRklYTUU6IE9mZnNjcmVlbkNhbnZhcy4K
LSAgICAvLyB2b2lkIGNvbW1pdCgpOworICAgIHZvaWQgY29tbWl0KCk7CiAKICAgICAvLyBJbnNw
ZWN0b3Itb25seS4KICAgICAvLyBGSVhNRTogT2Zmc2NyZWVuQ2FudmFzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dC5jcHAKaW5kZXggMDkyYzRhZWY2MGE1NTEzZjQ3NmM3ZDcxNDMzZWJlNzFhZmE3ODFkNC4uMWVj
N2EyNGVkZjQ0NTIxMWJiYmE5OTQyZTgxNDZiYjFlN2Y2ODRjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9QbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRleHQu
Y3BwCkBAIC0yNiw2ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBs
YWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dC5oIgogCisjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5W
QVMpCisKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUgIk9mZnNjcmVl
bkNhbnZhcy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM3LDQgKzQxLDE0IEBAIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4
dDo6UGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmIGNhbnZhcykKIHsKIH0K
IAorSFRNTENhbnZhc0VsZW1lbnQqIFBsYWNlaG9sZGVyUmVuZGVyaW5nQ29udGV4dDo6Y2FudmFz
KCkgY29uc3QKK3sKKyAgICBhdXRvJiBiYXNlID0gY2FudmFzQmFzZSgpOworICAgIGlmICghaXM8
SFRNTENhbnZhc0VsZW1lbnQ+KGJhc2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gJmRvd25jYXN0PEhUTUxDYW52YXNFbGVtZW50PihiYXNlKTsKIH0KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1BsYWNlaG9sZGVyUmVu
ZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggYzM0OGU1MTg5NTJjYjlkNDE1YzZiZDE3OTVmMjE2ZGNi
MTY1ZDI1OS4uNjQ1MDkxNDU5ZGQwMWNjMmE3OTc3ZGMwMDNiNDUyNjVkZTViYTdkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvUGxhY2Vob2xkZXJSZW5kZXJp
bmdDb250ZXh0LmgKQEAgLTI1LDE1ICsyNSwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShPRkZTQ1JFRU5fQ0FOVkFTKQorCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE9mZnNjcmVlbkNhbnZhczsKKwog
Y2xhc3MgUGxhY2Vob2xkZXJSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVibGljIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUGxhY2Vob2xkZXJS
ZW5kZXJpbmdDb250ZXh0KTsKIHB1YmxpYzoKICAgICBQbGFjZWhvbGRlclJlbmRlcmluZ0NvbnRl
eHQoQ2FudmFzQmFzZSYpOwogCisgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcygpIGNvbnN0
OworCiBwcml2YXRlOgogICAgIGJvb2wgaXNQbGFjZWhvbGRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KIH07CkBAIC00MSwzICs0Nyw1IEBAIHByaXZhdGU6CiB9CiAKIFNQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfQ0FOVkFTUkVOREVSSU5HQ09OVEVYVChXZWJDb3JlOjpQbGFjZWhvbGRl
clJlbmRlcmluZ0NvbnRleHQsIGlzUGxhY2Vob2xkZXIoKSkKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTFj
NDZhODhiYTc3ZTIwODhkMmNiYmQyMzc5ODhlZGY2OWVkMjcyZC4uYzlhMTI0NDc4MThiMzIzNzQx
MThlZmU3Mzg3MzdkODkzYTM0NDA1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA4LTEx
ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQ2Fu
dmFzLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGFuZCBPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY29tbWl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI3OTcKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRl
ci53LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKwogMjAyMC0wOC0xMSAgTGF1cm8gTW91cmEgIDxs
bW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBHYXJkZW4gYWNjZXNzaWJpbGl0eSBm
YWlsdXJlcyBhZnRlciByMjY1NTE0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA1
YjYxMTdmYTBmNzI4ZWQyMmIzZDI0OTQ1OGJiOTk1OTE0NDExMmFjLi44ZjFhYmVlNDRhMTZiMTM0
MjU4NjMwNGY2ZTBhZjkwZWY3YjgwYjNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAyMC0wOC0xMSAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IENhbnZhcy50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biBhbmQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNvbW1pdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNzk3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci53LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29t
bWl0LnctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNm
ZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wOC0xMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBXYXZlU2hhcHBlck5v
ZGUncyB3YXZlc2hhcGluZyBjdXJ2ZSBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXIudy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci53LWV4cGVjdGVkLnR4dAppbmRleCAzYzc0
Nzg5NjM0ZjVmNDJlMmMyODljN2NhOGRhZGM0MzhmODc3Zjg5Li42ZWUzZjcxM2ZmMjk2MzY5ZDBi
NDA1ZjgxZGQ2NDhmMDVhYzA0MDRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWx0ZXIvb2Zmc2Ny
ZWVuY2FudmFzLmZpbHRlci53LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWx0ZXIvb2Zm
c2NyZWVuY2FudmFzLmZpbHRlci53LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDIgQEAKLQotUEFT
UyBvZmZzY3JlZW5jYW52YXMgCitGQUlMOiBUaW1lZCBvdXQgd2FpdGluZyBmb3Igbm90aWZ5RG9u
ZSB0byBiZSBjYWxsZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQtZXhwZWN0
ZWQudHh0CmluZGV4IDZmMWM3MDUwZTVlODI4YzNmMzIzZjI5NWZiMWQyYTRmZWM4YzAwN2MuLmYz
MDEyNTAzOGZlNjhmMGZmZTliOTZmMGQ5Njc3YzcwMzE2YWI0YTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zm
c2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwg
VGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29tbWl0IHB1c2hlcyBpdHMgY29u
dGVudHMgdG8gaXRzIHBsYWNlaG9sZGVyLiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
JyBpcyB1bmRlZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZz
Y3JlZW5DYW52YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVt
ZW50IGlzIGEgbm9vcC4gY3R4LmNvbW1pdCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdjdHguY29t
bWl0KCknLCAnY3R4LmNvbW1pdCcgaXMgdW5kZWZpbmVkKQorUEFTUyBUZXN0IHRoYXQgY2FsbGlu
ZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBpdHMgcGxh
Y2Vob2xkZXIuIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBjb21taXQgb24gYW4gT2Zmc2NyZWVu
Q2FudmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVkIGZyb20gYSBIVE1MQ2FudmFzRWxlbWVudCBp
cyBhIG5vb3AuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21h
bnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0
ZWQudHh0CmluZGV4IDQzNDMzMmNlNTFhYmZlMzcxMmQwZTI0OTU4YTgwNTI4MWE2MDcwNzQuLmM0
MjE4ZWNhYzI3M2QwNTQ3ZjVlNDljM2QxMjNmZGFmODNmM2VhYjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0Lnct
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1G
QUlMIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRz
IGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52
YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIAogUEFT
UyBUZXN0IHRoYXQgY2FsbGluZyBjb21taXQgb24gYW4gT2Zmc2NyZWVuQ2FudmFzIHRoYXQgaXMg
bm90IHRyYW5zZmVycmVkIGZyb20gYSBIVE1MQ2FudmFzRWxlbWVudCB0aHJvd3MgYW4gZXhjZXB0
aW9uIGluIGEgd29ya2VyLiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29u
dGV4dC1leHBlY3RlZC50eHQKaW5kZXggYmQ5YWEwZTE2NzdlOTQ5NDgwYjIyMzMxMjIzOGY0NzA5
OWVmMTM3Ny4uYzU3YTI5M2VjNGE5YmQ2OGM2ZDkxZjlhYmM4MjU1NGM0ZGY4OGY2YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0x
LDcgKzEsNyBAQAogCiBQQVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggdW4tc3VwcG9ydGVk
IHN0cmluZyB0aHJvd3MgYSBUeXBlRXJyb3IuIAogRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3
aXRoIHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMgQXJndW1lbnQgMSAo
J2NvbnRleHRUeXBlJykgdG8gT2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQgbXVzdCBiZSBvbmUg
b2Y6ICIyZCIsICJ3ZWJnbCIKLUZBSUwgVGVzdCB0aGF0IGdldENvbnRleHQgdHdpY2Ugd2l0aCBk
aWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRpbWUgVGhlIG9i
amVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0
d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQg
dGltZSAKIFBBU1MgVGVzdCB0aGF0IDJkY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUg
b3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAogUEFTUyBUZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNh
bnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCiBGQUlMIFRl
c3QgdGhhdCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgd2l0aCBhbHBoYSBkaXNh
YmxlZCBtYWtlcyB0aGUgT2Zmc2NyZWVuQ2FudmFzIG9wYXF1ZSBhc3NlcnRfYXBwcm94X2VxdWFs
czogR3JlZW4gY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDUpIGV4cGVjdGVkIDEyNyArLy0g
MiBidXQgZ290IDI1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNv
bnRleHQud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBmMjI0Y2U3NGVlYTg3OGNmNzZhMTMzM2Jj
YWUxYmFhMTBmZDRmNjY3Li4zOWZjMmNmOWFhZGRlN2YyZGIxYjNlMmUzMzY4OWVkNzA3MTc4Y2Ex
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9t
YW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29y
a2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBUZXN0IHRoYXQgZ2V0Q29u
dGV4dCB3aXRoIHVuLXN1cHBvcnRlZCBzdHJpbmcgdGhyb3dzIGEgVHlwZUVycm9yLiAKLUZBSUwg
VGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVj
dCByZXN1bHRzIENhbid0IGZpbmQgdmFyaWFibGU6IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRAotRkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBj
b250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSBUaGUgb2JqZWN0IGlzIGlu
IGFuIGludmFsaWQgc3RhdGUuCitGQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9y
dGVkIHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBDYW4ndCBmaW5kIHZhcmlhYmxlOiBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQKK1BBU1MgVGVzdCB0aGF0IGdldENvbnRleHQgdHdpY2Ugd2l0
aCBkaWZmZXJlbnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRpbWUgCiBQ
QVNTIFRlc3QgdGhhdCAyZGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFs
IE9mZnNjcmVlbkNhbnZhcyAKIFBBU1MgVGVzdCB0aGF0IHdlYmdsY29udGV4dC5jYW52YXMgc2hv
dWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAogRkFJTCBUZXN0IHRoYXQg
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHdpdGggYWxwaGEgZGlzYWJsZWQgbWFr
ZXMgdGhlIE9mZnNjcmVlbkNhbnZhcyBvcGFxdWUgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IEdyZWVu
IGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCA1KSBleHBlY3RlZCAxMjcgKy8tIDIgYnV0IGdv
dCAyNTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dAppbmRl
eCBmNDU1MDcxNzJiNzZiYWYwNmFiMGU0NGVkMTVjZTMzMDZhZDQ4MThhLi42YzExYzhkZjRiNjVh
NzkwMGFkZGM3NDZhYTlhMGVlNzc5NDE4NjFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5yZXNpemUtZXhwZWN0ZWQudHh0CkBAIC0yLDExICsyLDExIEBACiBQQVNTIFZlcmlmeSB0aGF0
IHdyaXRpbmcgdG8gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3Jl
ZW5DYW52YXMgd29ya3Mgd2hlbiB0aGVyZSBpcyBubyBjb250ZXh0IGF0dGFjaGVkLiAKIFBBU1Mg
VmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9m
IGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIGEgMmQgY29udGV4dCBhdHRh
Y2hlZC4gCiBQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIGFuZCBoZWlnaHQg
YXR0cmlidXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hlbiB0aGVyZSBpcyBhIHdl
YmdsIGNvbnRleHQgYXR0YWNoZWQuIAotRkFJTCBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3
aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBh
biBleGNlcHRpb24gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4o
KScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVk
KQotRkFJTCBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmli
dXRlIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gZXZlbiB3aGVu
IG5vdCBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4gcGxhY2Vob2xkZXIudHJh
bnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xk
ZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5n
IHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFz
IHRocm93cyBhbiBleGNlcHRpb24gCitQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdp
ZHRoIG9yIGhlaWdodCBhdHRyaWJ1dGUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMgdGhyb3dzIGFu
IGV4Y2VwdGlvbiBldmVuIHdoZW4gbm90IGNoYW5naW5nIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmli
dXRlLiAKIFBBU1MgVmVyaWZ5IHRoYXQgcmVzaXppbmcgYSAyZCBjb250ZXh0IHJlc2V0cyBpdHMg
c3RhdGUuIAogUEFTUyBWZXJpZnkgdGhhdCBzZXR0aW5nIHRoZSBzaXplIG9mIGEgMmQgY29udGV4
dCB0byB0aGUgc2FtZSBzaXplIGl0IGFscmVhZHkgaGFkIHJlc2V0cyBpdHMgc3RhdGUuIAotRkFJ
TCBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBhIDJkIGNvbnRl
eHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVyIGNhbnZhcyBhc3lu
Y2hyb25vdXNseS4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4o
KScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVk
KQotRkFJTCBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBhIHdl
YmdsIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVyIGNh
bnZhcyBhc3luY2hyb25vdXNseS4gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMg
dW5kZWZpbmVkKQotRkFJTCBWZXJpZnkgdGhhdCBkcmF3SW1hZ2UgdXNlcyB0aGUgc2l6ZSBvZiB0
aGUgZnJhbWUgYXMgdGhlIGludGluc2ljIHNpemUgb2YgYSBwbGFjZWhvbGRlciBjYW52YXMuIHBs
YWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
SW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xk
ZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK1BBU1MgVmVyaWZ5
IHRoYXQgcmVzaXppbmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSAyZCBjb250ZXh0IHByb3Bh
Z2F0ZXMgdGhlIG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3Vz
bHkuIAorUEFTUyBWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBh
IHdlYmdsIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVy
IGNhbnZhcyBhc3luY2hyb25vdXNseS4gCitQQVNTIFZlcmlmeSB0aGF0IGRyYXdJbWFnZSB1c2Vz
IHRoZSBzaXplIG9mIHRoZSBmcmFtZSBhcyB0aGUgaW50aW5zaWMgc2l6ZSBvZiBhIHBsYWNlaG9s
ZGVyIGNhbnZhcy4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0CmluZGV4IDRm
NDJlNTA3NDI4MjgwYTJlYTE5Zjc2M2NmOGM5NjE5YWU1YmIzMDUuLjI5NjA0ODViN2I2YWQ2Zjcw
NjJkZWY5ZmU3Yjc5ZTVjYjc0YjgzYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNj
cmVlbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBUZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFz
IGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lk
dGggYW5kIGhlaWdodCBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBu
b3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
bigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmlu
ZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBj
YW52YXMgdGhhdCBoYXMgYWxyZWFkeSB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0aHJvd3MgYW4g
ZXhjZXB0aW9uIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCkn
LCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkK
LUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gdHdpY2Ug
dGhyb3dzIGFuIGV4Y2VwdGlvbiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
biBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09m
ZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1
bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5
IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0
IAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2Fu
dmFzIHRoYXQgaGFzIGFscmVhZHkgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdGhyb3dzIGFuIGV4
Y2VwdGlvbiAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4gdHdpY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wu
dG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnct
ZXhwZWN0ZWQudHh0CmluZGV4IDJjZDNkYjRiMjc2ZGMxYzExZDFlY2RiMDQ4YjNiNzkwOTNlZWUw
ZGEuLjMzYjg1MzJjYjJlMDA0MTRhNmQ1NGE2ZGE3OWFlNzZlYWY0NjU2M2YgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJh
bnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9t
YW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJv
bC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgVGVz
dCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgd2hlbiBpdCBpcyB0cmFuc2Zl
cnJlZCB0byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBp
cyBub3QgYSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbigpJywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRl
ZmluZWQpCi1GQUlMIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRl
ciBjYW52YXMgdGhhdCBpcyB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0byBhbiBPZmZzY3JlZW5D
YW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgd2hlbiB0aGUgT2Zmc2NyZWVuQ2FudmFzIGlzIHRy
YW5zZmVycmVkIHRvIGEgd29ya2VyIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2Ny
ZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4nIGlz
IHVuZGVmaW5lZCkKLUZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgd2hlbiBpdHMgYXNzb2NpYXRlZCBPZmZz
Y3JlZW5DYW52YXMgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgcGxhY2Vob2xkZXIudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIu
dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBUZXN0IHRoYXQgYW4gT2Zmc2NyZWVu
Q2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJl
Y3Qgd2lkdGggYW5kIGhlaWdodCB3aGVuIGl0IGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIAor
UEFTUyBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFz
IHRoYXQgaXMgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdG8gYW4gT2Zmc2NyZWVuQ2FudmFzIHRo
cm93cyBhbiBleGNlcHRpb24sIHdoZW4gdGhlIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJl
ZCB0byBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4gdHdpY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgd2hlbiBpdHMgYXNzb2NpYXRlZCBP
ZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3JlZW5jYW52YXMuZmls
dGVyLnctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVy
L29mZnNjcmVlbmNhbnZhcy5maWx0ZXIudy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDNjNzQ3ODk2MzRmNWY0MmUyYzI4OWM3Y2E4ZGFkYzQzOGY4NzdmODkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ2xpYi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXIudy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBvZmZzY3JlZW5jYW52
YXMgCi0K
</data>

          </attachment>
      

    </bug>

</bugzilla>